diff --git a/.travis.yml b/.travis.yml
index bf473fe..84dcf1a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -86,13 +86,14 @@
 #  - chmod +x ./docs/script/cibuild
 script:
   #- jdk_switcher use openjdk8
-  - bin/change-scala-version.sh 2.11.12 && mvn clean install -Pdistro,scala-11 "${mvn_opts[@]}" &> result.log
-  - bin/change-scala-version.sh 2.12.12 && mvn clean install -Pdistro,scala-12 "${mvn_opts[@]}" &>> result.log
+  - mvn clean install -Pdistro,scala-11 "${mvn_opts[@]}" &> result.log
+  - mvn clean install -Pdistro,scala-12 "${mvn_opts[@]}" &>> result.log
+  #- mvn clean install -Pdistro,scala-13 "${mvn_opts[@]}" &>> result.log # This is not working for now because of Spark and Flink not supporting Scala 2.13
   - cat /home/travis/build/apache/incubator-wayang/target/rat.txt || echo "file doesn't exist"
   - tail -n 2000 result.log
 
 after_success:
-  # generate the documentation and create a update of the documentation if something change there
+  # generate the documentation and create an update of the documentation if something changes there
   - if [ "${GENERATE_DOCS}" = "true" ] ; then mvn clean gem:exec@bundle-install gem:exec@generate-documentation gem:exec@generate-documentation-as-latest site -pl wayang-docs -Pweb-documentation ; fi
 
 env:
diff --git a/NOTICE.TXT b/NOTICE.TXT
index bdcd080..d407ab1 100644
--- a/NOTICE.TXT
+++ b/NOTICE.TXT
@@ -4,4 +4,33 @@
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
-============================================================================
\ No newline at end of file
+----------------------------------------------
+
+This product includes software developed at
+The Apache Spark (https://spark.apache.org/).
+
+----------------------------------------------
+----------------------------------------------
+
+This product includes software developed at
+The Apache Flink (https://flink.apache.org/).
+
+----------------------------------------------
+----------------------------------------------
+
+This product includes software developed at
+The Apache Giraph (https://giraph.apache.org/).
+
+----------------------------------------------
+----------------------------------------------
+
+This product includes software developed at
+The Apache Hadoop (https://hadoop.apache.org/).
+
+----------------------------------------------
+----------------------------------------------
+
+This product includes software developed at
+The GraphChi-java (https://github.com/GraphChi/graphchi-java).
+
+----------------------------------------------
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
new file mode 100644
index 0000000..d1b92c8
--- /dev/null
+++ b/RELEASE_NOTES
@@ -0,0 +1,47 @@
+==============================================================
+Apache Wayang (incubating) 0.6.0
+==============================================================
+
+This is the first official release of Apache Wayang.
+
+On this release is possible to found the the implementation of
+the following platforms:
+- Apache Flink v1.7.1
+- Apache Giraph v1.2.0-hadoop2
+- GraphChi v0.2.2(This is only available wit scala 11.x)
+- Java Streams (version depends on the java version)
+- JDBC-Template
+- Postgres v9.4.1208(It's a implementation of JDBC-Template)
+- Apache Spark v3.1.2 (scala 12.x) and v2.4.8 (scala 11.x)
+- SQLite3 v3.8.11.2(It's a implementation of JDBC-Template)
+
+NOTE: depending on the scala version the list of platforms available
+could be modified.
+
+
+New Features
+------------
+
+- NONE -
+
+Incompatible changes
+--------------------
+
+- NONE -
+
+Miscellaneous changes
+---------------------
+
+WAYANG-3 Unification of the logs
+WAYANG-[32, 33, 35, 38] License issues removed
+
+Known Issues
+------------
+
+WAYANG-23 Iteration Memory Issue
+
+Bug Fixes
+---------
+
+WAYANG-12 Issues on the compilation
+WAYANG-40 Different version of platform depending on the scala version
diff --git a/bin/build.sh b/bin/build.sh
index 8bd6e8e..f69be5d 100755
--- a/bin/build.sh
+++ b/bin/build.sh
@@ -48,15 +48,14 @@
 fi
 
 
-scala_versions=(2.11.8) # 2.12.2 was not supported as of creating this script
+scala_versions=(scala-11 scala-12)
 failures=()
 successes=()
 
 for scala_version in "${scala_versions[@]}"; do
 	echo "Running 'mvn ${mvn_opts[@]}' with Scala $scala_version..."
 
-	"$basedir/bin/change-scala-version.sh" "$scala_version"
-	if mvn "${mvn_opts[@]}"; then
+	if mvn "${mvn_opts[@]}" -P $scala_version; then
 		successes+=("$scala_version")
 	else
 		failures+=("$scala_version")
@@ -64,7 +63,7 @@
 done
 
 echo "Summary:"
-echo "* Successes with Scala versions ${successes[@]}"
-echo "* Failures with Scala versions ${failures[@]}"
+echo "* Successes with Scala versions: ${successes[@]}"
+echo "* Failures with Scala versions: ${failures[@]}"
 
 exit ${#failures[@]}
diff --git a/bin/change-scala-version.sh b/bin/change-scala-version.sh
index 79f4a32..d3378ce 100755
--- a/bin/change-scala-version.sh
+++ b/bin/change-scala-version.sh
@@ -19,6 +19,8 @@
 ##
 ################################################################################
 
+# THIS SCRIPT IS DEPRECATED since https://github.com/apache/incubator-wayang/pull/26
+
 if [ $# -eq 0 ]; then
 	>&2 echo "No parameters given."
 	echo "This script changes the Scala version used in this project."
diff --git a/pom.xml b/pom.xml
index fad1193..93194fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -583,6 +583,9 @@
 
         <profile>
             <id>scala-12</id>
+            <activation>
+                <jdk>11</jdk>
+            </activation>
             <properties>
                 <scala.version>2.12.12</scala.version>
                 <scala.mayor.version>2.12</scala.mayor.version>
diff --git a/wayang-api/wayang-api-python/src/test/java/org/apache/wayang/api/python/PythonAPITest.java b/wayang-api/wayang-api-python/src/test/java/org/apache/wayang/api/python/PythonAPITest.java
index e841298..189ee20 100644
--- a/wayang-api/wayang-api-python/src/test/java/org/apache/wayang/api/python/PythonAPITest.java
+++ b/wayang-api/wayang-api-python/src/test/java/org/apache/wayang/api/python/PythonAPITest.java
@@ -18,8 +18,6 @@
 
 package org.apache.wayang.api.python;
 
-import static org.junit.jupiter.api.Assertions.*;
-
 class PythonAPITest {
 
-}
\ No newline at end of file
+}
diff --git a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuanta.scala b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuanta.scala
index ed1f426..22956a1 100644
--- a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuanta.scala
+++ b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuanta.scala
@@ -22,9 +22,12 @@
 import _root_.java.lang.{Iterable => JavaIterable}
 import _root_.java.util.function.{Consumer, IntUnaryOperator, BiFunction => JavaBiFunction, Function => JavaFunction}
 import _root_.java.util.{Collection => JavaCollection}
+
 import org.apache.commons.lang3.Validate
+import org.apache.wayang.basic.data.{Tuple2 => WayangTuple2}
 import org.apache.wayang.basic.function.ProjectionDescriptor
 import org.apache.wayang.basic.operators._
+import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.function.FunctionDescriptor.{SerializableBinaryOperator, SerializableFunction, SerializablePredicate}
 import org.apache.wayang.core.function._
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval
@@ -33,8 +36,6 @@
 import org.apache.wayang.core.plan.wayangplan._
 import org.apache.wayang.core.platform.Platform
 import org.apache.wayang.core.util.{Tuple => WayangTuple}
-import org.apache.wayang.basic.data.{Tuple2 => WayangTuple2}
-import org.apache.wayang.commons.util.profiledb.model.Experiment
 
 import scala.collection.JavaConversions
 import scala.collection.JavaConversions._
@@ -796,6 +797,34 @@
   }
 
   /**
+   * Write the data quanta in this instance to a Object file. Triggers execution.
+   *
+   * @param url          URL to the text file
+   */
+  def writeObjectFile(url: String)(implicit classTag: ClassTag[Out]): Unit = {
+    writeObjectFileJava(url, classTag)
+  }
+
+  /**
+   * Write the data quanta in this instance to a Object file. Triggers execution.
+   *
+   * @param url          URL to the text file
+   */
+  def writeObjectFileJava(url: String, classTag: ClassTag[Out]): Unit ={
+    val sink = new ObjectFileSink[Out](
+      url,
+      basicDataUnitType(classTag).getTypeClass
+    )
+    sink.setName(s"Write objects to $url")
+    this.connectTo(sink, 0)
+
+    // Do the execution.
+    this.planBuilder.sinks += sink
+    this.planBuilder.buildAndExecute()
+    this.planBuilder.sinks.clear()
+  }
+
+  /**
     * Restrict the producing [[Operator]] to run on certain [[Platform]]s.
     *
     * @param platforms on that the [[Operator]] may be executed
diff --git a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuantaBuilder.scala b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuantaBuilder.scala
index 29b4965..6ab7eec 100644
--- a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuantaBuilder.scala
+++ b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuantaBuilder.scala
@@ -21,6 +21,7 @@
 
 import java.util.function.{Consumer, IntUnaryOperator, Function => JavaFunction}
 import java.util.{Collection => JavaCollection}
+
 import org.apache.wayang.api.graph.{Edge, EdgeDataQuantaBuilder, EdgeDataQuantaBuilderDecorator}
 import org.apache.wayang.api.util.{DataQuantaBuilderCache, TypeTrap}
 import org.apache.wayang.basic.data.{Record, Tuple2 => RT2}
diff --git a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/JavaPlanBuilder.scala b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/JavaPlanBuilder.scala
index d21870a..53e9207 100644
--- a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/JavaPlanBuilder.scala
+++ b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/JavaPlanBuilder.scala
@@ -19,6 +19,7 @@
 package org.apache.wayang.api
 
 import java.util.{Collection => JavaCollection}
+
 import org.apache.commons.lang3.Validate
 import org.apache.wayang.api.util.DataQuantaBuilderCache
 import org.apache.wayang.basic.data.Record
diff --git a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/PlanBuilder.scala b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/PlanBuilder.scala
index 3709f7f..f77ffc4 100644
--- a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/PlanBuilder.scala
+++ b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/PlanBuilder.scala
@@ -21,7 +21,7 @@
 import org.apache.commons.lang3.Validate
 import org.apache.wayang.api
 import org.apache.wayang.basic.data.Record
-import org.apache.wayang.basic.operators.{CollectionSource, TableSource, TextFileSource}
+import org.apache.wayang.basic.operators.{CollectionSource, ObjectFileSource, TableSource, TextFileSource}
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.WayangContext
 import org.apache.wayang.core.plan.wayangplan._
@@ -111,6 +111,15 @@
     */
   def readTextFile(url: String): DataQuanta[String] = load(new TextFileSource(url))
 
+
+  /**
+   * Read a object's file and provide it as a dataset of [[Object]]s.
+   *
+   * @param url the URL of the Object's file
+   * @return [[DataQuanta]] representing the file
+   */
+  def readObjectFile[T: ClassTag](url: String): DataQuanta[T] = load(new ObjectFileSource(url, dataSetType[T]))
+
   /**
     * Reads a database table and provides them as a dataset of [[Record]]s.
     *
diff --git a/wayang-api/wayang-api-scala-java/src/test/java/org/apache/wayang/api/JavaApiTest.java b/wayang-api/wayang-api-scala-java/src/test/java/org/apache/wayang/api/JavaApiTest.java
index 2d4bb6c..420a82e 100644
--- a/wayang-api/wayang-api-scala-java/src/test/java/org/apache/wayang/api/JavaApiTest.java
+++ b/wayang-api/wayang-api-scala-java/src/test/java/org/apache/wayang/api/JavaApiTest.java
@@ -18,27 +18,6 @@
 
 package org.apache.wayang.api;
 
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.WayangContext;
-import org.apache.wayang.core.function.ExecutionContext;
-import org.apache.wayang.core.function.FunctionDescriptor;
-import org.apache.wayang.core.function.PredicateDescriptor;
-import org.apache.wayang.core.function.TransformationDescriptor;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.core.util.WayangArrays;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.wayang.core.util.Tuple;
-import org.apache.wayang.core.util.fs.LocalFileSystem;
-import org.apache.wayang.java.Java;
-import org.apache.wayang.java.operators.JavaMapOperator;
-import org.apache.wayang.spark.Spark;
-import org.apache.wayang.sqlite3.Sqlite3;
-import org.apache.wayang.sqlite3.operators.Sqlite3TableSource;
-
 import java.io.File;
 import java.io.IOException;
 import java.net.URI;
@@ -56,6 +35,26 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.WayangContext;
+import org.apache.wayang.core.function.ExecutionContext;
+import org.apache.wayang.core.function.FunctionDescriptor;
+import org.apache.wayang.core.function.PredicateDescriptor;
+import org.apache.wayang.core.function.TransformationDescriptor;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangArrays;
+import org.apache.wayang.core.util.WayangCollections;
+import org.apache.wayang.core.util.fs.LocalFileSystem;
+import org.apache.wayang.java.Java;
+import org.apache.wayang.java.operators.JavaMapOperator;
+import org.apache.wayang.spark.Spark;
+import org.apache.wayang.sqlite3.Sqlite3;
+import org.apache.wayang.sqlite3.operators.Sqlite3TableSource;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test suite for the Java API.
diff --git a/wayang-api/wayang-api-scala-java/src/test/scala/org/apache/wayang/api/ApiTest.scala b/wayang-api/wayang-api-scala-java/src/test/scala/org/apache/wayang/api/ApiTest.scala
index cc05bd2..83e2548 100644
--- a/wayang-api/wayang-api-scala-java/src/test/scala/org/apache/wayang/api/ApiTest.scala
+++ b/wayang-api/wayang-api-scala-java/src/test/scala/org/apache/wayang/api/ApiTest.scala
@@ -24,7 +24,6 @@
 import java.sql.{Connection, Statement}
 import java.util.function.Consumer
 
-import org.junit.{Assert, Test}
 import org.apache.wayang.basic.WayangBasics
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.function.FunctionDescriptor.ExtendedSerializablePredicate
@@ -35,6 +34,7 @@
 import org.apache.wayang.spark.Spark
 import org.apache.wayang.sqlite3.Sqlite3
 import org.apache.wayang.sqlite3.operators.Sqlite3TableSource
+import org.junit.{Assert, Test}
 
 /**
   * Tests the Wayang API.
diff --git a/wayang-benchmark/pom.xml b/wayang-benchmark/pom.xml
index 477c752..829ec88 100644
--- a/wayang-benchmark/pom.xml
+++ b/wayang-benchmark/pom.xml
@@ -71,6 +71,16 @@
       <artifactId>wayang-sqlite3</artifactId>
       <version>0.6.0-SNAPSHOT</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-common</artifactId>
+      <version>2.7.7</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.spark</groupId>
+      <artifactId>spark-core_${scala.mayor.version}</artifactId>
+      <version>${spark.version}</version>
+    </dependency>
   </dependencies>
 
 
diff --git a/wayang-benchmark/src/main/java/org/apache/wayang/apps/sgd/SGDImpl.java b/wayang-benchmark/src/main/java/org/apache/wayang/apps/sgd/SGDImpl.java
index dbd7eac..d953908 100644
--- a/wayang-benchmark/src/main/java/org/apache/wayang/apps/sgd/SGDImpl.java
+++ b/wayang-benchmark/src/main/java/org/apache/wayang/apps/sgd/SGDImpl.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.apps.sgd;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.wayang.api.DataQuantaBuilder;
 import org.apache.wayang.api.JavaPlanBuilder;
 import org.apache.wayang.basic.data.Tuple2;
@@ -27,12 +30,8 @@
 import org.apache.wayang.core.function.ExecutionContext;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.core.plugin.Plugin;
-import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.core.util.Tuple;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * This class executes a stochastic gradient descent optimization on Apache Wayang.
diff --git a/wayang-benchmark/src/main/java/org/apache/wayang/apps/sgd/SGDImprovedImpl.java b/wayang-benchmark/src/main/java/org/apache/wayang/apps/sgd/SGDImprovedImpl.java
index 1532f57..866fab1 100644
--- a/wayang-benchmark/src/main/java/org/apache/wayang/apps/sgd/SGDImprovedImpl.java
+++ b/wayang-benchmark/src/main/java/org/apache/wayang/apps/sgd/SGDImprovedImpl.java
@@ -18,22 +18,21 @@
 
 package org.apache.wayang.apps.sgd;
 
-import org.apache.wayang.commons.util.profiledb.model.Experiment;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.wayang.api.DataQuantaBuilder;
 import org.apache.wayang.api.JavaPlanBuilder;
 import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.commons.util.profiledb.model.Experiment;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.WayangContext;
 import org.apache.wayang.core.function.ExecutionContext;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.core.plugin.Plugin;
-import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.core.util.Tuple;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * This class executes a stochastic gradient descent optimization on Apache Wayang, just like {@link SGDImpl}. However,
diff --git a/wayang-benchmark/src/main/java/org/apache/wayang/apps/terasort/Random16.java b/wayang-benchmark/src/main/java/org/apache/wayang/apps/terasort/Random16.java
new file mode 100644
index 0000000..6e85d92
--- /dev/null
+++ b/wayang-benchmark/src/main/java/org/apache/wayang/apps/terasort/Random16.java
@@ -0,0 +1,376 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.apps.terasort;
+
+/**
+ * This class implements a 128-bit linear congruential generator.
+ * Specifically, if X0 is the most recently issued 128-bit random
+ * number (or a seed of 0 if no random number has already been generated,
+ * the next number to be generated, X1, is equal to:
+ * X1 = (a * X0 + c) mod 2**128
+ * where a is 47026247687942121848144207491837523525
+ *            or 0x2360ed051fc65da44385df649fccf645
+ *   and c is 98910279301475397889117759788405497857
+ *            or 0x4a696d47726179524950202020202001
+ * The coefficient "a" is suggested by:
+ * Pierre L'Ecuyer, "Tables of linear congruential generators of different
+ * sizes and good lattice structure", Mathematics of Computation, 68
+ * pp. 249 - 260 (1999)
+ * http://www.ams.org/mcom/1999-68-225/S0025-5718-99-00996-5/S0025-5718-99-00996-5.pdf
+ * The constant "c" meets the simple suggestion by the same reference that
+ * it be odd.
+ *
+ * There is also a facility for quickly advancing the state of the
+ * generator by a fixed number of steps - this facilitates parallel
+ * generation.
+ *
+ * This is based on 1.0 of rand16.c from Chris Nyberg 
+ * <chris.nyberg@ordinal.com>.
+ *
+ * code copied from <a href="https://github.com/apache/hadoop/blob/trunk/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/terasort/Random16.java">Terasort Example</a>
+ */
+class Random16 {
+
+  /**
+   * The "Gen" array contain powers of 2 of the linear congruential generator.
+   * The index 0 struct contain the "a" coefficient and "c" constant for the
+   * generator.  That is, the generator is:
+   *    f(x) = (Gen[0].a * x + Gen[0].c) mod 2**128
+   *
+   * All structs after the first contain an "a" and "c" that
+   * comprise the square of the previous function.
+   *
+   * f**2(x) = (Gen[1].a * x + Gen[1].c) mod 2**128
+   * f**4(x) = (Gen[2].a * x + Gen[2].c) mod 2**128
+   * f**8(x) = (Gen[3].a * x + Gen[3].c) mod 2**128
+   * ...
+
+   */
+  private static class RandomConstant {
+    final Unsigned16 a;
+    final Unsigned16 c;
+    public RandomConstant(String left, String right) {
+      a = new Unsigned16(left);
+      c = new Unsigned16(right);
+    }
+  }
+
+  private static final RandomConstant[] genArray = new RandomConstant[]{
+      /* [  0] */ new RandomConstant("2360ed051fc65da44385df649fccf645",
+      "4a696d47726179524950202020202001"),
+      /* [  1] */ new RandomConstant("17bce35bdf69743c529ed9eb20e0ae99",
+      "95e0e48262b3edfe04479485c755b646"),
+      /* [  2] */ new RandomConstant("f4dd417327db7a9bd194dfbe42d45771",
+      "882a02c315362b60765f100068b33a1c"),
+      /* [  3] */ new RandomConstant("6347af777a7898f6d1a2d6f33505ffe1",
+      "5efc4abfaca23e8ca8edb1f2dfbf6478"),
+      /* [  4] */ new RandomConstant("b6a4239f3b315f84f6ef6d3d288c03c1",
+      "f25bd15439d16af594c1b1bafa6239f0"),
+      /* [  5] */ new RandomConstant("2c82901ad1cb0cd182b631ba6b261781",
+      "89ca67c29c9397d59c612596145db7e0"),
+      /* [  6] */ new RandomConstant("dab03f988288676ee49e66c4d2746f01",
+      "8b6ae036713bd578a8093c8eae5c7fc0"),
+      /* [  7] */ new RandomConstant("602167331d86cf5684fe009a6d09de01",
+      "98a2542fd23d0dbdff3b886cdb1d3f80"),
+      /* [  8] */ new RandomConstant("61ecb5c24d95b058f04c80a23697bc01",
+      "954db923fdb7933e947cd1edcecb7f00"),
+      /* [  9] */ new RandomConstant("4a5c31e0654c28aa60474e83bf3f7801",
+      "00be4a36657c98cd204e8c8af7dafe00"),
+      /* [ 10] */ new RandomConstant("ae4f079d54fbece1478331d3c6bef001",
+      "991965329dccb28d581199ab18c5fc00"),
+      /* [ 11] */ new RandomConstant("101b8cb830c7cb927ff1ed50ae7de001",
+      "e1a8705b63ad5b8cd6c3d268d5cbf800"),
+      /* [ 12] */ new RandomConstant("f54a27fc056b00e7563f3505e0fbc001",
+      "2b657bbfd6ed9d632079e70c3c97f000"),
+      /* [ 13] */ new RandomConstant("df8a6fc1a833d201f98d719dd1f78001",
+      "59b60ee4c52fa49e9fe90682bd2fe000"),
+      /* [ 14] */ new RandomConstant("5480a5015f101a4ea7e3f183e3ef0001",
+      "cc099c88030679464fe86aae8a5fc000"),
+      /* [ 15] */ new RandomConstant("a498509e76e5d7925f539c28c7de0001",
+      "06b9abff9f9f33dd30362c0154bf8000"),
+      /* [ 16] */ new RandomConstant("0798a3d8b10dc72e60121cd58fbc0001",
+      "e296707121688d5a0260b293a97f0000"),
+      /* [ 17] */ new RandomConstant("1647d1e78ec02e665fafcbbb1f780001",
+      "189ffc4701ff23cb8f8acf6b52fe0000"),
+      /* [ 18] */ new RandomConstant("a7c982285e72bf8c0c8ddfb63ef00001",
+      "5141110ab208fb9d61fb47e6a5fc0000"),
+      /* [ 19] */ new RandomConstant("3eb78ee8fb8c56dbc5d4e06c7de00001",
+      "3c97caa62540f2948d8d340d4bf80000"),
+      /* [ 20] */ new RandomConstant("72d03b6f4681f2f9fe8e44d8fbc00001",
+      "1b25cb9cfe5a0c963174f91a97f00000"),
+      /* [ 21] */ new RandomConstant("ea85f81e4f502c9bc8ae99b1f7800001",
+      "0c644570b4a487103c5436352fe00000"),
+      /* [ 22] */ new RandomConstant("629c320db08b00c6bfa57363ef000001",
+      "3d0589c28869472bde517c6a5fc00000"),
+      /* [ 23] */ new RandomConstant("c5c4b9ce268d074a386be6c7de000001",
+      "bc95e5ab36477e65534738d4bf800000"),
+      /* [ 24] */ new RandomConstant("f30bbbbed1596187555bcd8fbc000001",
+      "ddb02ff72a031c01011f71a97f000000"),
+      /* [ 25] */ new RandomConstant("4a1000fb26c9eeda3cc79b1f78000001",
+      "2561426086d9acdb6c82e352fe000000"),
+      /* [ 26] */ new RandomConstant("89fb5307f6bf8ce2c1cf363ef0000001",
+      "64a788e3c118ed1c8215c6a5fc000000"),
+      /* [ 27] */ new RandomConstant("830b7b3358a5d67ea49e6c7de0000001",
+      "e65ea321908627cfa86b8d4bf8000000"),
+      /* [ 28] */ new RandomConstant("fd8a51da91a69fe1cd3cd8fbc0000001",
+      "53d27225604d85f9e1d71a97f0000000"),
+      /* [ 29] */ new RandomConstant("901a48b642b90b55aa79b1f780000001",
+      "ca5ec7a3ed1fe55e07ae352fe0000000"),
+      /* [ 30] */ new RandomConstant("118cdefdf32144f394f363ef00000001",
+      "4daebb2e085330651f5c6a5fc0000000"),
+      /* [ 31] */ new RandomConstant("0a88c0a91cff430829e6c7de00000001",
+      "9d6f1a00a8f3f76e7eb8d4bf80000000"),
+      /* [ 32] */ new RandomConstant("433bef4314f16a9453cd8fbc00000001",
+      "158c62f2b31e496dfd71a97f00000000"),
+      /* [ 33] */ new RandomConstant("c294b02995ae6738a79b1f7800000001",
+      "290e84a2eb15fd1ffae352fe00000000"),
+      /* [ 34] */ new RandomConstant("913575e0da8b16b14f363ef000000001",
+      "e3dc1bfbe991a34ff5c6a5fc00000000"),
+      /* [ 35] */ new RandomConstant("2f61b9f871cf4e629e6c7de000000001",
+      "ddf540d020b9eadfeb8d4bf800000000"),
+      /* [ 36] */ new RandomConstant("78d26ccbd68320c53cd8fbc000000001",
+      "8ee4950177ce66bfd71a97f000000000"),
+      /* [ 37] */ new RandomConstant("8b7ebd037898518a79b1f78000000001",
+      "39e0f787c907117fae352fe000000000"),
+      /* [ 38] */ new RandomConstant("0b5507b61f78e314f363ef0000000001",
+      "659d2522f7b732ff5c6a5fc000000000"),
+      /* [ 39] */ new RandomConstant("4f884628f812c629e6c7de0000000001",
+      "9e8722938612a5feb8d4bf8000000000"),
+      /* [ 40] */ new RandomConstant("be896744d4a98c53cd8fbc0000000001",
+      "e941a65d66b64bfd71a97f0000000000"),
+      /* [ 41] */ new RandomConstant("daf63a553b6318a79b1f780000000001",
+      "7b50d19437b097fae352fe0000000000"),
+      /* [ 42] */ new RandomConstant("2d7a23d8bf06314f363ef00000000001",
+      "59d7b68e18712ff5c6a5fc0000000000"),
+      /* [ 43] */ new RandomConstant("392b046a9f0c629e6c7de00000000001",
+      "4087bab2d5225feb8d4bf80000000000"),
+      /* [ 44] */ new RandomConstant("eb30fbb9c218c53cd8fbc00000000001",
+      "b470abc03b44bfd71a97f00000000000"),
+      /* [ 45] */ new RandomConstant("b9cdc30594318a79b1f7800000000001",
+      "366630eaba897fae352fe00000000000"),
+      /* [ 46] */ new RandomConstant("014ab453686314f363ef000000000001",
+      "a2dfc77e8512ff5c6a5fc00000000000"),
+      /* [ 47] */ new RandomConstant("395221c7d0c629e6c7de000000000001",
+      "1e0d25a14a25feb8d4bf800000000000"),
+      /* [ 48] */ new RandomConstant("4d972813a18c53cd8fbc000000000001",
+      "9d50a5d3944bfd71a97f000000000000"),
+      /* [ 49] */ new RandomConstant("06f9e2374318a79b1f78000000000001",
+      "bf7ab5eb2897fae352fe000000000000"),
+      /* [ 50] */ new RandomConstant("bd220cae86314f363ef0000000000001",
+      "925b14e6512ff5c6a5fc000000000000"),
+      /* [ 51] */ new RandomConstant("36fd3a5d0c629e6c7de0000000000001",
+      "724cce0ca25feb8d4bf8000000000000"),
+      /* [ 52] */ new RandomConstant("60def8ba18c53cd8fbc0000000000001",
+      "1af42d1944bfd71a97f0000000000000"),
+      /* [ 53] */ new RandomConstant("8d500174318a79b1f780000000000001",
+      "0f529e32897fae352fe0000000000000"),
+      /* [ 54] */ new RandomConstant("48e842e86314f363ef00000000000001",
+      "844e4c6512ff5c6a5fc0000000000000"),
+      /* [ 55] */ new RandomConstant("4af185d0c629e6c7de00000000000001",
+      "9f40d8ca25feb8d4bf80000000000000"),
+      /* [ 56] */ new RandomConstant("7a670ba18c53cd8fbc00000000000001",
+      "9912b1944bfd71a97f00000000000000"),
+      /* [ 57] */ new RandomConstant("86de174318a79b1f7800000000000001",
+      "9c69632897fae352fe00000000000000"),
+      /* [ 58] */ new RandomConstant("55fc2e86314f363ef000000000000001",
+      "e1e2c6512ff5c6a5fc00000000000000"),
+      /* [ 59] */ new RandomConstant("ccf85d0c629e6c7de000000000000001",
+      "68058ca25feb8d4bf800000000000000"),
+      /* [ 60] */ new RandomConstant("1df0ba18c53cd8fbc000000000000001",
+      "610b1944bfd71a97f000000000000000"),
+      /* [ 61] */ new RandomConstant("4be174318a79b1f78000000000000001",
+      "061632897fae352fe000000000000000"),
+      /* [ 62] */ new RandomConstant("d7c2e86314f363ef0000000000000001",
+      "1c2c6512ff5c6a5fc000000000000000"),
+      /* [ 63] */ new RandomConstant("af85d0c629e6c7de0000000000000001",
+      "7858ca25feb8d4bf8000000000000000"),
+      /* [ 64] */ new RandomConstant("5f0ba18c53cd8fbc0000000000000001",
+      "f0b1944bfd71a97f0000000000000000"),
+      /* [ 65] */ new RandomConstant("be174318a79b1f780000000000000001",
+      "e1632897fae352fe0000000000000000"),
+      /* [ 66] */ new RandomConstant("7c2e86314f363ef00000000000000001",
+      "c2c6512ff5c6a5fc0000000000000000"),
+      /* [ 67] */ new RandomConstant("f85d0c629e6c7de00000000000000001",
+      "858ca25feb8d4bf80000000000000000"),
+      /* [ 68] */ new RandomConstant("f0ba18c53cd8fbc00000000000000001",
+      "0b1944bfd71a97f00000000000000000"),
+      /* [ 69] */ new RandomConstant("e174318a79b1f7800000000000000001",
+      "1632897fae352fe00000000000000000"),
+      /* [ 70] */ new RandomConstant("c2e86314f363ef000000000000000001",
+      "2c6512ff5c6a5fc00000000000000000"),
+      /* [ 71] */ new RandomConstant("85d0c629e6c7de000000000000000001",
+      "58ca25feb8d4bf800000000000000000"),
+      /* [ 72] */ new RandomConstant("0ba18c53cd8fbc000000000000000001",
+      "b1944bfd71a97f000000000000000000"),
+      /* [ 73] */ new RandomConstant("174318a79b1f78000000000000000001",
+      "632897fae352fe000000000000000000"),
+      /* [ 74] */ new RandomConstant("2e86314f363ef0000000000000000001",
+      "c6512ff5c6a5fc000000000000000000"),
+      /* [ 75] */ new RandomConstant("5d0c629e6c7de0000000000000000001",
+      "8ca25feb8d4bf8000000000000000000"),
+      /* [ 76] */ new RandomConstant("ba18c53cd8fbc0000000000000000001",
+      "1944bfd71a97f0000000000000000000"),
+      /* [ 77] */ new RandomConstant("74318a79b1f780000000000000000001",
+      "32897fae352fe0000000000000000000"),
+      /* [ 78] */ new RandomConstant("e86314f363ef00000000000000000001",
+      "6512ff5c6a5fc0000000000000000000"),
+      /* [ 79] */ new RandomConstant("d0c629e6c7de00000000000000000001",
+      "ca25feb8d4bf80000000000000000000"),
+      /* [ 80] */ new RandomConstant("a18c53cd8fbc00000000000000000001",
+      "944bfd71a97f00000000000000000000"),
+      /* [ 81] */ new RandomConstant("4318a79b1f7800000000000000000001",
+      "2897fae352fe00000000000000000000"),
+      /* [ 82] */ new RandomConstant("86314f363ef000000000000000000001",
+      "512ff5c6a5fc00000000000000000000"),
+      /* [ 83] */ new RandomConstant("0c629e6c7de000000000000000000001",
+      "a25feb8d4bf800000000000000000000"),
+      /* [ 84] */ new RandomConstant("18c53cd8fbc000000000000000000001",
+      "44bfd71a97f000000000000000000000"),
+      /* [ 85] */ new RandomConstant("318a79b1f78000000000000000000001",
+      "897fae352fe000000000000000000000"),
+      /* [ 86] */ new RandomConstant("6314f363ef0000000000000000000001",
+      "12ff5c6a5fc000000000000000000000"),
+      /* [ 87] */ new RandomConstant("c629e6c7de0000000000000000000001",
+      "25feb8d4bf8000000000000000000000"),
+      /* [ 88] */ new RandomConstant("8c53cd8fbc0000000000000000000001",
+      "4bfd71a97f0000000000000000000000"),
+      /* [ 89] */ new RandomConstant("18a79b1f780000000000000000000001",
+      "97fae352fe0000000000000000000000"),
+      /* [ 90] */ new RandomConstant("314f363ef00000000000000000000001",
+      "2ff5c6a5fc0000000000000000000000"),
+      /* [ 91] */ new RandomConstant("629e6c7de00000000000000000000001",
+      "5feb8d4bf80000000000000000000000"),
+      /* [ 92] */ new RandomConstant("c53cd8fbc00000000000000000000001",
+      "bfd71a97f00000000000000000000000"),
+      /* [ 93] */ new RandomConstant("8a79b1f7800000000000000000000001",
+      "7fae352fe00000000000000000000000"),
+      /* [ 94] */ new RandomConstant("14f363ef000000000000000000000001",
+      "ff5c6a5fc00000000000000000000000"),
+      /* [ 95] */ new RandomConstant("29e6c7de000000000000000000000001",
+      "feb8d4bf800000000000000000000000"),
+      /* [ 96] */ new RandomConstant("53cd8fbc000000000000000000000001",
+      "fd71a97f000000000000000000000000"),
+      /* [ 97] */ new RandomConstant("a79b1f78000000000000000000000001",
+      "fae352fe000000000000000000000000"),
+      /* [ 98] */ new RandomConstant("4f363ef0000000000000000000000001",
+      "f5c6a5fc000000000000000000000000"),
+      /* [ 99] */ new RandomConstant("9e6c7de0000000000000000000000001",
+      "eb8d4bf8000000000000000000000000"),
+      /* [100] */ new RandomConstant("3cd8fbc0000000000000000000000001",
+      "d71a97f0000000000000000000000000"),
+      /* [101] */ new RandomConstant("79b1f780000000000000000000000001",
+      "ae352fe0000000000000000000000000"),
+      /* [102] */ new RandomConstant("f363ef00000000000000000000000001",
+      "5c6a5fc0000000000000000000000000"),
+      /* [103] */ new RandomConstant("e6c7de00000000000000000000000001",
+      "b8d4bf80000000000000000000000000"),
+      /* [104] */ new RandomConstant("cd8fbc00000000000000000000000001",
+      "71a97f00000000000000000000000000"),
+      /* [105] */ new RandomConstant("9b1f7800000000000000000000000001",
+      "e352fe00000000000000000000000000"),
+      /* [106] */ new RandomConstant("363ef000000000000000000000000001",
+      "c6a5fc00000000000000000000000000"),
+      /* [107] */ new RandomConstant("6c7de000000000000000000000000001",
+      "8d4bf800000000000000000000000000"),
+      /* [108] */ new RandomConstant("d8fbc000000000000000000000000001",
+      "1a97f000000000000000000000000000"),
+      /* [109] */ new RandomConstant("b1f78000000000000000000000000001",
+      "352fe000000000000000000000000000"),
+      /* [110] */ new RandomConstant("63ef0000000000000000000000000001",
+      "6a5fc000000000000000000000000000"),
+      /* [111] */ new RandomConstant("c7de0000000000000000000000000001",
+      "d4bf8000000000000000000000000000"),
+      /* [112] */ new RandomConstant("8fbc0000000000000000000000000001",
+      "a97f0000000000000000000000000000"),
+      /* [113] */ new RandomConstant("1f780000000000000000000000000001",
+      "52fe0000000000000000000000000000"),
+      /* [114] */ new RandomConstant("3ef00000000000000000000000000001",
+      "a5fc0000000000000000000000000000"),
+      /* [115] */ new RandomConstant("7de00000000000000000000000000001",
+      "4bf80000000000000000000000000000"),
+      /* [116] */ new RandomConstant("fbc00000000000000000000000000001",
+      "97f00000000000000000000000000000"),
+      /* [117] */ new RandomConstant("f7800000000000000000000000000001",
+      "2fe00000000000000000000000000000"),
+      /* [118] */ new RandomConstant("ef000000000000000000000000000001",
+      "5fc00000000000000000000000000000"),
+      /* [119] */ new RandomConstant("de000000000000000000000000000001",
+      "bf800000000000000000000000000000"),
+      /* [120] */ new RandomConstant("bc000000000000000000000000000001",
+      "7f000000000000000000000000000000"),
+      /* [121] */ new RandomConstant("78000000000000000000000000000001",
+      "fe000000000000000000000000000000"),
+      /* [122] */ new RandomConstant("f0000000000000000000000000000001",
+      "fc000000000000000000000000000000"),
+      /* [123] */ new RandomConstant("e0000000000000000000000000000001",
+      "f8000000000000000000000000000000"),
+      /* [124] */ new RandomConstant("c0000000000000000000000000000001",
+      "f0000000000000000000000000000000"),
+      /* [125] */ new RandomConstant("80000000000000000000000000000001",
+      "e0000000000000000000000000000000"),
+      /* [126] */ new RandomConstant("00000000000000000000000000000001",
+      "c0000000000000000000000000000000"),
+      /* [127] */ new RandomConstant("00000000000000000000000000000001",
+      "80000000000000000000000000000000")};
+
+  /**
+   *  generate the random number that is "advance" steps
+   *  from an initial random number of 0.  This is done by
+   *  starting with 0, and then advancing the by the
+   *  appropriate powers of 2 of the linear congruential
+   *  generator.
+   */
+  public static Unsigned16 skipAhead(Unsigned16 advance) {
+    Unsigned16 result = new Unsigned16();
+    long          bit_map;
+
+    bit_map = advance.getLow8();
+    for (int i = 0; bit_map != 0 && i < 64; i++) {
+      if ((bit_map & (1L << i)) != 0) {
+        /* advance random number by f**(2**i) (x)
+         */
+        result.multiply(genArray[i].a);
+        result.add(genArray[i].c);
+        bit_map &= ~(1L << i);
+      }
+    }
+    bit_map = advance.getHigh8();
+    for (int i = 0; bit_map != 0 && i < 64; i++)
+    {
+      if ((bit_map & (1L << i)) != 0) {
+        /* advance random number by f**(2**(i + 64)) (x)
+         */
+        result.multiply(genArray[i+64].a);
+        result.add(genArray[i+64].c);
+        bit_map &= ~(1L << i);
+      }
+    }
+    return result;
+  }
+
+  /**
+   * Generate the next 16 byte random number.
+   */
+  public static void nextRand(Unsigned16 rand) {
+    /* advance the random number forward once using the linear congruential
+     * generator, and then return the new random number
+     */
+    rand.multiply(genArray[0].a);
+    rand.add(genArray[0].c);
+  }
+}
diff --git a/wayang-benchmark/src/main/java/org/apache/wayang/apps/terasort/Unsigned16.java b/wayang-benchmark/src/main/java/org/apache/wayang/apps/terasort/Unsigned16.java
new file mode 100644
index 0000000..ce6b662
--- /dev/null
+++ b/wayang-benchmark/src/main/java/org/apache/wayang/apps/terasort/Unsigned16.java
@@ -0,0 +1,299 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.apps.terasort;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+import org.apache.hadoop.io.Writable;
+
+/**
+ * An unsigned 16 byte integer class that supports addition, multiplication,
+ * and left shifts.
+ *
+ *  * code copied from <a href="https://github.com/apache/hadoop/blob/trunk/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/terasort/Unsigned16.java">Terasort Example</a>
+ */
+class Unsigned16 implements Writable, Serializable {
+  private long hi8;
+  private long lo8;
+
+  public Unsigned16() {
+    hi8 = 0;
+    lo8 = 0;
+  }
+
+  public Unsigned16(long l) {
+    hi8 = 0;
+    lo8 = l;
+  }
+
+  public Unsigned16(Unsigned16 other) {
+    hi8 = other.hi8;
+    lo8 = other.lo8;
+  }
+
+  @Override
+  public boolean equals(Object o) {
+    if (o instanceof Unsigned16) {
+      Unsigned16 other = (Unsigned16) o;
+      return other.hi8 == hi8 && other.lo8 == lo8;
+    }
+    return false;
+  }
+
+  @Override
+  public int hashCode() {
+    return (int) lo8;
+  }
+
+  /**
+   * Parse a hex string
+   * @param s the hex string
+   */
+  public Unsigned16(String s) throws NumberFormatException {
+    set(s);
+  }
+
+  /**
+   * Set the number from a hex string
+   * @param s the number in hexadecimal
+   * @throws NumberFormatException if the number is invalid
+   */
+  public void set(String s) throws NumberFormatException {
+    hi8 = 0;
+    lo8 = 0;
+    final long lastDigit = 0xfl << 60;
+    for (int i = 0; i < s.length(); ++i) {
+      int digit = getHexDigit(s.charAt(i));
+      if ((lastDigit & hi8) != 0) {
+        throw new NumberFormatException(s + " overflowed 16 bytes");
+      }
+      hi8 <<= 4;
+      hi8 |= (lo8 & lastDigit) >>> 60;
+      lo8 <<= 4;
+      lo8 |= digit;
+    }
+  }
+
+  /**
+   * Set the number to a given long.
+   * @param l the new value, which is treated as an unsigned number
+   */
+  public void set(long l) {
+    lo8 = l;
+    hi8 = 0;
+  }
+
+  /**
+   * Map a hexadecimal character into a digit.
+   * @param ch the character
+   * @return the digit from 0 to 15
+   * @throws NumberFormatException
+   */
+  private static int getHexDigit(char ch) throws NumberFormatException {
+    if (ch >= '0' && ch <= '9') {
+      return ch - '0';
+    }
+    if (ch >= 'a' && ch <= 'f') {
+      return ch - 'a' + 10;
+    }
+    if (ch >= 'A' && ch <= 'F') {
+      return ch - 'A' + 10;
+    }
+    throw new NumberFormatException(ch + " is not a valid hex digit");
+  }
+
+  private static final Unsigned16 TEN = new Unsigned16(10);
+
+  public static Unsigned16 fromDecimal(String s) throws NumberFormatException {
+    Unsigned16 result = new Unsigned16();
+    Unsigned16 tmp = new Unsigned16();
+    for(int i=0; i < s.length(); i++) {
+      char ch = s.charAt(i);
+      if (ch < '0' || ch > '9') {
+        throw new NumberFormatException(ch + " not a valid decimal digit");
+      }
+      int digit = ch - '0';
+      result.multiply(TEN);
+      tmp.set(digit);
+      result.add(tmp);
+    }
+    return result;
+  }
+
+  /**
+   * Return the number as a hex string.
+   */
+  public String toString() {
+    if (hi8 == 0) {
+      return Long.toHexString(lo8);
+    } else {
+      StringBuilder result = new StringBuilder();
+      result.append(Long.toHexString(hi8));
+      String loString = Long.toHexString(lo8);
+      for(int i=loString.length(); i < 16; ++i) {
+        result.append('0');
+      }
+      result.append(loString);
+      return result.toString();
+    }
+  }
+
+  /**
+   * Get a given byte from the number.
+   * @param b the byte to get with 0 meaning the most significant byte
+   * @return the byte or 0 if b is outside of 0..15
+   */
+  public byte getByte(int b) {
+    if (b >= 0 && b < 16) {
+      if (b < 8) {
+        return (byte) (hi8 >> (56 - 8*b));
+      } else {
+        return (byte) (lo8 >> (120 - 8*b));
+      }
+    }
+    return 0;
+  }
+
+  /**
+   * Get the hexadecimal digit at the given position.
+   * @param p the digit position to get with 0 meaning the most significant
+   * @return the character or '0' if p is outside of 0..31
+   */
+  public char getHexDigit(int p) {
+    byte digit = getByte(p / 2);
+    if (p % 2 == 0) {
+      digit >>>= 4;
+    }
+    digit &= 0xf;
+    if (digit < 10) {
+      return (char) ('0' + digit);
+    } else {
+      return (char) ('A' + digit - 10);
+    }
+  }
+
+  /**
+   * Get the high 8 bytes as a long.
+   */
+  public long getHigh8() {
+    return hi8;
+  }
+
+  /**
+   * Get the low 8 bytes as a long.
+   */
+  public long getLow8() {
+    return lo8;
+  }
+
+  /**
+   * Multiple the current number by a 16 byte unsigned integer. Overflow is not
+   * detected and the result is the low 16 bytes of the result. The numbers 
+   * are divided into 32 and 31 bit chunks so that the product of two chucks
+   * fits in the unsigned 63 bits of a long.
+   * @param b the other number
+   */
+  void multiply(Unsigned16 b) {
+    // divide the left into 4 32 bit chunks
+    long[] left = new long[4];
+    left[0] = lo8 & 0xffffffffl;
+    left[1] = lo8 >>> 32;
+    left[2] = hi8 & 0xffffffffl;
+    left[3] = hi8 >>> 32;
+    // divide the right into 5 31 bit chunks
+    long[] right = new long[5];
+    right[0] = b.lo8 & 0x7fffffffl;
+    right[1] = (b.lo8 >>> 31) & 0x7fffffffl;
+    right[2] = (b.lo8 >>> 62) + ((b.hi8 & 0x1fffffffl) << 2);
+    right[3] = (b.hi8 >>> 29) & 0x7fffffffl;
+    right[4] = (b.hi8 >>> 60);
+    // clear the cur value
+    set(0);
+    Unsigned16 tmp = new Unsigned16();
+    for(int l=0; l < 4; ++l) {
+      for (int r=0; r < 5; ++r) {
+        long prod = left[l] * right[r];
+        if (prod != 0) {
+          int off = l*32 + r*31;
+          tmp.set(prod);
+          tmp.shiftLeft(off);
+          add(tmp);
+        }
+      }
+    }
+  }
+
+  /**
+   * Add the given number into the current number.
+   * @param b the other number
+   */
+  public void add(Unsigned16 b) {
+    long sumHi;
+    long sumLo;
+    long  reshibit, hibit0, hibit1;
+
+    sumHi = hi8 + b.hi8;
+
+    hibit0 = (lo8 & 0x8000000000000000L);
+    hibit1 = (b.lo8 & 0x8000000000000000L);
+    sumLo = lo8 + b.lo8;
+    reshibit = (sumLo & 0x8000000000000000L);
+    if ((hibit0 & hibit1) != 0 | ((hibit0 ^ hibit1) != 0 && reshibit == 0))
+      sumHi++;  /* add carry bit */
+    hi8 = sumHi;
+    lo8 = sumLo;
+  }
+
+  /**
+   * Shift the number a given number of bit positions. The number is the low
+   * order bits of the result.
+   * @param bits the bit positions to shift by
+   */
+  public void shiftLeft(int bits) {
+    if (bits != 0) {
+      if (bits < 64) {
+        hi8 <<= bits;
+        hi8 |= (lo8 >>> (64 - bits));
+        lo8 <<= bits;
+      } else if (bits < 128) {
+        hi8 = lo8 << (bits - 64);
+        lo8 = 0;
+      } else {
+        hi8 = 0;
+        lo8 = 0;
+      }
+    }
+  }
+
+  @Override
+  public void readFields(DataInput in) throws IOException {
+    hi8 = in.readLong();
+    lo8 = in.readLong();
+  }
+
+  @Override
+  public void write(DataOutput out) throws IOException {
+    out.writeLong(hi8);
+    out.writeLong(lo8);
+  }
+
+
+}
diff --git a/wayang-benchmark/src/main/java/org/apache/wayang/apps/tpch/Main.java b/wayang-benchmark/src/main/java/org/apache/wayang/apps/tpch/Main.java
index c020b34..f77abe2 100644
--- a/wayang-benchmark/src/main/java/org/apache/wayang/apps/tpch/Main.java
+++ b/wayang-benchmark/src/main/java/org/apache/wayang/apps/tpch/Main.java
@@ -21,14 +21,17 @@
 import org.apache.wayang.apps.tpch.data.LineItemTuple;
 import org.apache.wayang.apps.tpch.data.q1.GroupKey;
 import org.apache.wayang.apps.tpch.data.q1.ReturnTuple;
-import org.apache.wayang.basic.operators.*;
+import org.apache.wayang.basic.operators.FilterOperator;
+import org.apache.wayang.basic.operators.LocalCallbackSink;
+import org.apache.wayang.basic.operators.MapOperator;
+import org.apache.wayang.basic.operators.ReduceByOperator;
+import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.api.WayangContext;
 import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.java.Java;
 import org.apache.wayang.java.platform.JavaPlatform;
 import org.apache.wayang.spark.Spark;
-import org.apache.wayang.spark.platform.SparkPlatform;
 
 /**
  * Main class for the TPC-H app based on Apache Wayang.
diff --git a/wayang-benchmark/src/main/java/org/apache/wayang/apps/wordcount/Main.java b/wayang-benchmark/src/main/java/org/apache/wayang/apps/wordcount/Main.java
index 9b613cd..0cd0f4d 100644
--- a/wayang-benchmark/src/main/java/org/apache/wayang/apps/wordcount/Main.java
+++ b/wayang-benchmark/src/main/java/org/apache/wayang/apps/wordcount/Main.java
@@ -18,8 +18,19 @@
 
 package org.apache.wayang.apps.wordcount;
 
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
 import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.basic.operators.*;
+import org.apache.wayang.basic.operators.FilterOperator;
+import org.apache.wayang.basic.operators.FlatMapOperator;
+import org.apache.wayang.basic.operators.LocalCallbackSink;
+import org.apache.wayang.basic.operators.MapOperator;
+import org.apache.wayang.basic.operators.ReduceByOperator;
+import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.api.WayangContext;
 import org.apache.wayang.core.function.FlatMapDescriptor;
 import org.apache.wayang.core.function.ReduceDescriptor;
@@ -32,14 +43,6 @@
 import org.apache.wayang.java.Java;
 import org.apache.wayang.java.platform.JavaPlatform;
 import org.apache.wayang.spark.Spark;
-import org.apache.wayang.spark.platform.SparkPlatform;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
 
 /**
  * Example Apache Wayang App that does a word count -- the Hello World of Map/Reduce-like systems.
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/benchmark/OptimizerScalabilityTest.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/benchmark/OptimizerScalabilityTest.scala
index f1c598a..d4b6b39 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/benchmark/OptimizerScalabilityTest.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/benchmark/OptimizerScalabilityTest.scala
@@ -19,7 +19,6 @@
 package org.apache.wayang.apps.benchmark
 
 import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
-import org.apache.wayang.apps.util.ProfileDBHelper
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 
 /**
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/benchmark/PlanGenerator.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/benchmark/PlanGenerator.scala
index 7aaccbe..3e7f720 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/benchmark/PlanGenerator.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/benchmark/PlanGenerator.scala
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.apps.benchmark
 
-import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.api.{DataQuanta, PlanBuilder}
+import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.WayangContext
 import org.apache.wayang.core.plan.wayangplan.WayangPlan
 
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/crocopr/CrocoPR.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/crocopr/CrocoPR.scala
index 9a92ba5..7f16921 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/crocopr/CrocoPR.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/crocopr/CrocoPR.scala
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.apps.crocopr
 
-import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper, StdOut}
 import org.apache.wayang.api.graph._
 import org.apache.wayang.api.{DataQuanta, PlanBuilder}
-import org.apache.wayang.apps.util.ProfileDBHelper
+import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper, StdOut}
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.exception.WayangException
 import org.apache.wayang.core.api.{Configuration, WayangContext}
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/Kmeans.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/Kmeans.scala
index 5a1f1fc..bad00ec 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/Kmeans.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/Kmeans.scala
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.apps.kmeans
 
-import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
-
 import java.util
+
 import org.apache.wayang.api._
-import org.apache.wayang.apps.util.ProfileDBHelper
+import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.function.ExecutionContext
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/postgres/Kmeans.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/postgres/Kmeans.scala
index 301d953..362de09 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/postgres/Kmeans.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/postgres/Kmeans.scala
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.apps.kmeans.postgres
 
-import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
-
 import java.util
+
 import org.apache.wayang.api.{PlanBuilder, _}
-import org.apache.wayang.apps.util.ProfileDBHelper
+import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.function.ExecutionContext
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/sgd/SGD.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/sgd/SGD.scala
index 981cf1d..2fa5189 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/sgd/SGD.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/sgd/SGD.scala
@@ -19,7 +19,6 @@
 package org.apache.wayang.apps.sgd
 
 import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
-import org.apache.wayang.apps.util.ProfileDBHelper
 import org.apache.wayang.core.api.Configuration
 
 /**
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/ScrubFunction.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/ScrubFunction.scala
index a24f403..246f38e 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/ScrubFunction.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/ScrubFunction.scala
@@ -18,7 +18,6 @@
 
 package org.apache.wayang.apps.simwords
 
-import java.lang.Iterable
 import java.util
 
 import org.apache.wayang.core.function.ExecutionContext
@@ -33,7 +32,7 @@
 
   override def open(ctx: ExecutionContext): Unit = {}
 
-  override def apply(line: String): Iterable[String] = {
+  override def apply(line: String): java.lang.Iterable[String] = {
     val result = new util.LinkedList[String]()
     textScrubber.splitAndScrub(line, result)
     result
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/SelectNearestCentroidFunction.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/SelectNearestCentroidFunction.scala
index c98a961..37eaefb 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/SelectNearestCentroidFunction.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/SelectNearestCentroidFunction.scala
@@ -18,10 +18,10 @@
 
 package org.apache.wayang.apps.simwords
 
+import org.apache.logging.log4j.LogManager
 import org.apache.wayang.core.function.ExecutionContext
 import org.apache.wayang.core.function.FunctionDescriptor.ExtendedSerializableFunction
 import org.apache.wayang.core.util.WayangCollections
-import org.slf4j.LoggerFactory
 
 import scala.collection.JavaConversions._
 import scala.util.Random
@@ -33,7 +33,7 @@
 class SelectNearestCentroidFunction(broadcastName: String)
   extends ExtendedSerializableFunction[(Int, SparseVector), (Int, SparseVector, Int)] {
 
-  private lazy val logger = LoggerFactory.getLogger(getClass)
+  private lazy val logger = LogManager.getLogger(getClass)
 
   private var centroids: java.util.List[(Int, SparseVector)] = _
 
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/SimWords.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/SimWords.scala
index f1ace56..183e52a 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/SimWords.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/SimWords.scala
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.apps.simwords
 
-import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
 import org.apache.wayang.api._
-import org.apache.wayang.apps.util.ProfileDBHelper
+import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/Word2NVec.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/Word2NVec.scala
index adbe05c..5696800 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/Word2NVec.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/simwords/Word2NVec.scala
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.apps.simwords
 
-import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
 import org.apache.wayang.api._
-import org.apache.wayang.apps.util.ProfileDBHelper
+import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.function.ExecutionContext
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/sindy/Sindy.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/sindy/Sindy.scala
index 01db9ea..f189f70 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/sindy/Sindy.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/sindy/Sindy.scala
@@ -18,13 +18,11 @@
 
 package org.apache.wayang.apps.sindy
 
-import java.lang.Iterable
 import java.util
+
 import org.apache.wayang.api._
-import org.apache.wayang.apps
-import Sindy.{CellCreator, CellMerger, IndCandidateGenerator, IndCandidateMerger}
+import org.apache.wayang.apps.sindy.Sindy.{CellCreator, CellMerger, IndCandidateGenerator, IndCandidateMerger}
 import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper, StdOut}
-import org.apache.wayang.apps.util.ProfileDBHelper
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.function.FunctionDescriptor.{SerializableBinaryOperator, SerializableFunction}
@@ -149,7 +147,7 @@
     */
   class CellCreator(val offset: Int, val separator: Char) extends SerializableFunction[String, java.lang.Iterable[(String, Int)]] {
 
-    override def apply(row: String): Iterable[(String, Int)] = {
+    override def apply(row: String): java.lang.Iterable[(String, Int)] = {
       val fields = row.split(separator)
       val cells = new util.ArrayList[(String, Int)](fields.length)
       var columnId = offset
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraApp.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraApp.scala
new file mode 100644
index 0000000..531bb19
--- /dev/null
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraApp.scala
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.apps.terasort
+
+import java.util.regex.Pattern
+
+import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters}
+import org.apache.wayang.core.api.Configuration
+
+object TeraApp extends ExperimentDescriptor {
+
+  val KEY_LEN = 10
+  val VALUE_LEN = 100
+  val RECORD_LEN : Int = KEY_LEN + VALUE_LEN
+
+  override def version = "0.1.0"
+
+  def main(args: Array[String]) {
+    // Parse args.
+    if (args.isEmpty) {
+      println(s"Usage: " +
+        s"${Parameters.experimentHelp} " +
+        s"<plugin(,plugin)*> " +
+        s"<task could be[generate|sort|validate]> " +
+        s"<file size ([0-9]+(.[0-9]+)?)([B|k|K|m|M|g|G|t|T])> " +
+        s"<partitions>" +
+        s"<input file if not value is null> " +
+        s"<output file if not value is null>")
+      sys.exit(1)
+    }
+    implicit val configuration = new Configuration
+    implicit val experiment = Parameters.createExperiment(args(0), this)
+    val plugins = Parameters.loadPlugins(args(1))
+    experiment.getSubject.addConfiguration("plugins", args(1))
+    val task = args(2)
+    experiment.getSubject.addConfiguration("task", task)
+    val fileSize = sizeStrToBytes(args(3))
+    experiment.getSubject.addConfiguration("fileSize", fileSize)
+    val partitions = args(4).toInt
+    experiment.getSubject.addConfiguration("partitions", partitions)
+    val input_file = if(args(5).equals("null")) null else args(5)
+    val output_file = if(args.length > 6){ if(args(6).equals("null")) null else args(6) } else null
+    experiment.getSubject.addConfiguration("inputFile", input_file)
+    experiment.getSubject.addConfiguration("outputFile", output_file)
+
+    task match {
+      case "generate" => new TeraGen(plugins: _*).apply(output_file, fileSize, partitions)
+      case "sort" => new TeraSort(plugins: _*).apply(input_file, output_file)
+      case "validate" => new TeraValidate(plugins: _*).apply(input_file)
+    }
+
+
+    // Run wordCount.
+//    val wordCount = new WordCountScala(plugins: _*)
+//    val words =
+//      (if (wordsPerLine != null) {
+//        wordCount(inputFile, wordsPerLine)
+//      } else {
+//        wordCount(inputFile)
+//      }).toSeq.sortBy(-_._2)
+//
+//    // Store experiment data.
+//    val inputFileSize = FileSystems.getFileSize(inputFile)
+//    if (inputFileSize.isPresent) experiment.getSubject.addConfiguration("inputSize", inputFileSize.getAsLong)
+//    ProfileDBHelper.store(experiment, configuration)
+//
+//    // Print results.
+//    println(s"Found ${words.size} words:")
+//    words.take(10).foreach(wc => println(s"${wc._2}x ${wc._1}"))
+//    if (words.size > 10) print(s"${words.size - 10} more...")
+
+
+  }
+
+  /**
+   * Convert the string format ([0-9]+(.[0-9]+)?)([B|k|K|m|M|g|G|t|T]) to the
+   * number on bytes
+   *
+   * B = Bytes
+   * k|K = Kilobytes (1_024 Bytes)
+   * m|M = Megabytes (1_048_576 Bytes)
+   * g|G = Gigabytes (1_073_741_824 Bytes)
+   * t|T = Terabytes (1_099_511_627_776 Bytes)
+   *
+   * @param str in the format
+   * @return number equivalent to the byte
+   */
+  def sizeStrToBytes(str: String): Long = {
+    val reg = "(\\d+(\\.\\d+)?)([B|k|K|m|M|g|G|t|T])"
+    val groups = Pattern.compile(reg).matcher(str)
+    groups.find()
+
+    val number_part:Double = groups.group(1).toDouble
+    val letter_part:String = groups.group(3)
+
+    val conversion = letter_part match {
+      case "B" => 1L //2^0
+      case "k" => 1024L //2^10
+      case "K" => 1024L //2^10
+      case "m" => 1048576L //2^20
+      case "M" => 1048576L //2^20
+      case "g" => 1073741824L //2^30
+      case "G" => 1073741824L //2^30
+      case "t" => 1099511627776L //2^40
+      case "T" => 1099511627776L //2^40
+      case _ => 1L //2^0
+    }
+    (number_part * conversion).toLong
+  }
+
+  /**
+   * take a number that represent a size on bytes return the human readable version
+   *
+   * @param size number that represent the size
+   * @return human readable version of the size
+   */
+  def sizeToSizeStr(size: Long): String = {
+    val kbScale: Long = 1024L
+    val mbScale: Long = 1024L * kbScale
+    val gbScale: Long = 1024L * mbScale
+    val tbScale: Long = 1024L * gbScale
+
+    if (size > tbScale) {
+      size / tbScale + "TB"
+    } else if (size > gbScale) {
+      size / gbScale  + "GB"
+    } else if (size > mbScale) {
+      size / mbScale + "MB"
+    } else if (size > kbScale) {
+      size / kbScale + "KB"
+    } else {
+      size + "B"
+    }
+  }
+
+}
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraGen.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraGen.scala
new file mode 100644
index 0000000..4d6cd74
--- /dev/null
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraGen.scala
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.apps.terasort
+
+import org.apache.wayang.api.PlanBuilder
+import org.apache.wayang.commons.util.profiledb.model.Experiment
+import org.apache.wayang.core.api.{Configuration, WayangContext}
+import org.apache.wayang.core.plugin.Plugin
+
+class TeraGen(@transient plugins: Plugin*) extends Serializable {
+
+  def apply(output_url: String, file_size: Long, partitions: Int)
+           (implicit configuration: Configuration, experiment: Experiment) = {
+    val wayangCtx = new WayangContext(configuration)
+    plugins.foreach(wayangCtx.register)
+    val planBuilder = new PlanBuilder(wayangCtx)
+
+    val parts = partitions
+    val recordsPerPartition = file_size / TeraApp.VALUE_LEN / parts.toLong
+    val numRecords = recordsPerPartition * parts.toLong
+
+    assert(recordsPerPartition < Int.MaxValue, s"records per partition > ${Int.MaxValue}")
+
+    println("===========================================================================")
+    println("===========================================================================")
+    println(s"Input size: $file_size")
+    println(s"Total number of records: $numRecords")
+    println(s"Number of output partitions: $parts")
+    println("Number of records/output partition: " + (numRecords / parts))
+    println("===========================================================================")
+    println("===========================================================================")
+
+    planBuilder
+      .withJobName(s"Terasort generate ${file_size}")
+      .withExperiment(experiment)
+      .withUdfJarsOf(this.getClass)
+      .loadCollection(1 to parts)
+      .flatMap( index => {
+        val one = new Unsigned16(1)
+        val firstRecordNumber = new Unsigned16(index.toLong * recordsPerPartition.toLong)
+        val recordsToGenerate = new Unsigned16(recordsPerPartition)
+
+        val recordNumber = new Unsigned16(firstRecordNumber)
+        val lastRecordNumber = new Unsigned16(firstRecordNumber)
+        lastRecordNumber.add(recordsToGenerate)
+
+        val rand = Random16.skipAhead(firstRecordNumber)
+
+        Iterator.tabulate(recordsPerPartition.toInt) { offset =>
+          val rowBytes: Array[Byte] = new Array[Byte](TeraApp.RECORD_LEN)
+          val key = new Array[Byte](TeraApp.KEY_LEN)
+          val value = new Array[Byte](TeraApp.VALUE_LEN)
+          Random16.nextRand(rand)
+          generateRecord(rowBytes, rand, recordNumber)
+          recordNumber.add(one)
+          rowBytes.copyToArray(key, 0, TeraApp.KEY_LEN)
+          rowBytes.takeRight(TeraApp.VALUE_LEN).copyToArray(value, 0, TeraApp.VALUE_LEN)
+          (key, value)
+        }.toStream
+      })
+      .writeObjectFile(output_url)
+  }
+
+  /**
+   * Generate a binary record suitable for all sort benchmarks except PennySort.
+   *
+   * @param recBuf record to return
+   */
+  def generateRecord(recBuf: Array[Byte], rand: Unsigned16, recordNumber: Unsigned16): Unit = {
+    // Generate the 10-byte key using the high 10 bytes of the 128-bit random number
+    var i = 0
+    while (i < 10) {
+      recBuf(i) = rand.getByte(i)
+      i += 1
+    }
+
+    // Add 2 bytes of "break"
+    recBuf(10) = 0x00.toByte
+    recBuf(11) = 0x11.toByte
+
+    // Convert the 128-bit record number to 32 bits of ascii hexadecimal
+    // as the next 32 bytes of the record.
+    i = 0
+    while (i < 32) {
+      recBuf(12 + i) = recordNumber.getHexDigit(i).toByte
+      i += 1
+    }
+
+    // Add 4 bytes of "break" data
+    recBuf(44) = 0x88.toByte
+    recBuf(45) = 0x99.toByte
+    recBuf(46) = 0xAA.toByte
+    recBuf(47) = 0xBB.toByte
+
+    // Add 48 bytes of filler based on low 48 bits of random number
+    i = 0
+    while (i < 12) {
+      val v = rand.getHexDigit(20 + i).toByte
+      recBuf(48 + i * 4) = v
+      recBuf(49 + i * 4) = v
+      recBuf(50 + i * 4) = v
+      recBuf(51 + i * 4) = v
+      i += 1
+    }
+
+    // Add 4 bytes of "break" data
+    recBuf(96) = 0xCC.toByte
+    recBuf(97) = 0xDD.toByte
+    recBuf(98) = 0xEE.toByte
+    recBuf(99) = 0xFF.toByte
+  }
+
+}
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraSort.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraSort.scala
new file mode 100644
index 0000000..8b66230
--- /dev/null
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraSort.scala
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.apps.terasort
+
+import com.google.common.primitives.Longs
+import org.apache.wayang.api.PlanBuilder
+import org.apache.wayang.commons.util.profiledb.model.Experiment
+import org.apache.wayang.core.api.{Configuration, WayangContext}
+import org.apache.wayang.core.plugin.Plugin
+
+class TeraSort(@transient plugins: Plugin*) extends Serializable {
+
+  def apply(input_url: String, output_url: String)
+           (implicit configuration: Configuration, experiment: Experiment) = {
+
+    val wayangCtx = new WayangContext(configuration)
+    plugins.foreach(wayangCtx.register)
+    val planBuilder = new PlanBuilder(wayangCtx)
+
+    planBuilder
+      .readObjectFile[Tuple2[Array[Byte], Array[Byte]]](input_url)
+      .sort(t => {
+        val bytes = t._1;
+        Longs.fromBytes(0, bytes(0), bytes(1), bytes(2), bytes(3), bytes(4), bytes(5), bytes(6))
+      })
+      .writeObjectFile(output_url);
+  }
+
+}
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraValidate.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraValidate.scala
new file mode 100644
index 0000000..d4e035c
--- /dev/null
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/terasort/TeraValidate.scala
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.apps.terasort
+
+import com.google.common.primitives.UnsignedBytes
+import org.apache.hadoop.util.PureJavaCrc32
+import org.apache.wayang.api.PlanBuilder
+import org.apache.wayang.commons.util.profiledb.model.Experiment
+import org.apache.wayang.core.api.{Configuration, WayangContext}
+import org.apache.wayang.core.plugin.Plugin
+
+class TeraValidate(@transient plugins: Plugin*) extends Serializable {
+
+  def apply(input_url: String)
+           (implicit configuration: Configuration, experiment: Experiment) = {
+
+    val wayangCtx = new WayangContext(configuration)
+    plugins.foreach(wayangCtx.register)
+    val planBuilder = new PlanBuilder(wayangCtx)
+    val dataset = planBuilder
+      .readObjectFile[Tuple2[Array[Byte], Array[Byte]]](input_url)
+
+    val output = dataset.mapPartitions(
+      iterable_element => {
+        val iter = iterable_element.iterator
+        val sum = new Unsigned16
+        val checksum = new Unsigned16
+        val crc32 = new PureJavaCrc32()
+        val min = new Array[Byte](10)
+        val max = new Array[Byte](10)
+
+        val cmp = UnsignedBytes.lexicographicalComparator()
+
+        var pos = 0L
+        var prev = new Array[Byte](10)
+
+        while (iter.hasNext) {
+          val key = iter.next()._1
+          assert(cmp.compare(key, prev) >= 0)
+
+          crc32.reset()
+          crc32.update(key, 0, key.length)
+          checksum.set(crc32.getValue)
+          sum.add(checksum)
+
+          if (pos == 0) {
+            key.copyToArray(min, 0, 10)
+          }
+          pos += 1
+          prev = key
+        }
+        prev.copyToArray(max, 0, 10)
+        Iterator((sum, min, max)).toStream
+      }
+    )
+
+    val checksumOutput = output.collect()
+    val cmp = UnsignedBytes.lexicographicalComparator()
+    val sum = new Unsigned16
+    var numRecords = dataset.count.collect().head
+
+    checksumOutput.foreach { case (partSum, min, max) =>
+      sum.add(partSum)
+    }
+    println("num records: " + numRecords)
+    println("checksum: " + sum.toString)
+    var lastMax = new Array[Byte](10)
+    checksumOutput.map{ case (partSum, min, max) =>
+      (partSum, min.clone(), max.clone())
+    }.zipWithIndex.foreach { case ((partSum, min, max), i) =>
+      println(s"part $i")
+      println(s"lastMax" + lastMax.toSeq.map(x => if (x < 0) 256 + x else x))
+      println(s"min " + min.toSeq.map(x => if (x < 0) 256 + x else x))
+      println(s"max " + max.toSeq.map(x => if (x < 0) 256 + x else x))
+      assert(cmp.compare(min, max) <= 0, "min >= max")
+      assert(cmp.compare(lastMax, min) <= 0, "current partition min < last partition max")
+      lastMax = max
+    }
+    println("num records: " + numRecords)
+    println("checksum: " + sum.toString)
+    println("partitions are properly sorted")
+  }
+
+}
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/TpcH.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/TpcH.scala
index 60e35a7..c28952f 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/TpcH.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/TpcH.scala
@@ -20,17 +20,15 @@
 
 import org.apache.wayang.apps.tpch.queries.{Query1, Query3Database, Query3File, Query3Hybrid}
 import org.apache.wayang.apps.util.{Parameters, ProfileDBHelper, StdOut}
-import org.apache.wayang.apps.tpch.queries.Query1
-import org.apache.wayang.apps.util.ProfileDBHelper
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.Configuration
+import org.apache.wayang.core.platform.Platform
 import org.apache.wayang.jdbc.platform.JdbcPlatformTemplate
 import org.apache.wayang.postgres.Postgres
 import org.apache.wayang.postgres.operators.PostgresTableSource
 import org.apache.wayang.sqlite3.Sqlite3
 import org.apache.wayang.sqlite3.operators.Sqlite3TableSource
 
-import scala.collection.JavaConversions._
 
 /**
   * This app adapts some TPC-H queries.
@@ -50,7 +48,17 @@
 
     val jdbcPlatform = {
       val jdbcPlatforms = plugins
-        .flatMap(_.getRequiredPlatforms)
+        .flatMap(
+          plugin => {
+            val list = plugin.getRequiredPlatforms
+            var array: List[Platform] = List[Platform]()
+            val iterator = list.iterator()
+            while(iterator.hasNext){
+              array :+= iterator.next()
+            }
+            array
+          }
+        )
         .filter(_.isInstanceOf[JdbcPlatformTemplate])
         .distinct
       if (jdbcPlatforms.size == 1) jdbcPlatforms.head.asInstanceOf[JdbcPlatformTemplate]
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query1.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query1.scala
index 01c6a3d..b63af06 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query1.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query1.scala
@@ -18,10 +18,10 @@
 
 package org.apache.wayang.apps.tpch.queries
 
+import org.apache.wayang.api._
 import org.apache.wayang.apps.tpch.CsvUtils
 import org.apache.wayang.apps.tpch.data.LineItem
 import org.apache.wayang.apps.util.ExperimentDescriptor
-import org.apache.wayang.api._
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.plugin.Plugin
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3Database.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3Database.scala
index d3ea4e7..f146555 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3Database.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3Database.scala
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.apps.tpch.queries
 
+import org.apache.wayang.api._
 import org.apache.wayang.apps.tpch.CsvUtils
 import org.apache.wayang.apps.tpch.data.{Customer, LineItem, Order}
 import org.apache.wayang.apps.util.ExperimentDescriptor
-import org.apache.wayang.api._
-import org.apache.wayang.apps.tpch.data.LineItem
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.plugin.Plugin
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3File.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3File.scala
index 171e184..63aef01 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3File.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3File.scala
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.apps.tpch.queries
 
+import org.apache.wayang.api._
 import org.apache.wayang.apps.tpch.CsvUtils
 import org.apache.wayang.apps.tpch.data.{Customer, LineItem, Order}
 import org.apache.wayang.apps.util.ExperimentDescriptor
-import org.apache.wayang.api._
-import org.apache.wayang.apps.tpch.data.LineItem
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.plugin.Plugin
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3Hybrid.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3Hybrid.scala
index 06a8cc7..930c39d 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3Hybrid.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/tpch/queries/Query3Hybrid.scala
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.apps.tpch.queries
 
+import org.apache.wayang.api._
 import org.apache.wayang.apps.tpch.CsvUtils
 import org.apache.wayang.apps.tpch.data.{Customer, LineItem, Order}
 import org.apache.wayang.apps.util.ExperimentDescriptor
-import org.apache.wayang.api._
-import org.apache.wayang.apps.tpch.data.LineItem
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.plugin.Plugin
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/Parameters.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/Parameters.scala
index 135c46a..211fba7 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/Parameters.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/Parameters.scala
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.apps.util
 
-import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.basic.WayangBasics
+import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval
 import org.apache.wayang.core.plugin.{DynamicPlugin, Plugin}
 //import org.apache.wayang.graphchi.GraphChi
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/ProfileDBHelper.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/ProfileDBHelper.scala
index 7c4b381..3d98487 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/ProfileDBHelper.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/ProfileDBHelper.scala
@@ -20,9 +20,6 @@
 
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.Configuration
-import org.apache.wayang.core.profiling.ProfileDBs
-
-import java.io.File
 
 /**
   * Helper utility to employ with [[ProfileDB]].
diff --git a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/wordcount/WordCountScala.scala b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/wordcount/WordCountScala.scala
index 722cf43..af61bcd 100644
--- a/wayang-benchmark/src/main/scala/org/apache/wayang/apps/wordcount/WordCountScala.scala
+++ b/wayang-benchmark/src/main/scala/org/apache/wayang/apps/wordcount/WordCountScala.scala
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.apps.wordcount
 
-import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
 import org.apache.wayang.api._
-import org.apache.wayang.apps.util.ProfileDBHelper
+import org.apache.wayang.apps.util.{ExperimentDescriptor, Parameters, ProfileDBHelper}
 import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.{Configuration, WayangContext}
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval
diff --git a/wayang-benchmark/src/test/java/org/apache/wayang/apps/tpch/data/LineItemTupleTest.java b/wayang-benchmark/src/test/java/org/apache/wayang/apps/tpch/data/LineItemTupleTest.java
index 506a0cb..e53a258 100644
--- a/wayang-benchmark/src/test/java/org/apache/wayang/apps/tpch/data/LineItemTupleTest.java
+++ b/wayang-benchmark/src/test/java/org/apache/wayang/apps/tpch/data/LineItemTupleTest.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.apps.tpch.data;
 
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.util.Calendar;
 import java.util.GregorianCalendar;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suited for {@link LineItemTuple}.
diff --git a/wayang-benchmark/src/test/scala/org/apache/wayang/apps/kmeans/KmeansTest.scala b/wayang-benchmark/src/test/scala/org/apache/wayang/apps/kmeans/KmeansTest.scala
index 53d6fea..72c3853 100644
--- a/wayang-benchmark/src/test/scala/org/apache/wayang/apps/kmeans/KmeansTest.scala
+++ b/wayang-benchmark/src/test/scala/org/apache/wayang/apps/kmeans/KmeansTest.scala
@@ -19,11 +19,11 @@
 package org.apache.wayang.apps.kmeans
 
 import org.apache.wayang.commons.util.profiledb.model.{Experiment, Subject}
-import org.junit.Assert._
-import org.junit.Test
 import org.apache.wayang.core.api.Configuration
 import org.apache.wayang.java.Java
 import org.apache.wayang.spark.Spark
+import org.junit.Assert._
+import org.junit.Test
 
 /**
   * Test suite for [[Kmeans]].
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/channels/FileChannel.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/channels/FileChannel.java
index 9a56afb..17efde9 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/channels/FileChannel.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/channels/FileChannel.java
@@ -18,6 +18,13 @@
 
 package org.apache.wayang.basic.channels;
 
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Random;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -31,14 +38,6 @@
 import org.apache.wayang.core.util.fs.FileSystem;
 import org.apache.wayang.core.util.fs.FileSystems;
 
-import java.io.IOException;
-import java.io.UncheckedIOException;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Random;
-
 /**
  * Represents a {@link Channel} that is realized via a file/set of files.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/data/Record.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/data/Record.java
index d11506c..dac710b 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/data/Record.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/data/Record.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.basic.data;
 
-import org.apache.wayang.core.util.Copyable;
-import org.apache.wayang.core.util.ReflectionUtils;
-
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Objects;
+import org.apache.wayang.core.util.Copyable;
+import org.apache.wayang.core.util.ReflectionUtils;
 
 /**
  * A Type that represents a record with a schema, might be replaced with something standard like JPA entity.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/function/ProjectionDescriptor.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/function/ProjectionDescriptor.java
index 5db00d7..b4ab9ae 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/function/ProjectionDescriptor.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/function/ProjectionDescriptor.java
@@ -18,17 +18,16 @@
 
 package org.apache.wayang.basic.function;
 
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.types.RecordType;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.core.function.TransformationDescriptor;
 import org.apache.wayang.core.types.BasicDataUnitType;
 
-import java.lang.reflect.Field;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * This descriptor pertains to projections. It takes field names of the input type to describe the projection.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/GlobalReduceMapping.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/GlobalReduceMapping.java
index 3fe03d6..1888143 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/GlobalReduceMapping.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/GlobalReduceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.basic.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GlobalReduceOperator;
 import org.apache.wayang.basic.operators.GroupByOperator;
 import org.apache.wayang.basic.operators.ReduceByOperator;
@@ -31,9 +33,6 @@
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This mapping detects combinations of the {@link GroupByOperator} and {@link ReduceOperator} and merges them into
  * a single {@link ReduceByOperator}.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/Mappings.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/Mappings.java
index 38bf55b..ecd7a68 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/Mappings.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/Mappings.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.basic.mapping;
 
-import org.apache.wayang.core.mapping.Mapping;
-
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.core.mapping.Mapping;
 
 /**
  * Register for the components provided in the basic plugin.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/MaterializedGroupByMapping.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/MaterializedGroupByMapping.java
index 62c49c3..039bf52 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/MaterializedGroupByMapping.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/MaterializedGroupByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.basic.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GroupByOperator;
 import org.apache.wayang.basic.operators.MaterializedGroupByOperator;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This mapping translates the {@link GroupByOperator} into the {@link MaterializedGroupByOperator}.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/PageRankMapping.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/PageRankMapping.java
index 9491b4d..49ed260 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/PageRankMapping.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/PageRankMapping.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.basic.mapping;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.CountOperator;
 import org.apache.wayang.basic.operators.DistinctOperator;
@@ -44,11 +48,6 @@
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.core.util.WayangCollections;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * This {@link Mapping} translates a {@link PageRankOperator} into a {@link Subplan} of basic {@link Operator}s.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/ReduceByMapping.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/ReduceByMapping.java
index f9b9e1a..97a1328 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/ReduceByMapping.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/ReduceByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.basic.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GroupByOperator;
 import org.apache.wayang.basic.operators.ReduceByOperator;
 import org.apache.wayang.basic.operators.ReduceOperator;
@@ -30,9 +32,6 @@
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This mapping detects combinations of the {@link GroupByOperator} and {@link ReduceOperator} and merges them into
  * a single {@link ReduceByOperator}.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/RepeatMapping.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/RepeatMapping.java
index d92edf2..c56d3b2 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/RepeatMapping.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/RepeatMapping.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.basic.mapping;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.basic.operators.LoopOperator;
 import org.apache.wayang.basic.operators.MapOperator;
@@ -31,10 +34,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.util.WayangCollections;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Mapping} translates a {@link RepeatOperator} into a {@link Subplan} with the {@link LoopOperator}.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CartesianOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CartesianOperator.java
index 4fde9fc..89f64a9 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CartesianOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CartesianOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.api.Configuration;
@@ -26,8 +27,6 @@
 import org.apache.wayang.core.plan.wayangplan.BinaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This operator returns the cartesian product of elements of input datasets.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CoGroupOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CoGroupOperator.java
index 22676e9..b8f2da7 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CoGroupOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CoGroupOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.api.Configuration;
@@ -28,8 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.BinaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This operator groups both inputs by some key and then matches groups with the same key. If a key appears in only
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CollectionSource.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CollectionSource.java
index 0150263..2df6de1 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CollectionSource.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CollectionSource.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
@@ -26,10 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnarySource;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Optional;
-
 /**
  * This source takes as input a Java {@link java.util.Collection}.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CountOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CountOperator.java
index 0740575..b990609 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CountOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CountOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
@@ -25,8 +26,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This operator returns the count of elements in this stream.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DistinctOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DistinctOperator.java
index bf1e2d4..8e461f2 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DistinctOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DistinctOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
@@ -25,8 +26,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This operator returns the distinct elements in this dataset.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DoWhileOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DoWhileOperator.java
index 8966f01..ef4376c 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DoWhileOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DoWhileOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
@@ -31,11 +35,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.util.ReflectionUtils;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Optional;
-
 /**
  * This operator has three inputs and two outputs.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/FilterOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/FilterOperator.java
index 767ff69..876fa20 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/FilterOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/FilterOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.PredicateDescriptor;
@@ -27,8 +28,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This operator returns a new dataset after filtering by applying predicateDescriptor.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/FlatMapOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/FlatMapOperator.java
index e2d4406..7cb0e39 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/FlatMapOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/FlatMapOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FlatMapDescriptor;
@@ -28,8 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * A flatmap operator represents semantics as they are known from frameworks, such as Spark and Flink. It pulls each
  * available element from the input slot, applies a function to it, returning zero or more output elements,
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalMaterializedGroupOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalMaterializedGroupOperator.java
index 3ddb8b5..7f51a16 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalMaterializedGroupOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalMaterializedGroupOperator.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.optimizer.cardinality.FixedSizeCardinalityEstimator;
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * This operator groups the elements of a data set into a single data quantum.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalReduceOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalReduceOperator.java
index 3c03e1c..9301a30 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalReduceOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalReduceOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -28,8 +29,6 @@
 import org.apache.wayang.core.types.BasicDataUnitType;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * This operator groups the elements of a data set and aggregates the groups.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/IntersectOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/IntersectOperator.java
index d082695..e354a0c 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/IntersectOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/IntersectOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
@@ -25,8 +26,6 @@
 import org.apache.wayang.core.plan.wayangplan.BinaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This operator returns the set intersection of elements of input datasets.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/JoinOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/JoinOperator.java
index 1d4d1f3..7601652 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/JoinOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/JoinOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.api.Configuration;
@@ -28,8 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.BinaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This operator returns the cartesian product of elements of input datasets.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LocalCallbackSink.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LocalCallbackSink.java
index d88e963..4671dc1 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LocalCallbackSink.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LocalCallbackSink.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Collection;
+import java.util.Optional;
+import java.util.function.Consumer;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.ConsumerDescriptor;
@@ -27,10 +30,6 @@
 import org.apache.wayang.core.types.BasicDataUnitType;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Collection;
-import java.util.Optional;
-import java.util.function.Consumer;
-
 /**
  * This sink executes a callback on each received data unit into a Java {@link Collection}.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LoopOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LoopOperator.java
index e83022c..6ae1864 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LoopOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LoopOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
@@ -31,11 +35,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.util.ReflectionUtils;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Optional;
-
 /**
  * This operator has three inputs and three outputs.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MapOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MapOperator.java
index 13c25a1..1ecb9b1 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MapOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MapOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.function.ProjectionDescriptor;
@@ -30,8 +31,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * A map operator represents semantics as they are known from frameworks, such as Spark and Flink. It pulls each
  * available element from the input slot, applies a function to it, and pushes that element to the output slot.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MapPartitionsOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MapPartitionsOperator.java
index 976845e..942a252 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MapPartitionsOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MapPartitionsOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -28,8 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * This operator takes as input potentially multiple input data quanta and outputs multiple input data quanta.
  * <p>Since Wayang is not a physical execution engine, its notion of partitions is rather loose. Implementors
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MaterializedGroupByOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MaterializedGroupByOperator.java
index 4b06020..11bca6a 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MaterializedGroupByOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MaterializedGroupByOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -27,8 +28,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * This operator collocates the data units in a data set w.r.t. a key function.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ObjectFileSink.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ObjectFileSink.java
new file mode 100644
index 0000000..c648c17
--- /dev/null
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ObjectFileSink.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.basic.operators;
+
+import org.apache.wayang.core.plan.wayangplan.UnarySink;
+import org.apache.wayang.core.types.DataSetType;
+
+/**
+ * This {@link UnarySink} writes all incoming data quanta to a Object file.
+ *
+ * @param <T> type of the object to store
+ */
+public class ObjectFileSink<T> extends UnarySink<T> {
+
+  protected final String textFileUrl;
+
+  protected final Class<T> tClass;
+
+  /**
+   * Creates a new instance.
+   *
+   * @param targetPath  URL to file that should be written
+   * @param type        {@link DataSetType} of the incoming data quanta
+   */
+  public ObjectFileSink(String targetPath, DataSetType<T> type) {
+    super(type);
+    this.textFileUrl = targetPath;
+    this.tClass = type.getDataUnitType().getTypeClass();
+  }
+
+  /**
+   * Creates a new instance.
+   *
+   * @param textFileUrl        URL to file that should be written
+   * @param typeClass          {@link Class} of incoming data quanta
+   */
+  public ObjectFileSink(String textFileUrl, Class<T> typeClass) {
+    super(DataSetType.createDefault(typeClass));
+    this.textFileUrl = textFileUrl;
+    this.tClass = typeClass;
+  }
+
+  /**
+   * Creates a copied instance.
+   *
+   * @param that should be copied
+   */
+  public ObjectFileSink(ObjectFileSink<T> that) {
+    super(that);
+    this.textFileUrl = that.textFileUrl;
+    this.tClass = that.tClass;
+  }
+}
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ObjectFileSource.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ObjectFileSource.java
new file mode 100644
index 0000000..7ca3410
--- /dev/null
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ObjectFileSource.java
@@ -0,0 +1,197 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.basic.operators;
+
+import java.util.Optional;
+import java.util.OptionalDouble;
+import java.util.OptionalLong;
+import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
+import org.apache.wayang.core.plan.wayangplan.UnarySource;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.core.util.fs.FileSystems;
+
+/**
+ * This source reads a text file and outputs the lines as data units.
+ */
+public class ObjectFileSource<T> extends UnarySource<T> {
+
+    private final Logger logger = LogManager.getLogger(this.getClass());
+
+    private final String inputUrl;
+
+    private final Class<T> tClass;
+
+    public ObjectFileSource(String inputUrl, DataSetType<T> type) {
+        super(type);
+        this.inputUrl = inputUrl;
+        this.tClass = type.getDataUnitType().getTypeClass();
+    }
+
+    public ObjectFileSource(String inputUrl, Class<T> tClass) {
+        super(DataSetType.createDefault(tClass));
+        this.inputUrl = inputUrl;
+        this.tClass = tClass;
+    }
+
+    /**
+     * Copies an instance (exclusive of broadcasts).
+     *
+     * @param that that should be copied
+     */
+    public ObjectFileSource(ObjectFileSource that) {
+        super(that);
+        this.inputUrl = that.getInputUrl();
+        this.tClass = that.getTypeClass();
+    }
+
+    public String getInputUrl() {
+        return this.inputUrl;
+    }
+
+    public Class<T> getTypeClass(){
+        return this.tClass;
+    }
+
+    @Override
+    public Optional<org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator> createCardinalityEstimator(
+            final int outputIndex,
+            final Configuration configuration) {
+        Validate.inclusiveBetween(0, this.getNumOutputs() - 1, outputIndex);
+        return Optional.of(new ObjectFileSource.CardinalityEstimator());
+    }
+
+
+    /**
+     * Custom {@link org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator} for {@link FlatMapOperator}s.
+     */
+    protected class CardinalityEstimator implements org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator {
+
+        public final CardinalityEstimate FALLBACK_ESTIMATE = new CardinalityEstimate(1000L, 100000000L, 0.7);
+
+        public static final double CORRECTNESS_PROBABILITY = 0.95d;
+
+        /**
+         * We expect selectivities to be correct within a factor of {@value #EXPECTED_ESTIMATE_DEVIATION}.
+         */
+        public static final double EXPECTED_ESTIMATE_DEVIATION = 0.05;
+
+        @Override
+        public CardinalityEstimate estimate(OptimizationContext optimizationContext, CardinalityEstimate... inputEstimates) {
+            //TODO validate if the implementation apply for the case
+            Validate.isTrue(ObjectFileSource.this.getNumInputs() == inputEstimates.length);
+
+            // see Job for StopWatch measurements
+            final TimeMeasurement timeMeasurement = optimizationContext.getJob().getStopWatch().start(
+                    "Optimization", "Cardinality&Load Estimation", "Push Estimation", "Estimate source cardinalities"
+            );
+
+            // Query the job cache first to see if there is already an estimate.
+            String jobCacheKey = String.format("%s.estimate(%s)", this.getClass().getCanonicalName(), ObjectFileSource.this.inputUrl);
+            CardinalityEstimate cardinalityEstimate = optimizationContext.queryJobCache(jobCacheKey, CardinalityEstimate.class);
+            if (cardinalityEstimate != null) return  cardinalityEstimate;
+
+            // Otherwise calculate the cardinality.
+            // First, inspect the size of the file and its line sizes.
+            OptionalLong fileSize = FileSystems.getFileSize(ObjectFileSource.this.inputUrl);
+            if (!fileSize.isPresent()) {
+                ObjectFileSource.this.logger.warn("Could not determine size of {}... deliver fallback estimate.",
+                        ObjectFileSource.this.inputUrl);
+                timeMeasurement.stop();
+                return this.FALLBACK_ESTIMATE;
+
+            } else if (fileSize.getAsLong() == 0L) {
+                timeMeasurement.stop();
+                return new CardinalityEstimate(0L, 0L, 1d);
+            }
+
+            OptionalDouble bytesPerLine = this.estimateBytesPerLine();
+            if (!bytesPerLine.isPresent()) {
+                ObjectFileSource.this.logger.warn("Could not determine average line size of {}... deliver fallback estimate.",
+                        ObjectFileSource.this.inputUrl);
+                timeMeasurement.stop();
+                return this.FALLBACK_ESTIMATE;
+            }
+
+            // Extrapolate a cardinality estimate for the complete file.
+            double numEstimatedLines = fileSize.getAsLong() / bytesPerLine.getAsDouble();
+            double expectedDeviation = numEstimatedLines * EXPECTED_ESTIMATE_DEVIATION;
+            cardinalityEstimate = new CardinalityEstimate(
+                    (long) (numEstimatedLines - expectedDeviation),
+                    (long) (numEstimatedLines + expectedDeviation),
+                    CORRECTNESS_PROBABILITY
+            );
+
+            // Cache the result, so that it will not be recalculated again.
+            optimizationContext.putIntoJobCache(jobCacheKey, cardinalityEstimate);
+
+            timeMeasurement.stop();
+            return cardinalityEstimate;
+        }
+
+        /**
+         * Estimate the number of bytes that are in each line of a given file.
+         *
+         * @return the average number of bytes per line if it could be determined
+         */
+        private OptionalDouble estimateBytesPerLine() {
+            //TODO validate if the implementation apply for the case
+//            final Optional<FileSystem> fileSystem = FileSystems.getFileSystem(ObjectFileSource.this.inputUrl);
+//            if (fileSystem.isPresent()) {
+//
+//                // Construct a limited reader for the first x KiB of the file.
+//                final int KiB = 1024;
+//                final int MiB = 1024 * KiB;
+//                try (LimitedInputStream lis = new LimitedInputStream(fileSystem.get().open(
+//                    ObjectFileSource.this.inputUrl), 1 * MiB)) {
+//                    final BufferedReader bufferedReader = new BufferedReader(
+//                            new InputStreamReader(lis, ObjectFileSource.this.encoding)
+//                    );
+//
+//                    // Read as much as possible.
+//                    char[] cbuf = new char[1024];
+//                    int numReadChars, numLineFeeds = 0;
+//                    while ((numReadChars = bufferedReader.read(cbuf)) != -1) {
+//                        for (int i = 0; i < numReadChars; i++) {
+//                            if (cbuf[i] == '\n') {
+//                                numLineFeeds++;
+//                            }
+//                        }
+//                    }
+//
+//                    if (numLineFeeds == 0) {
+//                        ObjectFileSource.this.logger.warn("Could not find any newline character in {}.", ObjectFileSource.this.inputUrl);
+//                        return OptionalDouble.empty();
+//                    }
+//                    return OptionalDouble.of((double) lis.getNumReadBytes() / numLineFeeds);
+//                } catch (IOException e) {
+//                    ObjectFileSource.this.logger.error("Could not estimate bytes per line of an input file.", e);
+//                }
+//            }
+
+            return OptionalDouble.empty();
+        }
+    }
+
+}
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/PageRankOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/PageRankOperator.java
index 49a9cc6..1358879 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/PageRankOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/PageRankOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
@@ -28,8 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * {@link Operator} for the PageRank algorithm. It takes as input a list of directed edges, whereby each edge
  * is represented as {@code (source vertex ID, target vertex ID)} tuple. Its output are the page ranks, codified
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceByOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceByOperator.java
index dd078d0..627bf0e 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceByOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceByOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -28,8 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * This operator groups the elements of a data set and aggregates the groups.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceOperator.java
index 8d93f0b..153df73 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.core.function.ReduceDescriptor;
@@ -26,8 +27,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * This operator is context dependent: after a {@link GroupByOperator}, it is meant to be a {@link ReduceByOperator};
  * otherwise, it is a {@link GlobalReduceOperator}.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/RepeatOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/RepeatOperator.java
index a2c97b7..3919c5c 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/RepeatOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/RepeatOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.optimizer.cardinality.SwitchForwardCardinalityEstimator;
@@ -29,11 +33,6 @@
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Optional;
-
 /**
  * This {@link Operator} repeats a certain subplan of {@link Operator}s for a given number of times.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SampleOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SampleOperator.java
index 50db0d7..5d0c773 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SampleOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SampleOperator.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
+import java.util.function.IntUnaryOperator;
+import java.util.function.LongUnaryOperator;
 import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.optimizer.cardinality.FixedSizeCardinalityEstimator;
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Optional;
-import java.util.function.IntUnaryOperator;
-import java.util.function.LongUnaryOperator;
 
 /**
  * A random sample operator randomly selects its inputs from the input slot and pushes that element to the output slot.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SortOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SortOperator.java
index 3436b98..49a7273 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SortOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SortOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -27,8 +28,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This operator sorts the elements in this dataset.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/TextFileSink.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/TextFileSink.java
index 970a11f..35f8d99 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/TextFileSink.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/TextFileSink.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Objects;
 import org.apache.wayang.core.function.TransformationDescriptor;
 import org.apache.wayang.core.optimizer.costs.DefaultLoadEstimator;
 import org.apache.wayang.core.optimizer.costs.NestableLoadProfileEstimator;
 import org.apache.wayang.core.plan.wayangplan.UnarySink;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Objects;
-
 /**
  * This {@link UnarySink} writes all incoming data quanta to a text file.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/TextFileSource.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/TextFileSource.java
index 67ddf49..76474b1 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/TextFileSource.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/TextFileSource.java
@@ -19,7 +19,15 @@
 package org.apache.wayang.basic.operators;
 
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Optional;
+import java.util.OptionalDouble;
+import java.util.OptionalLong;
 import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -29,15 +37,6 @@
 import org.apache.wayang.core.util.LimitedInputStream;
 import org.apache.wayang.core.util.fs.FileSystem;
 import org.apache.wayang.core.util.fs.FileSystems;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Optional;
-import java.util.OptionalDouble;
-import java.util.OptionalLong;
 
 /**
  * This source reads a text file and outputs the lines as data units.
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/UnionAllOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/UnionAllOperator.java
index 449ee9e..5f4a075 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/UnionAllOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/UnionAllOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
@@ -27,8 +28,6 @@
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 
 /**
  * This {@link Operator} creates the union (bag semantics) of two .
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ZipWithIdOperator.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ZipWithIdOperator.java
index 001b010..eba1ec2 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ZipWithIdOperator.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ZipWithIdOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.basic.operators;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.api.Configuration;
@@ -26,8 +27,6 @@
 import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Optional;
-
 /**
  * This operators attaches a unique ID to each input data quantum.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/plugin/WayangBasic.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/plugin/WayangBasic.java
index e580af7..5a9321d 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/plugin/WayangBasic.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/plugin/WayangBasic.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.basic.plugin;
 
+import java.io.File;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.mapping.Mappings;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
@@ -27,10 +30,6 @@
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.core.util.fs.LocalFileSystem;
 
-import java.io.File;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Activator for the basic Wayang package.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/plugin/WayangBasicGraph.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/plugin/WayangBasicGraph.java
index 87c7045..5b867de 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/plugin/WayangBasicGraph.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/plugin/WayangBasicGraph.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.basic.plugin;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.mapping.Mappings;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
@@ -25,9 +27,6 @@
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.plugin.Plugin;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Activator for graph operations being executed with Wayang's basic operators.
  */
diff --git a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/types/RecordType.java b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/types/RecordType.java
index 7988e99..09e79e2 100644
--- a/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/types/RecordType.java
+++ b/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/types/RecordType.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.basic.types;
 
-import org.apache.wayang.basic.data.Record;
-import org.apache.wayang.core.types.BasicDataUnitType;
-
 import java.util.Arrays;
 import java.util.Objects;
+import org.apache.wayang.basic.data.Record;
+import org.apache.wayang.core.types.BasicDataUnitType;
 
 /**
  * This is a specific {@link BasicDataUnitType} for {@link Record}s. In particular, it adds schema information.
diff --git a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/function/ProjectionDescriptorTest.java b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/function/ProjectionDescriptorTest.java
index 4532264..80862ac 100644
--- a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/function/ProjectionDescriptorTest.java
+++ b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/function/ProjectionDescriptorTest.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.basic.function;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.function.Function;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.types.RecordType;
-
-import java.util.function.Function;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Tests for the {@link ProjectionDescriptor}.
diff --git a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/mapping/ReduceByMappingTest.java b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/mapping/ReduceByMappingTest.java
index 20d5a63..7b0b0a4 100644
--- a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/mapping/ReduceByMappingTest.java
+++ b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/mapping/ReduceByMappingTest.java
@@ -18,8 +18,6 @@
 
 package org.apache.wayang.basic.mapping;
 
-import org.junit.Assert;
-import org.junit.Test;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.function.ProjectionDescriptor;
 import org.apache.wayang.basic.operators.GroupByOperator;
@@ -31,11 +29,13 @@
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.PlanTransformation;
 import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.UnarySink;
 import org.apache.wayang.core.plan.wayangplan.UnarySource;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link ReduceByMapping}.
diff --git a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/operators/MaterializedGroupByOperatorTest.java b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/operators/MaterializedGroupByOperatorTest.java
index d5f21a7..2410a61 100644
--- a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/operators/MaterializedGroupByOperatorTest.java
+++ b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/operators/MaterializedGroupByOperatorTest.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.basic.operators;
 
-import org.junit.Test;
+import java.util.stream.StreamSupport;
 import org.apache.wayang.core.function.TransformationDescriptor;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
-
-import java.util.stream.StreamSupport;
+import org.junit.Test;
 
 /**
  * Tests for the {@link MaterializedGroupByOperator}.
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 909169c..a12f832 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
@@ -19,19 +19,8 @@
 package org.apache.wayang.basic.operators;
 
 
-import org.apache.wayang.commons.util.profiledb.instrumentation.StopWatch;
-import org.apache.wayang.commons.util.profiledb.model.Experiment;
-import org.apache.wayang.commons.util.profiledb.model.Subject;
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.Job;
-import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -41,9 +30,18 @@
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Optional;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.commons.util.profiledb.instrumentation.StopWatch;
+import org.apache.wayang.commons.util.profiledb.model.Experiment;
+import org.apache.wayang.commons.util.profiledb.model.Subject;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.Job;
+import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link TextFileSource}.
diff --git a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/types/RecordTypeTest.java b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/types/RecordTypeTest.java
index 9d8b472..d7de74c 100644
--- a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/types/RecordTypeTest.java
+++ b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/types/RecordTypeTest.java
@@ -18,10 +18,10 @@
 
 package org.apache.wayang.basic.types;
 
-import org.junit.Assert;
-import org.junit.Test;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.core.types.DataSetType;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Tests for the {@link RecordType}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Configuration.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Configuration.java
index 966ecc5..9c264a6 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Configuration.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Configuration.java
@@ -18,8 +18,27 @@
 
 package org.apache.wayang.core.api;
 
+import static org.apache.wayang.core.util.ReflectionUtils.instantiateDefault;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Optional;
+import java.util.OptionalDouble;
+import java.util.OptionalLong;
+import java.util.Properties;
+import java.util.Random;
+import java.util.function.ToDoubleFunction;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.configuration.CollectionProvider;
 import org.apache.wayang.core.api.configuration.ConstantValueProvider;
 import org.apache.wayang.core.api.configuration.ExplicitCollectionProvider;
@@ -58,26 +77,6 @@
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.core.util.fs.FileSystem;
 import org.apache.wayang.core.util.fs.FileSystems;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Optional;
-import java.util.OptionalDouble;
-import java.util.OptionalLong;
-import java.util.Properties;
-import java.util.Random;
-import java.util.function.ToDoubleFunction;
-
-import static org.apache.wayang.core.util.ReflectionUtils.instantiateDefault;
 
 /**
  * Describes both the configuration of a {@link WayangContext} and {@link Job}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Job.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Job.java
index 97454b3..cbfa05f 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Job.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Job.java
@@ -18,6 +18,19 @@
 
 package org.apache.wayang.core.api;
 
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.commons.util.profiledb.instrumentation.StopWatch;
 import org.apache.wayang.commons.util.profiledb.model.Experiment;
 import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
@@ -67,20 +80,6 @@
 import org.apache.wayang.core.util.OneTimeExecutable;
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.core.util.WayangCollections;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Queue;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.stream.Collectors;
 
 /**
  * Describes a job that is to be executed using Wayang.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/WayangContext.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/WayangContext.java
index f40f536..9c3150a 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/WayangContext.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/WayangContext.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.core.api;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.commons.util.profiledb.model.Experiment;
 import org.apache.wayang.commons.util.profiledb.model.Subject;
 import org.apache.wayang.core.monitor.Monitor;
@@ -27,8 +29,6 @@
 import org.apache.wayang.core.plugin.Plugin;
 import org.apache.wayang.core.profiling.CardinalityRepository;
 import org.apache.wayang.core.util.ReflectionUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
 
 /**
  * This is the entry point for users to work with Wayang.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/CollectionProvider.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/CollectionProvider.java
index e9e9b73..3a55bd4 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/CollectionProvider.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/CollectionProvider.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.api.configuration;
 
+import java.util.Collection;
+import java.util.Iterator;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 
-import java.util.Collection;
-import java.util.Iterator;
-
 /**
  * Provides a {@link Collection} of objects.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/ExplicitCollectionProvider.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/ExplicitCollectionProvider.java
index 28850a7..c67ab63 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/ExplicitCollectionProvider.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/ExplicitCollectionProvider.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.api.configuration;
 
-import org.apache.wayang.core.api.Configuration;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Set;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * {@link CollectionProvider} implementation based on a blacklist and a whitelist.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalCollectionProvider.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalCollectionProvider.java
index d18211a..821eeb7 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalCollectionProvider.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalCollectionProvider.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.api.configuration;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.function.Function;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * {@link CollectionProvider} implementation based on a blacklist and a whitelist.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalKeyValueProvider.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalKeyValueProvider.java
index a567ab6..555c23a 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalKeyValueProvider.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalKeyValueProvider.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.core.api.configuration;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.util.function.BiFunction;
 import java.util.function.Function;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * Implementation of {@link KeyValueProvider} that uses a {@link Function} to provide a value.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalValueProvider.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalValueProvider.java
index d861290..93e0be3 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalValueProvider.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/FunctionalValueProvider.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.core.api.configuration;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.util.function.Function;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * Used by {@link Configuration}s to provide some value.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/KeyValueProvider.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/KeyValueProvider.java
index 512d14c..b19d73a 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/KeyValueProvider.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/KeyValueProvider.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.api.configuration;
 
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.exception.WayangException;
+import java.util.Optional;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-
-import java.util.Optional;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.exception.WayangException;
 
 /**
  * Used by {@link Configuration}s to provide some value.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/MapBasedKeyValueProvider.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/MapBasedKeyValueProvider.java
index 96881d9..0160d98 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/MapBasedKeyValueProvider.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/MapBasedKeyValueProvider.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.api.configuration;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.api.Configuration;
-
 import java.util.HashMap;
 import java.util.Map;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * Implementation of {@link KeyValueProvider} that uses a {@link Map} to provide a value.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/ValueProvider.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/ValueProvider.java
index 3b8a905..5346816 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/ValueProvider.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/configuration/ValueProvider.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.api.configuration;
 
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.exception.WayangException;
+import java.util.Optional;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-
-import java.util.Optional;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.exception.WayangException;
 
 /**
  * Used by {@link Configuration}s to provide some value.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/AggregationDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/AggregationDescriptor.java
index b1a6c4a..6f19937 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/AggregationDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/AggregationDescriptor.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.core.function;
 
+import java.util.Iterator;
 import org.apache.wayang.core.optimizer.costs.LoadEstimator;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.optimizer.costs.NestableLoadProfileEstimator;
@@ -25,8 +26,6 @@
 import org.apache.wayang.core.types.DataUnitGroupType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Iterator;
-
 /**
  * This descriptor pertains to functions that take multiple data units and aggregate them into a single data unit.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ConsumerDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ConsumerDescriptor.java
index 83221bd..b3507bc 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ConsumerDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ConsumerDescriptor.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.function;
 
+import java.util.Optional;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.types.BasicDataUnitType;
 
-import java.util.Optional;
-
 /**
  * Created by bertty on 13-07-17.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ExecutionContext.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ExecutionContext.java
index a870ef0..ebfffdc 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ExecutionContext.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ExecutionContext.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.function;
 
+import java.util.Collection;
 import org.apache.wayang.core.plan.wayangplan.LoopSubplan;
 import org.apache.wayang.core.platform.Platform;
 
-import java.util.Collection;
-
 /**
  * While a function is executed on a certain {@link Platform}, allows access to some information of the context in
  * which the function is being executed.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/FlatMapDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/FlatMapDescriptor.java
index 948af92..2b1f991 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/FlatMapDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/FlatMapDescriptor.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.function;
 
+import java.util.Optional;
+import java.util.function.Function;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.types.BasicDataUnitType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Optional;
-import java.util.function.Function;
-
 /**
  * This descriptor pertains to functions that consume a single data unit and output a group of data units.
  *
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/FunctionDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/FunctionDescriptor.java
index 18d13e0..dfd2d9b 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/FunctionDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/FunctionDescriptor.java
@@ -18,11 +18,6 @@
 
 package org.apache.wayang.core.function;
 
-import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
-import org.apache.wayang.core.optimizer.costs.LoadEstimator;
-import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
-import org.apache.wayang.core.optimizer.costs.NestableLoadProfileEstimator;
-
 import java.io.Serializable;
 import java.util.Optional;
 import java.util.function.BiFunction;
@@ -30,6 +25,10 @@
 import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.function.Predicate;
+import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
+import org.apache.wayang.core.optimizer.costs.LoadEstimator;
+import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
+import org.apache.wayang.core.optimizer.costs.NestableLoadProfileEstimator;
 
 /**
  * A function operates on single data units or collections of those.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/MapPartitionsDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/MapPartitionsDescriptor.java
index d93833c..08f230c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/MapPartitionsDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/MapPartitionsDescriptor.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.function;
 
+import java.util.Optional;
+import java.util.function.Function;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.types.BasicDataUnitType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Optional;
-import java.util.function.Function;
-
 /**
  * This descriptor pertains to functions that consume and output multiple data quanta.
  *
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/PredicateDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/PredicateDescriptor.java
index 6b90e27..01b5eef 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/PredicateDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/PredicateDescriptor.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.function;
 
+import java.util.Optional;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.types.BasicDataUnitType;
 
-import java.util.Optional;
-
 /**
  * This descriptor pertains to predicates that consume a single data unit.
  *
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ReduceDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ReduceDescriptor.java
index 0bd3853..fbc090c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ReduceDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/ReduceDescriptor.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.core.function;
 
+import java.util.function.BinaryOperator;
 import org.apache.wayang.core.optimizer.costs.LoadEstimator;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.optimizer.costs.NestableLoadProfileEstimator;
@@ -25,8 +26,6 @@
 import org.apache.wayang.core.types.DataUnitGroupType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.function.BinaryOperator;
-
 /**
  * This descriptor pertains to functions that take multiple data units and aggregate them into a single data unit
  * by means of a tree-like fold, i.e., using a commutative, associative function..
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/TransformationDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/TransformationDescriptor.java
index 3de70e7..34c7b6a 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/TransformationDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/TransformationDescriptor.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.function;
 
+import java.util.function.Function;
 import org.apache.wayang.core.optimizer.costs.LoadEstimator;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.optimizer.costs.NestableLoadProfileEstimator;
 import org.apache.wayang.core.types.BasicDataUnitType;
 
-import java.util.function.Function;
-
 /**
  * This descriptor pertains to functions that consume a single data unit and output a single data unit.
  *
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/OperatorPattern.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/OperatorPattern.java
index 03de5b2..f876dfa 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/OperatorPattern.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/OperatorPattern.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.core.mapping;
 
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.function.Predicate;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.plan.wayangplan.OperatorBase;
@@ -26,10 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.TopDownPlanVisitor;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.function.Predicate;
-
 /**
  * An operator pattern matches to a class of operator instances.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/PlanTransformation.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/PlanTransformation.java
index 090a05b..39e0720 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/PlanTransformation.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/PlanTransformation.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.core.mapping;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
@@ -25,13 +31,6 @@
 import org.apache.wayang.core.plan.wayangplan.PlanTraversal;
 import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.platform.Platform;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
 
 /**
  * Looks for a {@link SubplanPattern} in a {@link WayangPlan} and replaces it with an alternative {@link Operator}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/ReplacementSubplanFactory.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/ReplacementSubplanFactory.java
index 9315f65..b9c2f30 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/ReplacementSubplanFactory.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/ReplacementSubplanFactory.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.core.mapping;
 
+import java.util.Map;
+import java.util.function.BiFunction;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.plan.wayangplan.ActualOperator;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
@@ -27,9 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.plan.wayangplan.Subplan;
 
-import java.util.Map;
-import java.util.function.BiFunction;
-
 /**
  * This factory takes an {@link SubplanMatch} and derives a replacement {@link Subplan} from it.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/SubplanMatch.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/SubplanMatch.java
index 5f100b3..7bfc084 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/SubplanMatch.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/SubplanMatch.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.mapping;
 
-import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.platform.Platform;
-
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import org.apache.wayang.core.plan.wayangplan.Operator;
+import org.apache.wayang.core.platform.Platform;
 
 /**
  * A subplan match correlates a {@link SubplanPattern} with its actually matched .
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/SubplanPattern.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/SubplanPattern.java
index a53065d..b6eadda 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/SubplanPattern.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/mapping/SubplanPattern.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.core.mapping;
 
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
@@ -25,15 +31,8 @@
 import org.apache.wayang.core.plan.wayangplan.OperatorBase;
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.plan.wayangplan.PlanTraversal;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.TopDownPlanVisitor;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 
 /**
  * A subplan pattern describes a class of subplans in a {@link WayangPlan}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/DisabledMonitor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/DisabledMonitor.java
index ebb598b..45077d9 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/DisabledMonitor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/DisabledMonitor.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.monitor;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.wayang.core.api.Configuration;
 
 
 public class DisabledMonitor extends Monitor {
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/FileMonitor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/FileMonitor.java
index aee3af3..e264fd9 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/FileMonitor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/FileMonitor.java
@@ -19,16 +19,15 @@
 package org.apache.wayang.core.monitor;
 
 
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.util.fs.FileSystem;
-import org.apache.wayang.core.util.fs.FileSystems;
-
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.UncheckedIOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.util.fs.FileSystem;
+import org.apache.wayang.core.util.fs.FileSystems;
 import org.apache.wayang.core.util.json.JSONObject;
 
 public class FileMonitor extends Monitor {
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/HttpMonitor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/HttpMonitor.java
index dda6335..86b234c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/HttpMonitor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/HttpMonitor.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.monitor;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * TODO: Implement
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/Monitor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/Monitor.java
index 2d5e7c9..a4e8f83 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/Monitor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/Monitor.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.monitor;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.wayang.core.api.Configuration;
 
 public abstract class Monitor {
 
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/ZeroMQMonitor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/ZeroMQMonitor.java
index c031032..881560e 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/ZeroMQMonitor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/ZeroMQMonitor.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.monitor;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * TODO: Implement
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/AggregateOptimizationContext.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/AggregateOptimizationContext.java
index 964d94a..2592632 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/AggregateOptimizationContext.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/AggregateOptimizationContext.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.optimizer;
 
-import org.apache.wayang.core.plan.wayangplan.LoopSubplan;
-import org.apache.wayang.core.plan.wayangplan.Operator;
-
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+import org.apache.wayang.core.plan.wayangplan.LoopSubplan;
+import org.apache.wayang.core.plan.wayangplan.Operator;
 
 /**
  * This {@link OptimizationContext} implementation aggregates several {@link OptimizationContext}s and exposes
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/DefaultOptimizationContext.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/DefaultOptimizationContext.java
index 187979d..f7dc525 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/DefaultOptimizationContext.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/DefaultOptimizationContext.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.core.optimizer;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.channels.ChannelConversionGraph;
 import org.apache.wayang.core.optimizer.enumeration.PlanEnumerationPruningStrategy;
@@ -25,16 +30,10 @@
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
 import org.apache.wayang.core.plan.wayangplan.PlanTraversal;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.Subplan;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.util.WayangArrays;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
 /**
  * This implementation of {@link OptimizationContext} represents a direct mapping from {@link OptimizationContext.OperatorContext}
  * to executions of the respective {@link Operator}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/OptimizationContext.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/OptimizationContext.java
index 19e7b01..bf10011 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/OptimizationContext.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/OptimizationContext.java
@@ -18,6 +18,17 @@
 
 package org.apache.wayang.core.optimizer;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.ToDoubleFunction;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.api.exception.WayangException;
@@ -40,23 +51,11 @@
 import org.apache.wayang.core.plan.wayangplan.OperatorContainer;
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.plan.wayangplan.PlanTraversal;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.Slot;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
 import org.apache.wayang.core.util.ReflectionUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.ToDoubleFunction;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Manages contextual information required during the optimization of a {@link WayangPlan}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/OptimizationUtils.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/OptimizationUtils.java
index 3f71b5d..56f523b 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/OptimizationUtils.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/OptimizationUtils.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.core.optimizer;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.enumeration.PlanEnumerationPruningStrategy;
@@ -26,14 +30,9 @@
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.Slot;
 import org.apache.wayang.core.plan.wayangplan.SlotMapping;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 
 /**
  * Utility methods for the optimization process.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/ProbabilisticIntervalEstimate.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/ProbabilisticIntervalEstimate.java
index 5e8a112..39027c6 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/ProbabilisticIntervalEstimate.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/ProbabilisticIntervalEstimate.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.core.optimizer;
 
-import org.apache.wayang.core.util.Formats;
-
 import java.util.Comparator;
 import java.util.Objects;
+import org.apache.wayang.core.util.Formats;
 
 /***
  * An estimate that is capable of expressing uncertainty.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/SanityChecker.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/SanityChecker.java
index d4a5703..f3061b2 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/SanityChecker.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/SanityChecker.java
@@ -18,17 +18,16 @@
 
 package org.apache.wayang.core.optimizer;
 
+import java.util.Collection;
+import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
 import org.apache.wayang.core.plan.wayangplan.PlanTraversal;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.Subplan;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.util.WayangCollections;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Collection;
-import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * This class checks a {@link WayangPlan} for several sanity criteria:
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimator.java
index 7d404a1..1a7f438 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimator.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.optimizer.OptimizationContext;
 
 /**
  * {@link CardinalityEstimator} implementation that can have multiple ways of calculating a {@link CardinalityEstimate}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityEstimationTraversal.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityEstimationTraversal.java
index 7dc5ae9..4cb5f1c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityEstimationTraversal.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityEstimationTraversal.java
@@ -18,17 +18,6 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.plan.wayangplan.InputSlot;
-import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.OperatorContainer;
-import org.apache.wayang.core.plan.wayangplan.OutputSlot;
-import org.apache.wayang.core.plan.wayangplan.PlanTraversal;
-import org.apache.wayang.core.util.OneTimeExecutable;
-import org.apache.wayang.core.util.WayangCollections;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -41,6 +30,16 @@
 import java.util.Queue;
 import java.util.Set;
 import java.util.stream.Stream;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.plan.wayangplan.InputSlot;
+import org.apache.wayang.core.plan.wayangplan.Operator;
+import org.apache.wayang.core.plan.wayangplan.OperatorContainer;
+import org.apache.wayang.core.plan.wayangplan.OutputSlot;
+import org.apache.wayang.core.plan.wayangplan.PlanTraversal;
+import org.apache.wayang.core.util.OneTimeExecutable;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * {@link CardinalityEstimator} that subsumes a DAG of operators, each one providing a local {@link CardinalityEstimator}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityEstimatorManager.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityEstimatorManager.java
index 5c046cc..0c930e7 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityEstimatorManager.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityEstimatorManager.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
+import java.util.Collections;
+import java.util.Map;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.OptimizationUtils;
@@ -30,11 +34,8 @@
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.platform.ExecutionState;
 import org.apache.wayang.core.platform.Junction;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;;
 
-import java.util.Collections;
-import java.util.Map;
+;
 
 /**
  * Handles the {@link CardinalityEstimate}s of a {@link WayangPlan}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityPusher.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityPusher.java
index bb3bd58..13fb901 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityPusher.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/CardinalityPusher.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
+import java.util.Arrays;
+import java.util.Objects;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.costs.TimeEstimate;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.util.WayangArrays;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Arrays;
-import java.util.Objects;
 
 /**
  * Pushes a input {@link CardinalityEstimate}s through an {@link Operator} and yields its output
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/DefaultCardinalityEstimator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/DefaultCardinalityEstimator.java
index 7582261..d52c444 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/DefaultCardinalityEstimator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/DefaultCardinalityEstimator.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-
 import java.util.Arrays;
 import java.util.function.ToLongBiFunction;
 import java.util.function.ToLongFunction;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
 
 /**
  * Default implementation of the {@link CardinalityEstimator}. Generalizes a single-point estimation function.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/LoopHeadAlternativeCardinalityPusher.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/LoopHeadAlternativeCardinalityPusher.java
index 67a1b7a..627936e 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/LoopHeadAlternativeCardinalityPusher.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/LoopHeadAlternativeCardinalityPusher.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
+import java.util.Collection;
+import java.util.function.BiFunction;
+import java.util.stream.Collectors;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
@@ -28,10 +31,6 @@
 import org.apache.wayang.core.plan.wayangplan.Slot;
 import org.apache.wayang.core.util.Tuple;
 
-import java.util.Collection;
-import java.util.function.BiFunction;
-import java.util.stream.Collectors;
-
 /**
  * {@link CardinalityPusher} implementation for {@link LoopHeadAlternative}s.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/LoopSubplanCardinalityPusher.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/LoopSubplanCardinalityPusher.java
index 4834bc2..32ddec7 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/LoopSubplanCardinalityPusher.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/LoopSubplanCardinalityPusher.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
@@ -26,12 +31,6 @@
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
-
 /**
  * {@link CardinalityPusher} implementation for {@link LoopSubplan}s.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/OperatorAlternativeCardinalityPusher.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/OperatorAlternativeCardinalityPusher.java
index d5886fc..5beb60e 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/OperatorAlternativeCardinalityPusher.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/OperatorAlternativeCardinalityPusher.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
+import java.util.List;
+import java.util.stream.Collectors;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
 import org.apache.wayang.core.util.Tuple;
 
-import java.util.List;
-import java.util.stream.Collectors;
-
 /**
  * {@link CardinalityPusher} implementation for {@link OperatorAlternative}s.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/SubplanCardinalityPusher.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/SubplanCardinalityPusher.java
index 50184bc..71683a2 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/SubplanCardinalityPusher.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/SubplanCardinalityPusher.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.CompositeOperator;
@@ -28,12 +33,6 @@
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.plan.wayangplan.Subplan;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-
 /**
  * {@link CardinalityPusher} implementation for {@link Subplan}s (but not for {@link LoopSubplan}s!)
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/SwitchForwardCardinalityEstimator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/SwitchForwardCardinalityEstimator.java
index 7f69fe5..bb50881 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/SwitchForwardCardinalityEstimator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/SwitchForwardCardinalityEstimator.java
@@ -18,9 +18,9 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
-import org.apache.logging.log4j.LogManager;
 
 /**
  * Forwards the {@link CardinalityEstimate} of any given {@link InputSlot} that is not {@code null}. Asserts that
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversion.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversion.java
index 95590a8..fffbce5 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversion.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversion.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.core.optimizer.channels;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
@@ -26,9 +28,6 @@
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Can convert a given {@link Channel} to another {@link Channel}.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraph.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraph.java
index 3e06c95..fcce46e 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraph.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraph.java
@@ -18,6 +18,22 @@
 
 package org.apache.wayang.core.optimizer.channels;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+import java.util.function.ToDoubleFunction;
+import java.util.stream.Collectors;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -37,25 +53,8 @@
 import org.apache.wayang.core.util.Bitmask;
 import org.apache.wayang.core.util.OneTimeExecutable;
 import org.apache.wayang.core.util.ReflectionUtils;
-import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-import java.util.function.ToDoubleFunction;
-import java.util.stream.Collectors;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * This graph contains a set of {@link ChannelConversion}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/DefaultChannelConversion.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/DefaultChannelConversion.java
index d4c97a8..7c38140 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/DefaultChannelConversion.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/DefaultChannelConversion.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.core.optimizer.channels;
 
+import java.util.Collection;
+import java.util.function.BiFunction;
+import java.util.function.Supplier;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
@@ -28,10 +31,6 @@
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 
-import java.util.Collection;
-import java.util.function.BiFunction;
-import java.util.function.Supplier;
-
 /**
  * Default implementation of the {@link ChannelConversion}. Can be used without further subclassing.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/DefaultLoadEstimator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/DefaultLoadEstimator.java
index 775129e..dc13005 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/DefaultLoadEstimator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/DefaultLoadEstimator.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-
 import java.util.Arrays;
 import java.util.function.ToDoubleBiFunction;
 import java.util.function.ToLongBiFunction;
 import java.util.stream.LongStream;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 
 /**
  * Implementation of {@link LoadEstimator} that uses a single-point cost function.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/EstimationContext.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/EstimationContext.java
index d1896fd..789b4d8 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/EstimationContext.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/EstimationContext.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.util.JsonSerializables;
 import org.apache.wayang.core.util.JsonSerializer;
-
-import java.util.Arrays;
-import java.util.Collection;
 import org.apache.wayang.core.util.json.JSONObject;
 
 /**
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/IntervalLoadEstimator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/IntervalLoadEstimator.java
index 2d7d697..9a5c395 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/IntervalLoadEstimator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/IntervalLoadEstimator.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-
 import java.util.Arrays;
 import java.util.function.ToDoubleBiFunction;
 import java.util.function.ToLongBiFunction;
 import java.util.stream.LongStream;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 
 /**
  * Implementation of {@link LoadEstimator} that uses a interval-based cost function.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadEstimator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadEstimator.java
index 0f07067..9fb40ba 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadEstimator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadEstimator.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
+import java.util.Arrays;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 
-import java.util.Arrays;
-
 /**
  * Describes the resource utilization of something executable within an {@link EstimationContext}, such as an
  * {@link ExecutionOperator} or a {@link FunctionDescriptor}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfile.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfile.java
index 94f5856..c0da95d 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfile.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfile.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
+import java.util.Collection;
+import java.util.LinkedList;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.util.JsonSerializable;
 import org.apache.wayang.core.util.JsonSerializables;
-
-import java.util.Collection;
-import java.util.LinkedList;
 import org.apache.wayang.core.util.json.JSONObject;
 
 /**
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfileEstimator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfileEstimator.java
index 1eb2dc3..7e933b2 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfileEstimator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfileEstimator.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.util.Collection;
 import java.util.LinkedList;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * Estimates the {@link LoadProfile} of some executable artifact that takes some input data quanta and produces them.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfileEstimators.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfileEstimators.java
index fcfe1fe..a0e5ca4 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfileEstimators.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/LoadProfileEstimators.java
@@ -18,6 +18,19 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.ToDoubleBiFunction;
+import java.util.function.ToDoubleFunction;
+import java.util.function.ToLongBiFunction;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -33,20 +46,6 @@
 import org.apache.wayang.core.util.mathex.Expression;
 import org.apache.wayang.core.util.mathex.ExpressionBuilder;
 import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.function.ToDoubleBiFunction;
-import java.util.function.ToDoubleFunction;
-import java.util.function.ToLongBiFunction;
-import java.util.stream.Collectors;
-import java.util.stream.StreamSupport;
 
 /**
  * Utilities to deal with {@link LoadProfileEstimator}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/NestableLoadProfileEstimator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/NestableLoadProfileEstimator.java
index 7bd64c2..58be3d1 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/NestableLoadProfileEstimator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/NestableLoadProfileEstimator.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
-
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.function.Function;
 import java.util.function.ToDoubleBiFunction;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 
 /**
  * {@link LoadProfileEstimator} that can host further {@link LoadProfileEstimator}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/SimpleEstimationContext.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/SimpleEstimationContext.java
index 5e3cac2..38b9851 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/SimpleEstimationContext.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/SimpleEstimationContext.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.optimizer.costs;
 
+import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.util.JsonSerializables;
 import org.apache.wayang.core.util.JsonSerializer;
-
-import java.util.Collection;
-import java.util.List;
 import org.apache.wayang.core.util.json.JSONObject;
 
 /**
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlow.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlow.java
index 6f6daea..06f22cd 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlow.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlow.java
@@ -18,16 +18,6 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
-import org.apache.wayang.core.plan.executionplan.Channel;
-import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
-import org.apache.wayang.core.plan.executionplan.ExecutionStage;
-import org.apache.wayang.core.plan.executionplan.ExecutionTask;
-import org.apache.wayang.core.plan.executionplan.PlatformExecution;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-import org.apache.wayang.core.plan.wayangplan.traversal.AbstractTopologicalTraversal;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -36,6 +26,15 @@
 import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.plan.executionplan.Channel;
+import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
+import org.apache.wayang.core.plan.executionplan.ExecutionStage;
+import org.apache.wayang.core.plan.executionplan.ExecutionTask;
+import org.apache.wayang.core.plan.executionplan.PlatformExecution;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
+import org.apache.wayang.core.plan.wayangplan.traversal.AbstractTopologicalTraversal;
 
 /**
  * Graph of {@link ExecutionTask}s and {@link Channel}s. Does not define {@link ExecutionStage}s and
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlowCompiler.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlowCompiler.java
index 972fb4e..098af4d 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlowCompiler.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlowCompiler.java
@@ -18,6 +18,17 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.core.optimizer.OptimizationUtils;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
@@ -33,18 +44,6 @@
 import org.apache.wayang.core.plan.wayangplan.traversal.AbstractTopologicalTraversal;
 import org.apache.wayang.core.platform.Junction;
 import org.apache.wayang.core.platform.Platform;
-import org.apache.logging.log4j.LogManager;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Creates an {@link ExecutionTaskFlow} from a {@link PlanImplementation}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LatentOperatorPruningStrategy.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LatentOperatorPruningStrategy.java
index a228f14..7aaee98 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LatentOperatorPruningStrategy.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LatentOperatorPruningStrategy.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.Slot;
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
  * This {@link PlanEnumerationPruningStrategy} follows the idea that we can prune a
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LoopEnumerator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LoopEnumerator.java
index f884364..1ac5c4e 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LoopEnumerator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LoopEnumerator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
 import org.apache.wayang.core.plan.wayangplan.LoopHeadOperator;
@@ -26,13 +32,6 @@
 import org.apache.wayang.core.platform.Junction;
 import org.apache.wayang.core.util.OneTimeExecutable;
 import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
 
 /**
  * Enumerator for {@link LoopSubplan}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LoopImplementation.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LoopImplementation.java
index 57416fa..0b577f0 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LoopImplementation.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/LoopImplementation.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Stream;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
 import org.apache.wayang.core.optimizer.costs.TimeEstimate;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -27,10 +30,6 @@
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.platform.Junction;
 
-import java.util.LinkedList;
-import java.util.List;
-import java.util.stream.Stream;
-
 /**
  * Describes the enumeration of a {@link LoopSubplan}.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumeration.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumeration.java
index e00753c..b441ebb 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumeration.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumeration.java
@@ -19,6 +19,19 @@
 package org.apache.wayang.core.optimizer.enumeration;
 
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -33,22 +46,8 @@
 import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.platform.Junction;
 import org.apache.wayang.core.util.MultiMap;
-import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * Represents a collection of {@link PlanImplementation}s that all implement the same section of a {@link WayangPlan} (which
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumerator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumerator.java
index 17ce28b..a490690 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumerator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumerator.java
@@ -18,30 +18,6 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
-import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.optimizer.OptimizationUtils;
-import org.apache.wayang.core.plan.executionplan.Channel;
-import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
-import org.apache.wayang.core.plan.executionplan.ExecutionTask;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-import org.apache.wayang.core.plan.wayangplan.InputSlot;
-import org.apache.wayang.core.plan.wayangplan.LoopHeadOperator;
-import org.apache.wayang.core.plan.wayangplan.LoopSubplan;
-import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
-import org.apache.wayang.core.plan.wayangplan.OperatorContainer;
-import org.apache.wayang.core.plan.wayangplan.Operators;
-import org.apache.wayang.core.plan.wayangplan.OutputSlot;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
-import org.apache.wayang.core.plan.wayangplan.Slot;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -59,6 +35,29 @@
 import java.util.function.ToDoubleFunction;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.optimizer.OptimizationUtils;
+import org.apache.wayang.core.plan.executionplan.Channel;
+import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
+import org.apache.wayang.core.plan.executionplan.ExecutionTask;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
+import org.apache.wayang.core.plan.wayangplan.InputSlot;
+import org.apache.wayang.core.plan.wayangplan.LoopHeadOperator;
+import org.apache.wayang.core.plan.wayangplan.LoopSubplan;
+import org.apache.wayang.core.plan.wayangplan.Operator;
+import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
+import org.apache.wayang.core.plan.wayangplan.OperatorContainer;
+import org.apache.wayang.core.plan.wayangplan.Operators;
+import org.apache.wayang.core.plan.wayangplan.OutputSlot;
+import org.apache.wayang.core.plan.wayangplan.Slot;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
+import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * The plan partitioner recursively dissects a {@link WayangPlan} into {@link PlanEnumeration}s and then assembles
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanImplementation.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanImplementation.java
index d8f49af..6cf32c1 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanImplementation.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanImplementation.java
@@ -18,31 +18,6 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
-import org.apache.wayang.core.optimizer.costs.TimeEstimate;
-import org.apache.wayang.core.optimizer.costs.TimeToCostConverter;
-import org.apache.wayang.core.plan.executionplan.Channel;
-import org.apache.wayang.core.plan.executionplan.ExecutionTask;
-import org.apache.wayang.core.plan.wayangplan.ElementaryOperator;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-import org.apache.wayang.core.plan.wayangplan.InputSlot;
-import org.apache.wayang.core.plan.wayangplan.LoopSubplan;
-import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
-import org.apache.wayang.core.plan.wayangplan.OutputSlot;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
-import org.apache.wayang.core.plan.wayangplan.Slot;
-import org.apache.wayang.core.platform.Junction;
-import org.apache.wayang.core.platform.Platform;
-import org.apache.wayang.core.util.Canonicalizer;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -58,6 +33,30 @@
 import java.util.function.ToDoubleFunction;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
+import org.apache.wayang.core.optimizer.costs.TimeEstimate;
+import org.apache.wayang.core.optimizer.costs.TimeToCostConverter;
+import org.apache.wayang.core.plan.executionplan.Channel;
+import org.apache.wayang.core.plan.executionplan.ExecutionTask;
+import org.apache.wayang.core.plan.wayangplan.ElementaryOperator;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
+import org.apache.wayang.core.plan.wayangplan.InputSlot;
+import org.apache.wayang.core.plan.wayangplan.LoopSubplan;
+import org.apache.wayang.core.plan.wayangplan.Operator;
+import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
+import org.apache.wayang.core.plan.wayangplan.OutputSlot;
+import org.apache.wayang.core.plan.wayangplan.Slot;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
+import org.apache.wayang.core.platform.Junction;
+import org.apache.wayang.core.platform.Platform;
+import org.apache.wayang.core.util.Canonicalizer;
+import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * Represents a partial execution plan.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/RandomPruningStrategy.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/RandomPruningStrategy.java
index c10eb32..21c7731 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/RandomPruningStrategy.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/RandomPruningStrategy.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Random;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * This {@link PlanEnumerationPruningStrategy} retains only the best {@code k} {@link PlanImplementation}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversal.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversal.java
index 2ff313c..70c0746 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversal.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversal.java
@@ -18,7 +18,20 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Queue;
+import java.util.Set;
+import java.util.stream.Collectors;
 import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
 import org.apache.wayang.core.plan.executionplan.ExecutionStage;
@@ -34,20 +47,6 @@
 import org.apache.wayang.core.util.Iterators;
 import org.apache.wayang.core.util.OneTimeExecutable;
 import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Queue;
-import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
  * Builds an {@link ExecutionPlan} from a {@link ExecutionTaskFlow}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/TopKPruningStrategy.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/TopKPruningStrategy.java
index a80f9d9..2447710 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/TopKPruningStrategy.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/TopKPruningStrategy.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
-import org.apache.wayang.core.api.Configuration;
-
 import java.util.ArrayList;
+import org.apache.wayang.core.api.Configuration;
 
 /**
  * This {@link PlanEnumerationPruningStrategy} retains only the best {@code k} {@link PlanImplementation}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/Channel.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/Channel.java
index f6e5804..a96b347 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/Channel.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/Channel.java
@@ -18,22 +18,6 @@
 
 package org.apache.wayang.core.plan.executionplan;
 
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-import org.apache.wayang.core.plan.wayangplan.InputSlot;
-import org.apache.wayang.core.plan.wayangplan.OutputSlot;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
-import org.apache.wayang.core.plan.wayangplan.Slot;
-import org.apache.wayang.core.platform.Breakpoint;
-import org.apache.wayang.core.platform.ChannelDescriptor;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.platform.Executor;
-import org.apache.wayang.core.platform.Platform;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -45,6 +29,21 @@
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
+import org.apache.wayang.core.plan.wayangplan.InputSlot;
+import org.apache.wayang.core.plan.wayangplan.OutputSlot;
+import org.apache.wayang.core.plan.wayangplan.Slot;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
+import org.apache.wayang.core.platform.Breakpoint;
+import org.apache.wayang.core.platform.ChannelDescriptor;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.platform.Executor;
+import org.apache.wayang.core.platform.Platform;
+import org.apache.wayang.core.types.DataSetType;
 
 /**
  * Models the data movement between to {@link ExecutionTask}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionPlan.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionPlan.java
index 352c413..2961f1f 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionPlan.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionPlan.java
@@ -18,12 +18,6 @@
 
 package org.apache.wayang.core.plan.executionplan;
 
-import org.apache.wayang.core.optimizer.enumeration.ExecutionTaskFlow;
-import org.apache.wayang.core.optimizer.enumeration.StageAssignmentTraversal;
-import org.apache.wayang.core.util.Counter;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -35,6 +29,11 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.optimizer.enumeration.ExecutionTaskFlow;
+import org.apache.wayang.core.optimizer.enumeration.StageAssignmentTraversal;
+import org.apache.wayang.core.util.Counter;
 
 /**
  * Represents an executable, cross-platform data flow. Consists of muliple {@link PlatformExecution}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionStage.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionStage.java
index ced3433..e6a1e8f 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionStage.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionStage.java
@@ -18,11 +18,6 @@
 
 package org.apache.wayang.core.plan.executionplan;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.plan.wayangplan.LoopHeadOperator;
-import org.apache.wayang.core.platform.Platform;
-import org.apache.wayang.core.util.WayangCollections;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -34,6 +29,10 @@
 import java.util.Queue;
 import java.util.Set;
 import java.util.stream.Collectors;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.plan.wayangplan.LoopHeadOperator;
+import org.apache.wayang.core.platform.Platform;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * Resides within a {@link PlatformExecution} and represents the minimum execution unit that is controlled by Wayang.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionStageLoop.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionStageLoop.java
index b2b6e94..f112738 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionStageLoop.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionStageLoop.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.plan.executionplan;
 
+import java.util.Collection;
+import java.util.HashSet;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.LoopHeadOperator;
 import org.apache.wayang.core.plan.wayangplan.LoopSubplan;
 
-import java.util.Collection;
-import java.util.HashSet;
-
 /**
  * This class models the execution equivalent of {@link LoopSubplan}s.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/PlatformExecution.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/PlatformExecution.java
index 877eba4..a338e18 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/PlatformExecution.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/PlatformExecution.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.plan.executionplan;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.platform.Platform;
-
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.platform.Platform;
 
 /**
  * Complete data flow on a single platform, that consists of multiple {@link ExecutionStage}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/ElementaryOperator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/ElementaryOperator.java
index b56f05a..3a4ae67 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/ElementaryOperator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/ElementaryOperator.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 
-import java.util.Optional;
-
 /**
  * Indivisible {@link Operator} that is not containing other {@link Operator}s.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/EstimationContextProperty.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/EstimationContextProperty.java
index c64ac69..73763b8 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/EstimationContextProperty.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/EstimationContextProperty.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.wayang.core.optimizer.costs.EstimationContext;
-
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
+import org.apache.wayang.core.optimizer.costs.EstimationContext;
 
 /**
  * Marks a property of an {@link Operator} that is relevant to the estimation process, i.e., should be provided
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/ExecutionOperator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/ExecutionOperator.java
index f95a946..ce3b055 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/ExecutionOperator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/ExecutionOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Optional;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
@@ -33,13 +39,6 @@
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
 import org.apache.wayang.core.platform.lineage.LazyExecutionLineageNode;
 import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Optional;
 
 /**
  * An execution operator is handled by a certain platform.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/InputSlot.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/InputSlot.java
index 6713f48..e846e3e 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/InputSlot.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/InputSlot.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.wayang.core.types.DataSetType;
-
 import java.util.List;
+import org.apache.wayang.core.types.DataSetType;
 
 /**
  * An input slot declares an input of an {@link Operator}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopHeadAlternative.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopHeadAlternative.java
index 70d9854..cd1adfb 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopHeadAlternative.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopHeadAlternative.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
+import java.util.Collection;
+import java.util.Objects;
+import java.util.stream.Collectors;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
 import org.apache.wayang.core.optimizer.cardinality.LoopHeadAlternativeCardinalityPusher;
 import org.apache.wayang.core.util.WayangCollections;
 
-import java.util.Collection;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
 /**
  * Special {@link OperatorAlternative} for {@link LoopHeadOperator}s.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopHeadOperator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopHeadOperator.java
index 5db5c24..63d0bc6 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopHeadOperator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopHeadOperator.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
+import java.util.Collection;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
 import org.apache.wayang.core.optimizer.cardinality.DefaultCardinalityPusher;
 
-import java.util.Collection;
-
 /**
  * Head of a {@link LoopSubplan}.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopIsolator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopIsolator.java
index e497c08..d8dcf7f 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopIsolator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopIsolator.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.util.OneTimeExecutable;
-import org.apache.logging.log4j.LogManager;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.wayang.core.util.OneTimeExecutable;
 
 /**
  * Goes over a {@link WayangPlan} and isolates its loops.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopSubplan.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopSubplan.java
index 079d071..a86790c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopSubplan.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopSubplan.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
 import org.apache.wayang.core.optimizer.cardinality.LoopSubplanCardinalityPusher;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Wraps a loop of {@link Operator}s.
  *
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Operator.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Operator.java
index 5095342..de856eb 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Operator.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Operator.java
@@ -18,14 +18,6 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
-import org.apache.wayang.core.optimizer.cardinality.DefaultCardinalityPusher;
-import org.apache.wayang.core.platform.Platform;
-
 import java.lang.reflect.Field;
 import java.util.Arrays;
 import java.util.Collection;
@@ -36,6 +28,13 @@
 import java.util.Queue;
 import java.util.Set;
 import java.util.stream.Collectors;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
+import org.apache.wayang.core.optimizer.cardinality.DefaultCardinalityPusher;
+import org.apache.wayang.core.platform.Platform;
 
 /**
  * An operator is any node that within a {@link WayangPlan}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorAlternative.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorAlternative.java
index babad5d..aff41f8 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorAlternative.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorAlternative.java
@@ -18,12 +18,6 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
-import org.apache.wayang.core.optimizer.cardinality.OperatorAlternativeCardinalityPusher;
-import org.apache.wayang.core.util.WayangCollections;
-
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedList;
@@ -31,6 +25,11 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
+import org.apache.wayang.core.optimizer.cardinality.OperatorAlternativeCardinalityPusher;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * This operator encapsulates operators that are alternative to each other.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorBase.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorBase.java
index e351b49..e3d662c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorBase.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorBase.java
@@ -26,6 +26,13 @@
 import com.google.gson.JsonParseException;
 import com.google.gson.JsonSerializationContext;
 import com.google.gson.JsonSerializer;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Supplier;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.function.FlatMapDescriptor;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -39,14 +46,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.util.Tuple;
 
-import java.lang.reflect.Type;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.function.Supplier;
-
 /**
  * Helper class for the implementation of the {@link Operator} interface.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorContainer.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorContainer.java
index 38e86dd..d9d6087 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorContainer.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorContainer.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.logging.log4j.LogManager;
-
 import java.util.Collection;
 import java.util.Collections;
 import java.util.stream.Collectors;
+import org.apache.logging.log4j.LogManager;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * This is not an {@link Operator} in its own right. However, it contains a set of operators and can redirect
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorContainers.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorContainers.java
index becd0a3..4e0d0c4 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorContainers.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OperatorContainers.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.commons.lang3.Validate;
-
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Stream;
+import org.apache.commons.lang3.Validate;
 
 /**
  * Utilities to deal with {@link OperatorContainer}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OutputSlot.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OutputSlot.java
index b9a0b91..c9f3762 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OutputSlot.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/OutputSlot.java
@@ -18,8 +18,6 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.wayang.core.types.DataSetType;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.LinkedList;
@@ -29,6 +27,7 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.types.DataSetType;
 
 /**
  * An output slot declares an output of an {@link Operator}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/PlanTraversal.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/PlanTraversal.java
index f289e5e..317ebc0 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/PlanTraversal.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/PlanTraversal.java
@@ -18,9 +18,6 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
@@ -28,6 +25,8 @@
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 /**
  * Traverse a plan. In each instance, every operator will be traversed only once.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Slot.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Slot.java
index 93f1488..09bb233 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Slot.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Slot.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
+import java.util.Collection;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Collection;
-
 /**
  * Abstract class for inputs and outputs to operators.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/SlotMapping.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/SlotMapping.java
index 48a1e8a..64bcd93 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/SlotMapping.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/SlotMapping.java
@@ -18,18 +18,16 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import java.util.Map.Entry;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.Map.Entry;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * This mapping can be used to encapsulate subplans by connecting slots (usually <b>against</b> the data flow direction,
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Subplan.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Subplan.java
index 4954f37..a599229 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Subplan.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Subplan.java
@@ -18,12 +18,6 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
-import org.apache.wayang.core.optimizer.cardinality.SubplanCardinalityPusher;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -32,6 +26,11 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityPusher;
+import org.apache.wayang.core.optimizer.cardinality.SubplanCardinalityPusher;
 
 /**
  * A subplan encapsulates connected operators as a single operator.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/WayangPlan.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/WayangPlan.java
index 649a121..8ec78fc 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/WayangPlan.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/WayangPlan.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.mapping.PlanTransformation;
-import org.apache.wayang.core.optimizer.SanityChecker;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.Set;
+import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.mapping.PlanTransformation;
+import org.apache.wayang.core.optimizer.SanityChecker;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * A Wayang plan consists of a set of {@link Operator}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/traversal/AbstractTopologicalTraversal.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/traversal/AbstractTopologicalTraversal.java
index 10ba588..e08c77c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/traversal/AbstractTopologicalTraversal.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/traversal/AbstractTopologicalTraversal.java
@@ -18,17 +18,16 @@
 
 package org.apache.wayang.core.plan.wayangplan.traversal;
 
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Queue;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.plan.wayangplan.WayangPlan;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.Queue;
 
 /**
  * Encapsulates logic to traverse a {@link WayangPlan} in a topological, bottom-up manner.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/AbstractChannelInstance.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/AbstractChannelInstance.java
index a45b565..878609b 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/AbstractChannelInstance.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/AbstractChannelInstance.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.platform;
 
+import java.util.OptionalLong;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.executionplan.ExecutionTask;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.platform.lineage.ChannelLineageNode;
-import org.apache.logging.log4j.LogManager;
-
-import java.util.OptionalLong;
 
 /**
  * Template for {@link ChannelInstance} implementations.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/AtomicExecutionGroup.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/AtomicExecutionGroup.java
index 1f8ba8a..a98d7ee 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/AtomicExecutionGroup.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/AtomicExecutionGroup.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.core.platform;
 
+import java.util.Collection;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.costs.EstimationContext;
 import org.apache.wayang.core.optimizer.costs.LoadProfile;
@@ -26,8 +27,6 @@
 import org.apache.wayang.core.optimizer.costs.TimeEstimate;
 import org.apache.wayang.core.util.JsonSerializables;
 import org.apache.wayang.core.util.JsonSerializer;
-
-import java.util.Collection;
 import org.apache.wayang.core.util.json.JSONObject;
 
 /**
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CardinalityBreakpoint.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CardinalityBreakpoint.java
index a80ffdc..f932ff2 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CardinalityBreakpoint.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CardinalityBreakpoint.java
@@ -19,6 +19,8 @@
 package org.apache.wayang.core.platform;
 
 import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
@@ -27,8 +29,6 @@
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.plan.wayangplan.Slot;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
 
 /**
  * {@link Breakpoint} implementation that is based on the {@link CardinalityEstimate}s of {@link Channel}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ChannelDescriptor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ChannelDescriptor.java
index 618609c..abb069d 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ChannelDescriptor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ChannelDescriptor.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.platform;
 
+import java.lang.reflect.Constructor;
+import java.util.Objects;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.plan.executionplan.ExecutionStage;
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 
-import java.lang.reflect.Constructor;
-import java.util.Objects;
-
 /**
  * Describes a certain {@link Channel} type including further parameters.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ChannelInstance.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ChannelInstance.java
index b5a6fd5..787aed8 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ChannelInstance.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ChannelInstance.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.platform;
 
+import java.util.OptionalLong;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.platform.lineage.ChannelLineageNode;
 
-import java.util.OptionalLong;
-
 /**
  * Represents the actual, allocated resource represented by {@link Channel}.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ConjunctiveBreakpoint.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ConjunctiveBreakpoint.java
index 6c35138..3c88d00 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ConjunctiveBreakpoint.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ConjunctiveBreakpoint.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.platform;
 
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.plan.executionplan.ExecutionStage;
-
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.plan.executionplan.ExecutionStage;
 
 /**
  * {@link Breakpoint} implementation that disrupts execution if all aggregated {@link Breakpoint}s request a disruption.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CrossPlatformExecutor.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CrossPlatformExecutor.java
index 1f539bd..8c96ac0 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CrossPlatformExecutor.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CrossPlatformExecutor.java
@@ -18,6 +18,18 @@
 
 package org.apache.wayang.core.platform;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Queue;
+import java.util.Set;
+import java.util.function.Supplier;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -33,19 +45,8 @@
 import org.apache.wayang.core.profiling.InstrumentationStrategy;
 import org.apache.wayang.core.util.AbstractReferenceCountable;
 import org.apache.wayang.core.util.Formats;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Queue;
-import java.util.Set;
-import java.util.function.Supplier;
+;
 
 /**
  * Executes a (cross-platform) {@link ExecutionPlan}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ExecutionState.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ExecutionState.java
index 3cd987e..5301da3 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ExecutionState.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ExecutionState.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.platform;
 
+import java.util.Collection;
 import org.apache.wayang.core.optimizer.enumeration.ExecutionTaskFlow;
 import org.apache.wayang.core.plan.executionplan.Channel;
 
-import java.util.Collection;
-
 /**
  * Contains a state of the execution of an {@link ExecutionTaskFlow}.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ExecutorTemplate.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ExecutorTemplate.java
index dd49737..699ee5d 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ExecutorTemplate.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/ExecutorTemplate.java
@@ -18,6 +18,14 @@
 
 package org.apache.wayang.core.platform;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.OptionalLong;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
@@ -25,15 +33,6 @@
 import org.apache.wayang.core.plan.executionplan.ExecutionStageLoop;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
 import org.apache.wayang.core.util.AbstractReferenceCountable;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.OptionalLong;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Implements the {@link ExecutionResource} handling as defined by {@link Executor}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/FixBreakpoint.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/FixBreakpoint.java
index f6fb93d..35b6a6b 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/FixBreakpoint.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/FixBreakpoint.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.platform;
 
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
-import org.apache.wayang.core.plan.executionplan.ExecutionStage;
-
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
+import org.apache.wayang.core.plan.executionplan.ExecutionStage;
 
 /**
  * Describes when to interrupt the execution of an {@link ExecutionPlan}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/Junction.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/Junction.java
index b590443..159bd91 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/Junction.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/Junction.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.core.platform;
 
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
 import org.apache.wayang.core.optimizer.costs.TimeEstimate;
@@ -27,12 +32,6 @@
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.util.WayangCollections;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
 
 /**
  * Describes the implementation of one {@link OutputSlot} to its occupied {@link InputSlot}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/PartialExecution.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/PartialExecution.java
index ef3a8f1..9d2ab9d 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/PartialExecution.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/PartialExecution.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.core.platform;
 
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Set;
+import java.util.stream.Collectors;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval;
@@ -28,11 +32,6 @@
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
 import org.apache.wayang.core.util.JsonSerializables;
 import org.apache.wayang.core.util.JsonSerializer;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.Set;
-import java.util.stream.Collectors;
 import org.apache.wayang.core.util.json.JSONObject;
 
 /**
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/PushExecutorTemplate.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/PushExecutorTemplate.java
index f46ae71..5cb335b 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/PushExecutorTemplate.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/PushExecutorTemplate.java
@@ -18,18 +18,6 @@
 
 package org.apache.wayang.core.platform;
 
-import org.apache.wayang.core.api.Job;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.plan.executionplan.Channel;
-import org.apache.wayang.core.plan.executionplan.ExecutionStage;
-import org.apache.wayang.core.plan.executionplan.ExecutionTask;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-import org.apache.wayang.core.plan.wayangplan.InputSlot;
-import org.apache.wayang.core.plan.wayangplan.LoopHeadOperator;
-import org.apache.wayang.core.util.OneTimeExecutable;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.wayang.core.util.Tuple;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -39,6 +27,17 @@
 import java.util.Objects;
 import java.util.Queue;
 import java.util.Set;
+import org.apache.wayang.core.api.Job;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.plan.executionplan.Channel;
+import org.apache.wayang.core.plan.executionplan.ExecutionStage;
+import org.apache.wayang.core.plan.executionplan.ExecutionTask;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
+import org.apache.wayang.core.plan.wayangplan.InputSlot;
+import org.apache.wayang.core.plan.wayangplan.LoopHeadOperator;
+import org.apache.wayang.core.util.OneTimeExecutable;
+import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangCollections;
 
 /**
  * {@link Executor} implementation that employs a push model, i.e., data quanta are "pushed"
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/ExecutionLineageNode.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/ExecutionLineageNode.java
index 7d91f7a..39446ec 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/ExecutionLineageNode.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/ExecutionLineageNode.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.platform.lineage;
 
+import java.util.Collection;
+import java.util.LinkedList;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.platform.AtomicExecution;
 
-import java.util.Collection;
-import java.util.LinkedList;
-
 /**
  * Encapsulates {@link AtomicExecution}s with a common {@link OptimizationContext.OperatorContext} in a lazy execution lineage.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/LazyExecutionLineageNode.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/LazyExecutionLineageNode.java
index ef3f6fc..6359a20 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/LazyExecutionLineageNode.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/LazyExecutionLineageNode.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.platform.lineage;
 
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.util.Tuple;
-import org.apache.logging.log4j.LogManager;
-
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.LinkedList;
+import org.apache.logging.log4j.LogManager;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.util.Tuple;
 
 /**
  * A node wraps a {@link ChannelInstance} and keeps track of predecessor nodes.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plugin/DynamicPlugin.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plugin/DynamicPlugin.java
index c0d7695..a4ca0a9 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plugin/DynamicPlugin.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plugin/DynamicPlugin.java
@@ -18,17 +18,6 @@
 
 package org.apache.wayang.core.plugin;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.mapping.Mapping;
-import org.apache.wayang.core.optimizer.channels.ChannelConversion;
-import org.apache.wayang.core.platform.Platform;
-import org.apache.wayang.core.util.ReflectionUtils;
-import org.apache.wayang.core.util.fs.FileSystem;
-import org.apache.wayang.core.util.fs.FileSystems;
-import org.yaml.snakeyaml.Yaml;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collection;
@@ -39,6 +28,16 @@
 import java.util.Objects;
 import java.util.Set;
 import java.util.function.Consumer;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.core.optimizer.channels.ChannelConversion;
+import org.apache.wayang.core.platform.Platform;
+import org.apache.wayang.core.util.ReflectionUtils;
+import org.apache.wayang.core.util.fs.FileSystem;
+import org.apache.wayang.core.util.fs.FileSystems;
+import org.yaml.snakeyaml.Yaml;
 
 /**
  * This {@link Plugin} can be arbitrarily customized.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plugin/Plugin.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plugin/Plugin.java
index a714588..4fdfc3c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plugin/Plugin.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plugin/Plugin.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.core.plugin;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.WayangContext;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
 import org.apache.wayang.core.platform.Platform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * A plugin contributes the following components to a {@link WayangContext}:
  * <ul>
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CardinalityRepository.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CardinalityRepository.java
index 3418ba0..9814bc0 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CardinalityRepository.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CardinalityRepository.java
@@ -18,7 +18,16 @@
 
 package org.apache.wayang.core.profiling;
 
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
 import org.apache.commons.io.IOUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -29,16 +38,6 @@
 import org.apache.wayang.core.plan.wayangplan.Slot;
 import org.apache.wayang.core.platform.CrossPlatformExecutor;
 import org.apache.wayang.core.platform.ExecutionState;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
 import org.apache.wayang.core.util.json.JSONArray;
 import org.apache.wayang.core.util.json.JSONObject;
 
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ExecutionLog.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ExecutionLog.java
index ce1a3d8..6e275f0 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ExecutionLog.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ExecutionLog.java
@@ -18,16 +18,6 @@
 
 package org.apache.wayang.core.profiling;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.platform.CrossPlatformExecutor;
-import org.apache.wayang.core.platform.PartialExecution;
-import org.apache.wayang.core.util.JsonSerializables;
-import org.apache.wayang.core.util.JsonSerializer;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -39,6 +29,15 @@
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.stream.Stream;
+import org.apache.commons.io.IOUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.platform.CrossPlatformExecutor;
+import org.apache.wayang.core.platform.PartialExecution;
+import org.apache.wayang.core.util.JsonSerializables;
+import org.apache.wayang.core.util.JsonSerializer;
 import org.apache.wayang.core.util.json.JSONObject;
 
 /**
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ExecutionPlanMeasurement.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ExecutionPlanMeasurement.java
index 1459d15..9614df8 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ExecutionPlanMeasurement.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ExecutionPlanMeasurement.java
@@ -19,6 +19,11 @@
 package org.apache.wayang.core.profiling;
 
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import org.apache.wayang.commons.util.profiledb.model.Measurement;
 import org.apache.wayang.commons.util.profiledb.model.Type;
 import org.apache.wayang.core.plan.executionplan.Channel;
@@ -26,12 +31,6 @@
 import org.apache.wayang.core.plan.executionplan.ExecutionTask;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 /**
  * This {@link Measurement} encapsulates an {@link ExecutionPlan}.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/FullInstrumentationStrategy.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/FullInstrumentationStrategy.java
index a90cb0d..d90dd90 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/FullInstrumentationStrategy.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/FullInstrumentationStrategy.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.profiling;
 
+import java.util.Arrays;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.plan.executionplan.ExecutionStage;
 
-import java.util.Arrays;
-
 /**
  * Instruments only outbound {@link Channel}s.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/DataSetType.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/DataSetType.java
index cc409a8..66ff893 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/DataSetType.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/DataSetType.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.core.types;
 
-import org.apache.wayang.core.util.ReflectionUtils;
-
 import java.util.Objects;
+import org.apache.wayang.core.util.ReflectionUtils;
 
 /**
  * A data set is an abstraction of the Wayang programming model. Although never directly materialized, a data set
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/DataUnitGroupType.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/DataUnitGroupType.java
index af8904e..39f9992 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/DataUnitGroupType.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/DataUnitGroupType.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.core.types;
 
-import org.apache.wayang.core.util.ReflectionUtils;
-
 import java.util.Objects;
+import org.apache.wayang.core.util.ReflectionUtils;
 
 /**
  * A grouped data unit type describes just the structure of data units within a grouped dataset.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JsonSerializable.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JsonSerializable.java
index dba692e..7018401 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JsonSerializable.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JsonSerializable.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.core.util;
 
-import org.apache.wayang.core.api.exception.WayangException;
-
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.util.json.JSONObject;
 
 /**
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JsonSerializables.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JsonSerializables.java
index b164eac..fe1be2f 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JsonSerializables.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JsonSerializables.java
@@ -18,12 +18,10 @@
 
 package org.apache.wayang.core.util;
 
-import org.apache.commons.lang3.SerializationException;
-
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import org.apache.commons.lang3.SerializationException;
 import org.apache.wayang.core.util.json.JSONArray;
 import org.apache.wayang.core.util.json.JSONObject;
 
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JuelUtils.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JuelUtils.java
index 0ed45ad..c59c055 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JuelUtils.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/JuelUtils.java
@@ -21,13 +21,12 @@
 import de.odysseus.el.ExpressionFactoryImpl;
 import de.odysseus.el.TreeValueExpression;
 import de.odysseus.el.util.SimpleContext;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.optimizer.OptimizationUtils;
-import org.apache.logging.log4j.LogManager;
-
-import javax.el.ValueExpression;
 import java.util.HashMap;
 import java.util.Map;
+import javax.el.ValueExpression;
+import org.apache.logging.log4j.LogManager;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.optimizer.OptimizationUtils;
 
 /**
  * Utilities to deal with JUEL expressions.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/LruCache.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/LruCache.java
index 0b87241..013486d 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/LruCache.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/LruCache.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.core.util;
 
-import org.apache.commons.lang3.Validate;
-
 import java.util.LinkedHashMap;
 import java.util.Map;
+import org.apache.commons.lang3.Validate;
 
 /**
  * Key-value cache with "least recently used" eviction strategy.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/ReflectionUtils.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/ReflectionUtils.java
index c470778..f9871dd 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/ReflectionUtils.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/ReflectionUtils.java
@@ -18,11 +18,6 @@
 
 package org.apache.wayang.core.util;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;;
-
 import java.io.InputStream;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
@@ -46,6 +41,12 @@
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.exception.WayangException;
+
+;
 
 /**
  * Utilities for reflection code.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/WayangCollections.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/WayangCollections.java
index 5b3e891..d0a2d91 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/WayangCollections.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/WayangCollections.java
@@ -18,8 +18,6 @@
 
 package org.apache.wayang.core.util;
 
-import org.apache.commons.lang3.Validate;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -33,6 +31,7 @@
 import java.util.function.BiFunction;
 import java.util.function.Function;
 import java.util.function.Supplier;
+import org.apache.commons.lang3.Validate;
 
 /**
  * Utilities to operate {@link java.util.Collection}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileSystems.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileSystems.java
index 21ae249..01513f1 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileSystems.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileSystems.java
@@ -18,11 +18,6 @@
 
 package org.apache.wayang.core.util.fs;
 
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.util.LruCache;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.io.FileNotFoundException;
 import java.util.Arrays;
 import java.util.Collection;
@@ -30,6 +25,10 @@
 import java.util.Optional;
 import java.util.OptionalLong;
 import java.util.stream.Collectors;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.util.LruCache;
 
 /**
  * Tool to work with {@link FileSystem}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileUtils.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileUtils.java
index 85cc0da..b8dfc8d 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileUtils.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileUtils.java
@@ -18,9 +18,6 @@
 
 package org.apache.wayang.core.util.fs;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.wayang.core.api.exception.WayangException;
-
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
@@ -29,6 +26,8 @@
 import java.util.Spliterators;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
+import org.apache.commons.io.IOUtils;
+import org.apache.wayang.core.api.exception.WayangException;
 
 public class FileUtils {
 
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/HadoopFileSystem.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/HadoopFileSystem.java
index 735251e..a280af9 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/HadoopFileSystem.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/HadoopFileSystem.java
@@ -18,14 +18,6 @@
 
 package org.apache.wayang.core.util.fs;
 
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
-import org.apache.hadoop.fs.Path;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -36,6 +28,13 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.stream.Collectors;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
+import org.apache.hadoop.fs.Path;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.exception.WayangException;
 
 /**
  * {@link FileSystem} immplementation for the HDFS.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/LocalFileSystem.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/LocalFileSystem.java
index ff4c24a..cf962ad 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/LocalFileSystem.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/LocalFileSystem.java
@@ -18,10 +18,6 @@
 
 package org.apache.wayang.core.util.fs;
 
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -36,6 +32,9 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.stream.Collectors;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.exception.WayangException;
 
 /**
  * {@link FileSystem} implementation for the local file system.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/Context.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/Context.java
index bd01fa5..1fbfdc3 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/Context.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/Context.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.core.util.mathex;
 
-import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
-
 import java.util.function.ToDoubleFunction;
+import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
 
 /**
  * Provides contextual variables and functions in order to evaluate an {@link Expression}.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/DefaultContext.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/DefaultContext.java
index 0bea52c..41b8237 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/DefaultContext.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/DefaultContext.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.util.mathex;
 
-import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
-
 import java.util.HashMap;
 import java.util.Map;
 import java.util.function.ToDoubleFunction;
+import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
 
 /**
  * Default {@link Context} implementation that can be configured.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/ExpressionBuilder.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/ExpressionBuilder.java
index 6170be4..e95d804 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/ExpressionBuilder.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/ExpressionBuilder.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.core.util.mathex;
 
+import java.util.List;
+import java.util.stream.Collectors;
 import org.antlr.v4.runtime.ANTLRInputStream;
 import org.antlr.v4.runtime.BaseErrorListener;
 import org.antlr.v4.runtime.CommonTokenStream;
@@ -33,9 +35,6 @@
 import org.apache.wayang.core.util.mathex.model.UnaryOperation;
 import org.apache.wayang.core.util.mathex.model.Variable;
 
-import java.util.List;
-import java.util.stream.Collectors;
-
 /**
  * This utility builds {@link Expression}s from an input {@link String}.
  */
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/model/CompiledFunction.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/model/CompiledFunction.java
index 11455ab..06a15ac 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/model/CompiledFunction.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/model/CompiledFunction.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.util.mathex.model;
 
-import org.apache.wayang.core.util.mathex.Context;
-import org.apache.wayang.core.util.mathex.Expression;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.function.ToDoubleFunction;
 import java.util.stream.Collectors;
+import org.apache.wayang.core.util.mathex.Context;
+import org.apache.wayang.core.util.mathex.Expression;
 
 /**
  * {@link Expression} implementation that represents a function with a static implementation.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/model/NamedFunction.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/model/NamedFunction.java
index 9c26eb4..b27e5f3 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/model/NamedFunction.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/mathex/model/NamedFunction.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.util.mathex.model;
 
-import org.apache.wayang.core.util.mathex.Context;
-import org.apache.wayang.core.util.mathex.Expression;
-import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
-
 import java.util.List;
 import java.util.function.ToDoubleFunction;
 import java.util.stream.Collectors;
+import org.apache.wayang.core.util.mathex.Context;
+import org.apache.wayang.core.util.mathex.Expression;
+import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
 
 /**
  * {@link Expression} implementation that represents a function that is identified
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/SlotTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/SlotTest.java
index ebc8e8a..6f4b3ca 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/SlotTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/SlotTest.java
@@ -18,13 +18,13 @@
 
 package org.apache.wayang.core;
 
-import org.junit.Test;
 import org.apache.wayang.core.plan.wayangplan.Slot;
 import org.apache.wayang.core.plan.wayangplan.test.TestSink;
 import org.apache.wayang.core.plan.wayangplan.test.TestSource;
 import org.apache.wayang.core.test.TestDataUnit;
 import org.apache.wayang.core.test.TestDataUnit2;
 import org.apache.wayang.core.types.DataSetType;
+import org.junit.Test;
 
 /**
  * Test suite for {@link Slot}s.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/OperatorPatternTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/OperatorPatternTest.java
index 1cc7101..2000d43 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/OperatorPatternTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/OperatorPatternTest.java
@@ -18,9 +18,9 @@
 
 package org.apache.wayang.core.mapping;
 
+import org.apache.wayang.core.test.DummyExecutionOperator;
 import org.junit.Assert;
 import org.junit.Test;
-import org.apache.wayang.core.test.DummyExecutionOperator;
 
 /**
  * Tests for {@link OperatorPattern}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/PlanTransformationTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/PlanTransformationTest.java
index d98cbb8..7457c8a 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/PlanTransformationTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/PlanTransformationTest.java
@@ -18,19 +18,19 @@
 
 package org.apache.wayang.core.mapping;
 
-import org.junit.Assert;
-import org.junit.Test;
 import org.apache.wayang.core.mapping.test.TestSinkToTestSink2Factory;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.plan.wayangplan.OperatorAlternative;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.UnarySink;
 import org.apache.wayang.core.plan.wayangplan.UnarySource;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.test.TestSink;
 import org.apache.wayang.core.plan.wayangplan.test.TestSink2;
 import org.apache.wayang.core.plan.wayangplan.test.TestSource;
 import org.apache.wayang.core.test.TestDataUnit;
 import org.apache.wayang.core.types.DataSetType;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link org.apache.wayang.core.mapping.PlanTransformation} class.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/SubplanPatternTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/SubplanPatternTest.java
index dec530b..5e84d27 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/SubplanPatternTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/SubplanPatternTest.java
@@ -18,18 +18,17 @@
 
 package org.apache.wayang.core.mapping;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.List;
 import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.UnarySink;
 import org.apache.wayang.core.plan.wayangplan.UnarySource;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
 import org.apache.wayang.core.plan.wayangplan.test.TestSink;
 import org.apache.wayang.core.plan.wayangplan.test.TestSource;
 import org.apache.wayang.core.test.TestDataUnit;
 import org.apache.wayang.core.types.DataSetType;
-
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link SubplanPattern}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/test/TestSinkMapping.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/test/TestSinkMapping.java
index 8b57d34..da575e7 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/test/TestSinkMapping.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/mapping/test/TestSinkMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.core.mapping.test;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
 import org.apache.wayang.core.mapping.PlanTransformation;
@@ -28,9 +30,6 @@
 import org.apache.wayang.core.test.DummyPlatform;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Dummy {@link Mapping} implementation from {@link TestSink} to {@link TestSink2}.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimatorTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimatorTest.java
index e72d942..188744b 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimatorTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-
-import java.util.Arrays;
-
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.util.Arrays;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.junit.Assert;
+import org.junit.Test;
+
 /**
  * Test suite for {@link AggregatingCardinalityEstimator}.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/DefaultCardinalityEstimatorTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/DefaultCardinalityEstimatorTest.java
index 5ffc3ab..7ec3312 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/DefaultCardinalityEstimatorTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/DefaultCardinalityEstimatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-
-import java.util.function.ToLongFunction;
-
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.util.function.ToLongFunction;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.junit.Assert;
+import org.junit.Test;
+
 
 /**
  * Test suite for the {@link DefaultCardinalityEstimator}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/LoopSubplanCardinalityPusherTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/LoopSubplanCardinalityPusherTest.java
index 5a4583e..d50b266 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/LoopSubplanCardinalityPusherTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/LoopSubplanCardinalityPusherTest.java
@@ -18,9 +18,6 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.api.configuration.FunctionalKeyValueProvider;
@@ -38,6 +35,9 @@
 import org.apache.wayang.core.plan.wayangplan.test.TestSource;
 import org.apache.wayang.core.test.MockFactory;
 import org.apache.wayang.core.util.WayangCollections;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test suite for {@link LoopSubplanCardinalityPusher}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/SubplanCardinalityPusherTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/SubplanCardinalityPusherTest.java
index 60b194a..a689a52 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/SubplanCardinalityPusherTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/cardinality/SubplanCardinalityPusherTest.java
@@ -18,9 +18,6 @@
 
 package org.apache.wayang.core.optimizer.cardinality;
 
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.api.configuration.FunctionalKeyValueProvider;
@@ -35,6 +32,9 @@
 import org.apache.wayang.core.plan.wayangplan.test.TestSource;
 import org.apache.wayang.core.test.MockFactory;
 import org.apache.wayang.core.types.DataSetType;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SubplanCardinalityPusher}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraphTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraphTest.java
index 7013c6c..c08fc14 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraphTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraphTest.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.core.optimizer.channels;
 
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.function.Supplier;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -38,9 +37,9 @@
 import org.apache.wayang.core.test.DummyReusableChannel;
 import org.apache.wayang.core.test.MockFactory;
 import org.apache.wayang.core.util.WayangCollections;
-
-import java.util.Arrays;
-import java.util.function.Supplier;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
 /**
  * Test suite for {@link ChannelConversionGraph}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/costs/NestableLoadProfileEstimatorTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/costs/NestableLoadProfileEstimatorTest.java
index 6295021..20c12c2 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/costs/NestableLoadProfileEstimatorTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/costs/NestableLoadProfileEstimatorTest.java
@@ -19,8 +19,7 @@
 package org.apache.wayang.core.optimizer.costs;
 
 import java.util.HashMap;
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.List;
 import org.apache.wayang.core.optimizer.OptimizationUtils;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -28,8 +27,8 @@
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.types.DataSetType;
-
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Tests for the {@link NestableLoadProfileEstimator}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversalTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversalTest.java
index 9d3d2eb..b0604a3 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversalTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversalTest.java
@@ -18,8 +18,7 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Collections;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
 import org.apache.wayang.core.plan.executionplan.ExecutionStage;
@@ -28,8 +27,8 @@
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.test.MockFactory;
-
-import java.util.Collections;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link StageAssignmentTraversal}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/LoopIsolatorTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/LoopIsolatorTest.java
index 6eae428..546e635 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/LoopIsolatorTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/LoopIsolatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.ArrayList;
+import java.util.List;
 import org.apache.wayang.core.plan.wayangplan.test.TestLoopHead;
 import org.apache.wayang.core.plan.wayangplan.test.TestMapOperator;
 import org.apache.wayang.core.plan.wayangplan.test.TestSink;
 import org.apache.wayang.core.plan.wayangplan.test.TestSource;
-
-import java.util.ArrayList;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link LoopIsolator}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/OperatorTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/OperatorTest.java
index 4018ee1..c2638eb 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/OperatorTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/OperatorTest.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Collection;
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.core.util.WayangCollections;
-
-import java.util.Collection;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link Operator} class.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/SlotMappingTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/SlotMappingTest.java
index 6659beb..1a8da28 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/SlotMappingTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/SlotMappingTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.plan.wayangplan.test.TestSink;
-import org.apache.wayang.core.plan.wayangplan.test.TestSource;
-import org.apache.wayang.core.types.DataSetType;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import org.apache.wayang.core.plan.wayangplan.test.TestSink;
+import org.apache.wayang.core.plan.wayangplan.test.TestSource;
+import org.apache.wayang.core.types.DataSetType;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SlotMapping}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestFilterOperator.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestFilterOperator.java
index c05ad58..e524993 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestFilterOperator.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestFilterOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.core.plan.wayangplan.test;
 
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.optimizer.cardinality.DefaultCardinalityEstimator;
@@ -25,8 +26,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Optional;
-
 /**
  * Test operator that exposes filter-like behavior.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestJoin.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestJoin.java
index 6c8424e..f91bd53 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestJoin.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestJoin.java
@@ -19,6 +19,7 @@
 package org.apache.wayang.core.plan.wayangplan.test;
 
 
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.optimizer.cardinality.DefaultCardinalityEstimator;
@@ -30,8 +31,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Optional;
-
 /**
  * Join-like operator.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestLoopHead.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestLoopHead.java
index f938da9..c6f79cc 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestLoopHead.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestLoopHead.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.core.plan.wayangplan.test;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.optimizer.cardinality.SwitchForwardCardinalityEstimator;
@@ -29,10 +32,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Optional;
-
 /**
  * {@link LoopHeadOperator} implementation for test purposes.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestMapOperator.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestMapOperator.java
index 216f0a4..3988fe5 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestMapOperator.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestMapOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.core.plan.wayangplan.test;
 
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
@@ -26,8 +27,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Optional;
-
 /**
  * Test operator that exposes map-like behavior.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestSink.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestSink.java
index e934f31..bfd1dea 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestSink.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestSink.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.core.plan.wayangplan.test;
 
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.plan.wayangplan.UnarySink;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Optional;
-
 /**
  * Dummy sink for testing purposes.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestSource.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestSource.java
index 06ea764..a81e922 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestSource.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plan/wayangplan/test/TestSource.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.core.plan.wayangplan.test;
 
+import java.util.Optional;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.optimizer.cardinality.FixedSizeCardinalityEstimator;
@@ -25,8 +26,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 
-import java.util.Optional;
-
 /**
  * Dummy source for testing purposes.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/platform/PartialExecutionTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/platform/PartialExecutionTest.java
index f39d331..5740114 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/platform/PartialExecutionTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/platform/PartialExecutionTest.java
@@ -18,9 +18,10 @@
 
 package org.apache.wayang.core.platform;
 
-import org.apache.wayang.core.util.json.JSONObject;
-import org.junit.Assert;
-import org.junit.Test;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.configuration.KeyValueProvider;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -33,11 +34,9 @@
 import org.apache.wayang.core.test.SerializableDummyExecutionOperator;
 import org.apache.wayang.core.util.JsonSerializables;
 import org.apache.wayang.core.util.WayangCollections;
-
-import java.util.Arrays;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.apache.wayang.core.util.json.JSONObject;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suites for {@link PartialExecution}s.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plugin/DynamicPluginTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plugin/DynamicPluginTest.java
index 6fd6b39..713613a 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plugin/DynamicPluginTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/plugin/DynamicPluginTest.java
@@ -18,8 +18,11 @@
 
 package org.apache.wayang.core.plugin;
 
-import org.junit.Assert;
-import org.junit.Test;
+import static org.mockito.Mockito.mock;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Set;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.test.TestSinkMapping;
@@ -30,12 +33,8 @@
 import org.apache.wayang.core.test.DummyPlatform;
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.core.util.WayangCollections;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-
-import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link DynamicPlugin} class.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/test/DummyExecutionOperator.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/test/DummyExecutionOperator.java
index ae3e7ec..97234de 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/test/DummyExecutionOperator.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/test/DummyExecutionOperator.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.core.test;
 
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
 import org.apache.wayang.core.plan.wayangplan.OperatorBase;
@@ -26,10 +29,6 @@
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.types.DataSetType;
 
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
 /**
  * Dummy {@link ExecutionOperator} for test purposes.
  */
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/test/MockFactory.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/test/MockFactory.java
index a125d21..fa672c2 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/test/MockFactory.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/test/MockFactory.java
@@ -18,7 +18,10 @@
 
 package org.apache.wayang.core.test;
 
-import org.mockito.Answers;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -29,11 +32,7 @@
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.types.DataSetType;
-
-import java.util.Collections;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.mockito.Answers;
 
 /**
  * Utility to mock Wayang objects.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/ConsumerIteratorAdapterTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/ConsumerIteratorAdapterTest.java
index 5b1faa1..071b139 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/ConsumerIteratorAdapterTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/ConsumerIteratorAdapterTest.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.util;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.util.Iterator;
 import java.util.function.Consumer;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link ConsumerIteratorAdapter}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/CrossProductIterableTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/CrossProductIterableTest.java
index 021d5c8..8f1b124 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/CrossProductIterableTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/CrossProductIterableTest.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.core.util;
 
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link CrossProductIterable}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/LimitedInputStreamTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/LimitedInputStreamTest.java
index f757d79..48dfde5 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/LimitedInputStreamTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/LimitedInputStreamTest.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.core.util;
 
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link LimitedInputStream}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/ReflectionUtilsTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/ReflectionUtilsTest.java
index 380b250..f6b53ea 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/ReflectionUtilsTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/ReflectionUtilsTest.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.util;
 
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.lang.reflect.Type;
 import java.util.HashMap;
 import java.util.Map;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link ReflectionUtils}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/WayangCollectionsTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/WayangCollectionsTest.java
index 210e831..b26e192 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/WayangCollectionsTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/WayangCollectionsTest.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.core.util;
 
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link WayangCollections}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/mathex/ExpressionBuilderTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/mathex/ExpressionBuilderTest.java
index 05c9a97..b311548 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/mathex/ExpressionBuilderTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/mathex/ExpressionBuilderTest.java
@@ -19,12 +19,11 @@
 package org.apache.wayang.core.util.mathex;
 
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.util.mathex.exceptions.ParseException;
-
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.core.util.mathex.exceptions.ParseException;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the class {@link ExpressionBuilder}.
diff --git a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/mathex/ExpressionTest.java b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/mathex/ExpressionTest.java
index b2ac236..a789b0b 100644
--- a/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/mathex/ExpressionTest.java
+++ b/wayang-commons/wayang-core/src/test/java/org/apache/wayang/core/util/mathex/ExpressionTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.core.util.mathex;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
 import org.apache.wayang.core.util.mathex.model.CompiledFunction;
 import org.apache.wayang.core.util.mathex.model.Constant;
 import org.apache.wayang.core.util.mathex.model.NamedFunction;
-
-import java.util.Arrays;
-import java.util.Collection;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link Expression} subclasses.
diff --git a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/ProfileDB.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/ProfileDB.java
index d5550b9..a3ab9ae 100644
--- a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/ProfileDB.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/ProfileDB.java
@@ -20,18 +20,19 @@
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.function.Consumer;
 import org.apache.wayang.commons.util.profiledb.json.MeasurementDeserializer;
 import org.apache.wayang.commons.util.profiledb.json.MeasurementSerializer;
 import org.apache.wayang.commons.util.profiledb.model.Experiment;
 import org.apache.wayang.commons.util.profiledb.model.Measurement;
 import org.apache.wayang.commons.util.profiledb.storage.Storage;
 
-import java.io.*;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.function.Consumer;
-
 /**
  * This class provides facilities to save and load {@link Experiment}s.
  */
diff --git a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementDeserializer.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementDeserializer.java
index 4592cf4..3fce0d1 100644
--- a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementDeserializer.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementDeserializer.java
@@ -22,11 +22,10 @@
 import com.google.gson.JsonDeserializer;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonParseException;
-import org.apache.wayang.commons.util.profiledb.model.Measurement;
-
 import java.lang.reflect.Type;
 import java.util.HashMap;
 import java.util.Map;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
 
 /**
  * Custom deserializer for {@link Measurement}s
diff --git a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementSerializer.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementSerializer.java
index 7691a04..f6341ee 100644
--- a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementSerializer.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementSerializer.java
@@ -22,9 +22,8 @@
 import com.google.gson.JsonObject;
 import com.google.gson.JsonSerializationContext;
 import com.google.gson.JsonSerializer;
-import org.apache.wayang.commons.util.profiledb.model.Measurement;
-
 import java.lang.reflect.Type;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
 
 /**
  * Custom serializer for {@link Measurement}s
diff --git a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/measurement/TimeMeasurement.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/measurement/TimeMeasurement.java
index 821dbde..e7682be 100644
--- a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/measurement/TimeMeasurement.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/measurement/TimeMeasurement.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.commons.util.profiledb.model.measurement;
 
-import org.apache.wayang.commons.util.profiledb.model.Measurement;
-import org.apache.wayang.commons.util.profiledb.model.Type;
-
 import java.util.Collection;
 import java.util.LinkedList;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Type;
 
 /**
  * A {@link Measurement} that captures a certain amount of time in milliseconds. Instances can be nested within
diff --git a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/FileStorage.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/FileStorage.java
index 663eefc..64e7705 100644
--- a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/FileStorage.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/FileStorage.java
@@ -18,12 +18,14 @@
 
 package org.apache.wayang.commons.util.profiledb.storage;
 
-import org.apache.wayang.commons.util.profiledb.model.Experiment;
-
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.net.URI;
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.commons.util.profiledb.model.Experiment;
 
 public class FileStorage extends Storage {
 
diff --git a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/JDBCStorage.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/JDBCStorage.java
index 3b57add..726112c 100644
--- a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/JDBCStorage.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/JDBCStorage.java
@@ -18,8 +18,6 @@
 
 package org.apache.wayang.commons.util.profiledb.storage;
 
-import org.apache.wayang.commons.util.profiledb.model.Experiment;
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -27,6 +25,7 @@
 import java.net.URI;
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.commons.util.profiledb.model.Experiment;
 
 public class JDBCStorage extends Storage {
 
diff --git a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/Storage.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/Storage.java
index 6102fb8..650dd12 100644
--- a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/Storage.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/Storage.java
@@ -19,13 +19,21 @@
 package org.apache.wayang.commons.util.profiledb.storage;
 
 import com.google.gson.Gson;
-import org.apache.wayang.commons.util.profiledb.ProfileDB;
-import org.apache.wayang.commons.util.profiledb.model.Experiment;
-
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Reader;
+import java.io.UnsupportedEncodingException;
+import java.io.Writer;
 import java.net.URI;
 import java.util.Collection;
 import java.util.LinkedList;
+import org.apache.wayang.commons.util.profiledb.ProfileDB;
+import org.apache.wayang.commons.util.profiledb.model.Experiment;
 
 /**
  * Controls how conducted experiments will be persisted and loaded
diff --git a/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/ProfileDBTest.java b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/ProfileDBTest.java
index 20948b4..e57d881 100644
--- a/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/ProfileDBTest.java
+++ b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/ProfileDBTest.java
@@ -18,6 +18,17 @@
 
 package org.apache.wayang.commons.util.profiledb;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 import org.apache.wayang.commons.util.profiledb.measurement.TestMemoryMeasurement;
 import org.apache.wayang.commons.util.profiledb.measurement.TestTimeMeasurement;
 import org.apache.wayang.commons.util.profiledb.model.Experiment;
@@ -27,13 +38,6 @@
 import org.junit.Assert;
 import org.junit.Test;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.util.*;
-
 public class ProfileDBTest {
 
     @Test
diff --git a/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestMemoryMeasurement.java b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestMemoryMeasurement.java
index be85515..a50abb6 100644
--- a/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestMemoryMeasurement.java
+++ b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestMemoryMeasurement.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.commons.util.profiledb.measurement;
 
+import java.util.Objects;
 import org.apache.wayang.commons.util.profiledb.model.Measurement;
 import org.apache.wayang.commons.util.profiledb.model.Type;
 
-import java.util.Objects;
-
 /**
  * {@link Measurement} implementation for test purposes.
  */
diff --git a/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestTimeMeasurement.java b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestTimeMeasurement.java
index addb644..eae47a5 100644
--- a/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestTimeMeasurement.java
+++ b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestTimeMeasurement.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.commons.util.profiledb.measurement;
 
-import org.apache.wayang.commons.util.profiledb.model.Measurement;
-import org.apache.wayang.commons.util.profiledb.model.Type;
-
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Objects;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Type;
 
 /**
  * {@link Measurement} implementation for test purposes.
diff --git a/wayang-docs/src/main/resources/Gemfile.lock b/wayang-docs/src/main/resources/Gemfile.lock
index 433ff60..b592def 100644
--- a/wayang-docs/src/main/resources/Gemfile.lock
+++ b/wayang-docs/src/main/resources/Gemfile.lock
@@ -68,6 +68,7 @@
     unicode-display_width (1.7.0)
 
 PLATFORMS
+  universal-darwin-19
   universal-darwin-20
   universal-java-1.8
 
@@ -78,4 +79,4 @@
   jekyll-menus
 
 BUNDLED WITH
-   2.2.14
+   2.2.27
diff --git a/wayang-docs/src/main/resources/_data/menus.yml b/wayang-docs/src/main/resources/_data/menus.yml
index c684d4c..f5335f3 100644
--- a/wayang-docs/src/main/resources/_data/menus.yml
+++ b/wayang-docs/src/main/resources/_data/menus.yml
@@ -13,25 +13,25 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 header:
-  - url: /what_is_wayang/
-    title: What is Wayang?
-    identifier: what_wayang
-    weight: 1
+#  - url: /what_is_wayang/
+#    title: What is Wayang?
+#    identifier: what_wayang
+#    weight: 1
 
-  - url: /getting_start/
-    title: Getting Started with Wayang
-    identifier: getting_start
-    weight: 2
+#  - url: /getting_start/
+#    title: Getting Started with Wayang
+#    identifier: getting_start
+#    weight: 2
 
-  - url: /using_wayang/
-    title: Using Wayang
-    identifier: using
-    weight: 3
+#  - url: /using_wayang/
+#    title: Using Wayang
+#    identifier: using
+#    weight: 3
 
-  - url: /extending_wayang/
-    title: Extending Wayang
-    identifier: extending
-    weight: 4
+#  - url: /extending_wayang/
+#    title: Extending Wayang
+#    identifier: extending
+#    weight: 4
 
   - url: /how_contribute/
     title: How To Contribute
@@ -39,53 +39,53 @@
     weight: 5
 
 
-getting_start:
-  - url: /getting_start/how_build/
-    title: How To Build Wayang
-    identifier: build
-    weight: 0
+#getting_start:
+#  - url: /getting_start/how_build/
+#    title: How To Build Wayang
+#    identifier: build
+#    weight: 0
+#
+#  - url: /getting_start/how_install/
+#    title: How To Install Wayang
+#    identifier: install
+#    weight: 1
+#
+#  - url: /getting_start/how_run/
+#    title: How To Run Wayang
+#    identifier: run
+#    weight: 2
+#
+#  - url: /getting_start/writting_wayang_plan/
+#    title: Writting a Wayang Plan
+#    identifier: writting
+#    weight: 3
 
-  - url: /getting_start/how_install/
-    title: How To Install Wayang
-    identifier: install
-    weight: 1
-
-  - url: /getting_start/how_run/
-    title: How To Run Wayang
-    identifier: run
-    weight: 2
-
-  - url: /getting_start/writting_wayang_plan/
-    title: Writting a Wayang Plan
-    identifier: writting
-    weight: 3
-
-using:
-  - url: /using_wayang/api_java_scala/
-    title: API Java/Scala
-    identifier: api_java
-    weight: 0
-
-  - url: /using_wayang/api_python/
-    title: API Python
-    identifier: api_python
-    weight: 1
-
-  - url: /using_wayang/api_rest/
-    title: API REST
-    identifier: api_rest
-    weight: 2
+#using:
+#  - url: /using_wayang/api_java_scala/
+#    title: API Java/Scala
+#    identifier: api_java
+#    weight: 0
+#
+#  - url: /using_wayang/api_python/
+#    title: API Python
+#    identifier: api_python
+#    weight: 1
+#
+#  - url: /using_wayang/api_rest/
+#    title: API REST
+#    identifier: api_rest
+#    weight: 2
 
 #  - url: /using_wayang/api_sql/
 #    title: API SQL
 #    identifier: api_sql
 #    weight: 3
 
-extending:
-  - url: /extending_wayang/adding_platform/
-    title: Adding Platform
-    identifier: platform
-    weight: 0
+#extending:
+#  - url: /extending_wayang/adding_platform/
+#    title: Adding Platform
+#    identifier: platform
+#    weight: 0
 
 contribute:
   - url: /how_contribute/code_changes/
diff --git a/wayang-docs/src/main/resources/how_contribute/bugs_report.md b/wayang-docs/src/main/resources/how_contribute/bugs_report.md
index 32117ff..d3bd5e7 100644
--- a/wayang-docs/src/main/resources/how_contribute/bugs_report.md
+++ b/wayang-docs/src/main/resources/how_contribute/bugs_report.md
@@ -47,4 +47,9 @@
 
 ### Label meaning
 
-TODO: add the label meaning
+Description of error types:
+
+* Functional error: It is a Generic error type that requires further analysis. Happens whenever software does not behave as intended. For example, if the end user clicks the “Save” button, but their entered data isn’t saved, this is a functional error.
+* Logic error: The error represents a mistake in the software flow and causes the software to behave incorrectly. This type of error can cause the program to produce an incorrect output, or even hang or crash.
+* Calculation error: Anytime software returns an incorrect value. There may be used an incorrect algorithm or a data type mismatch during arithmetic operations.
+* Out of bounds error: End user interacts with the software in ways that were not expected. This often occurs when the user sets a parameter outside the limits of intended use.
diff --git a/wayang-docs/src/main/resources/how_contribute/code_changes/preparing_contribute_code_changes/pull_request.md b/wayang-docs/src/main/resources/how_contribute/code_changes/preparing_contribute_code_changes/pull_request.md
index 37f4b5d..b3b253b 100644
--- a/wayang-docs/src/main/resources/how_contribute/code_changes/preparing_contribute_code_changes/pull_request.md
+++ b/wayang-docs/src/main/resources/how_contribute/code_changes/preparing_contribute_code_changes/pull_request.md
@@ -29,4 +29,26 @@
 
 # Pull Request
 
-TODO: add this
+The simplest way to submit code changes, is via a GitHub pull-request.
+
+In order to do this first create a GitHub account and sign into you account.
+
+After that’s done, please visit our GitHub site and create a so-called Fork.
+
+
+
+What happens now, is that GitHub creates a full copy of the Wayang repository in your account. Only you can commit to this.
+
+Now ideally you check-out your cloned repository:
+
+* git clone https://github.com/{your-user-id}/incubator-wayang.git
+
+Now you have a copy of Wayang on your computer and you can change whatever you want and as it’s your copy, you can even commit these changes without any danger of breaking things.
+
+As soon as you’re finished with your changes and want us to have a look, it’s time to create a so-called Pull-Request.
+
+You do that by going to your forked repository page on GitHub.
+
+Every forked repository has an additional button called "New Pull Request":
+
+If you click on it, we will receive a notification on your changes and can review them. We also can discuss your changes and have you perfect your pull request before we accept and merge it into Wayang.
\ No newline at end of file
diff --git a/wayang-docs/src/main/resources/how_contribute/helping_users.md b/wayang-docs/src/main/resources/how_contribute/helping_users.md
index b7adfb8..38e9454 100644
--- a/wayang-docs/src/main/resources/how_contribute/helping_users.md
+++ b/wayang-docs/src/main/resources/how_contribute/helping_users.md
@@ -29,7 +29,7 @@
 
 # Helping Other Users
 
-A great way to contribute to Wayang is to help answer user questions on the StackOverflow. There are always many new Wayang users; taking a few minutes to help answer a question is a very valuable community service.
+A great way to contribute to Wayang is to help answer user questions on StackOverflow. There are always many new Wayang users; taking a few minutes to help answer a question is a very valuable community service.
 
 Contributors should subscribe to email list (`dev@wayang.apache.org`) and follow it in order to keep up to date on what’s happening in Wayang. Answering questions is an excellent and visible way to help the community, which also demonstrates your expertise.
 
diff --git a/wayang-docs/src/main/resources/how_contribute/jira_issue_maintenance.md b/wayang-docs/src/main/resources/how_contribute/jira_issue_maintenance.md
index fda271f..16f2d4c 100644
--- a/wayang-docs/src/main/resources/how_contribute/jira_issue_maintenance.md
+++ b/wayang-docs/src/main/resources/how_contribute/jira_issue_maintenance.md
@@ -48,9 +48,19 @@
 
 ## Types of Label of the Issues
 
-TODO: complete this part
-* Bug:
-* Feature Request:
-* Suggestion: 
 
+* Change : Requesting a change in the current IT profile.
 
+* IT help: Requesting help for an IT related problem.
+
+* Incident: Reporting an incident or IT service outage.
+
+* New feature: Requesting new capability or software feature.
+
+* Problem: Investigating and reporting the root cause of multiple incidents.
+
+* Service request: Requesting help from an internal or customer service team.
+
+* Service request with approval: Requesting help that requires a manager or board approval.
+
+* Support: Requesting help for customer support issues. 
\ No newline at end of file
diff --git a/wayang-docs/src/main/resources/how_contribute/preparing_releases.md b/wayang-docs/src/main/resources/how_contribute/preparing_releases.md
new file mode 100644
index 0000000..c693f11
--- /dev/null
+++ b/wayang-docs/src/main/resources/how_contribute/preparing_releases.md
@@ -0,0 +1,388 @@
+---
+license: |
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+layout: default
+title: "Testing Releases"
+previous:
+    url: /how_contribute/reviewing_changes/
+    title: Reviewing Changes
+next:
+    url: /how_contribute/user_libraries_wayang/
+    title: User Libraries to Wayang
+menus:
+    contribute:
+        weight: 7
+---
+
+# Release process
+
+Wayang’s release process is community-oriented, and members of the community can vote on new releases on the [email list@dev](mailto:dev@wayang.apache.org). Wayang users are invited to subscribe to the email list \#Dev to receive announcements, and test their workloads on newer release and provide feedback on any performance or correctness issues found in the newer release.
+
+## Preparing your system
+
+As part of the release process, Maven will upload maven release artifacts to a so-called staging repository.
+
+This can be thought of as an ad-hoc Maven repository that contains only the artifacts for one release. This helps reviewers to see what’s in the convenience maven package and to release that to the public repos with one click.
+
+In order to be allowed to upload artifacts, your account has to be enabled for this, and you have to tell Maven about your credentials.
+
+In order to do this, you should provide these credentials via `.m2/settings.xml`.
+
+So if you don’t already have one, you should create a .m2 directory in your user home and inside that create a `settings.xml` file with at least this content:
+
+```xml
+<?xml version="1.0" encoding="UTF-8"?>
+<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <servers>
+    <!-- Apache Repo Settings -->
+        <server>
+            <id>apache.snapshots.https</id>
+            <username>{user-id}</username>
+            <password>{user-pass}</password>
+        </server>
+        <server>
+            <id>apache.releases.https</id>
+            <username>{user-id}</username>
+            <password>{user-pass}</password>
+        </server>
+    </servers>
+</settings>
+```
+
+
+This tells maven to use above credentials as soon as a repository with the id `apache.snapshots.https` or `apache.releases.https` is being used. For a release all you need is the releases repo, but it is good to have the other in place as it enables you to also deploy SNAPSHOTs from your system. There repos are defined in the apache parent pom and is identical for all Apache projects.
+
+Additionally, all artifacts are automatically signed by the release build. In order to be able to do this you need to set up GPG.
+
+The key being used to sign the artifacts will have to be linked to your Apache E-Mail ({apache-id}@apache.org) and verified by at least one fellow Apache committer (Ideally more) that have trusted keys themselves. Usually for this you have to get in touch - in real life - with any Apache committer with a trusted key. Attending an ApacheCon is usually a great way to do this as usually every ApacheCon has a Key Signing event in its schedule. He can then sign your key and hereby enable you to sign Apache release artifacts.
+
+If you happen to have multiple keys, adding the following profile to your settings.xml should help:
+
+```xml
+<profile>
+  <id>apache-release</id>
+  <properties>
+    <gpg.keyname>5C60D6B9</gpg.keyname><!-- Your GPG Keyname here -->
+    <!-- Use an agent: Prevents being asked for the password during the build -->
+    <gpg.useagent>true</gpg.useagent>
+    <gpg.passphrase>topsecret-password</gpg.passphrase>
+  </properties>
+</profile>
+```
+
+
+
+## Creating a release branch
+
+For each new release we create a new branch at the beginning of a code-freeze phase. So if currently the project version in develop is `0.6.0-SNAPSHOT`, we create a branch `rel/0.6`. When creating the branch is exactly the moment in which the version in develop is incremented to the next minor version.
+
+This can and should be automated by the maven-release-plugin. Per default the plugin will ask for the working copy version during the build execution. This is the version the develop branch will be changed to.
+
+In contrast to normal builds, it is important to enable all profiles when creating the branch as only this way will all modules versions be updated. Otherwise, the non-default modules on develop will reference the old version which will cause problems when building.
+
+Being 0.6 the minor version
+```shell
+mvn release:branch -P scala-12 -DbranchName=rel/0.6
+```
+The plugin will then aks for the version:
+
+```shell
+What is the new working copy version for "Wayang"? (org.apache.wayang:wayang-parent) 0.6.1-SNAPSHOT: : 0.7.0-SNAPSHOT
+```
+
+## Preparing a release
+
+Same as with creating the branch it is important to enable all profiles when creating the branch as only this way will all modules versions be updated. Otherwise, the non-default modules on develop will reference the old version which will cause problems when building. For people building with some additional profiles from the source release will be impossible.
+
+As especially when switching a lot between different branches, it is recommended to do a clean checkout of the repository. Otherwise, a lot of directories can be left over, which would be included in the `source-release` zip. In order to prepare a `release-candidate`, the first step is switching to the corresponding `release-branch`.
+
+After that, the following command will to all preparation steps for the release:
+
+```shell
+mvn release:prepare -P scala-12
+```
+
+(The -P scala-12 tells maven to activate all the profiles that partition the build and makes sure the versions of all modules are updated as part of the release) In general the plugin will now ask you 3 questions:
+
+1. The version we want to release as (It will suggest the version you get by omitting the `-SNAPSHOT` suffix)
+
+2. The name of the tag the release commit will be tagged with in the SCM (Name it `v{release-version}` (`v0.6.0` in our case)
+
+3. The next development version (The version present in the pom after the release) (`{current-next-bugfix-version}` in our case)
+
+Usually for 1 and 3 the defaults are just fine, make sure the tag name is correct as this usually is different.
+
+What the plugin now does, is automatically execute the following operations:
+
+1. Check we aren’t referencing any `SNAPSHOT` dependencies.
+
+2. Update all pom versions to the release version.
+
+3. Run a build with all tests
+
+4. Commit the changes (commit message: [maven-release-plugin] prepare release `v0.6.0`)
+
+5. Push the commit
+
+6. Tag the commit
+
+7. Update all poms to the next development version.
+
+8. Commit the changes (commit message: [maven-release-plugin] prepare for next development iteration)
+
+9. Push the commit
+
+However, this just prepared the git repository for the release, we have to perform the release to produce and stage the release artifacts.
+
+Please verify the git repository at: `https://gitbox.apache.org/repos/asf?p=incubator-wayang.git` is in the correct state. Please select the release branch and verify the commit log. It is important that the commit with the message "[maven-release-plugin] prepare release `v{release-version}`" is tagged with the release tag (in this case `v0.6.0`)
+
+# What if something goes wrong?
+
+If something goes wrong, you can always execute:
+
+```shell
+mvn release:rollback
+```
+
+It will change the versions back and commit and push things.
+
+However, it will not delete the tag in GIT (locally and remotely). So you have to do that manually or use a different tag next time.
+
+# Performing a release
+
+This is done by executing another goal of the maven-release-plugin:
+
+```shell
+mvn release:perform
+```
+
+This executes automatically as all information it requires is located in the release.properties file the prepare-goal prepared.
+
+The first step is that the perform-goal checks out the previously tagged revision into the root modules target/checkout directory. Here it automatically executes a maven build (You don’t have to do this, it’s just that you know what’s happening):
+
+```shell
+mvn clean deploy -P apache-release
+```
+
+As the apache-release profile is also activated, this builds and tests the project as well as creates the JavaDocs, Source packages and signs each of these with your PGP key.
+
+We are intentionally not adding the other profiles, as these either produce binary artifacts that usually only work on the system they were compiled on (C++, .Net).
+
+As this time the build is building with release versions, Maven will automatically choose the release url for deploying artifacts.
+
+The way things are set up in the apache parent pom, is that release artifacts are deployed to a so-called staging repository.
+
+You can think of a staging repository as a dedicated repository created on the fly as soon as the first artifact comes in.
+
+After the build you will have a nice and clean Maven repository at `https://repository.apache.org/` that contains only artifacts from the current build.
+
+At this point, it is important to log in to Nexus at `https://repository.apache.org/`, select Staging Repositories and find the repository with the name: `orgapachewayang-{somenumber}`.
+
+Select that and click on the Close button.
+
+Now Nexus will do some checks on the artifacts and check the signatures.
+
+As soon as it’s finished, we are done on the Maven side and ready to continue with the rest of the release process.
+
+A release build also produces a so-called source-assembly zip.
+
+This contains all sources of the project and will be what’s actually the release from an Apache point of view and will be the thing we will be voting on.
+
+This file will also be signed and SHA512 hashes will be created.
+
+## Staging a release
+
+Each new release and release-candidate has to be staged in the Apache SVN under:
+
+* `https://dist.apache.org/repos/dist/dev/wayang/`
+
+The directory structure of this directory is as follows:
+
+```shell
+./KEYS
+./0.6.0/
+./0.6.0/rc1
+./0.6.0/rc1/README
+./0.6.0/rc1/RELEASE_NOTES
+./0.6.0/rc1/apache-wayang-0.6.0-source-release.zip
+./0.6.0/rc1/apache-wayang-0.6.0-source-release.zip.asc
+./0.6.0/rc1/apache-wayang-0.6.0-source-release.zip.sha512
+```
+
+You can generally import the stuff, by preparing a directory structure like above locally and then using svn import to do the importing:
+
+```shell
+cd ./{current-full-version}
+svn import rc1 https://dist.apache.org/repos/dist/dev/wayang/{current-full-version}/rc1 -m"Staging of rc1 of Wayang {current-full-version}"
+```
+
+* The KEYS file contains the PGP public key which belongs to the private key used to sign the release artifacts.
+
+If this is your first release be sure to add your key to this file. For the format have a look at the file itself. It should contain all the information needed.
+
+Be sure to stage exactly the README and RELEASE_NOTES files contained in the root of your project. Ideally you just copy them there from there.
+
+All three `-source-relese.zip` artifacts should be located in the directory: `target/checkout/target`
+
+After committing these files to SVN you are ready to start the vote.
+
+## Starting a vote on the mailing list
+
+After staging the release candidate in the Apache SVN, it is time to actually call out the vote.
+
+For this we usually send two emails. The following would be the one used to do our first TLP release:
+
+E-Mail Topic:
+<div style="border: 1px solid gray; padding: 1em;">
+<pre>
+[VOTE] Apache Wayang 0.6.0 RC1
+</pre>
+</div>
+
+Message:
+<div style="border: 1px solid gray; padding: 1em;">
+<pre>
+Apache Wayang 0.6.0 has been staged under [2] and it’s time to vote on accepting it for release. All Maven artifacts are available under [1].
+Voting will be open for 72hr. A minimum of 3 binding +1 votes and more binding +1 than binding -1
+are required to pass.
+
+* Release tag: v0.6.0
+
+Hash for the release tag: {replacethiswiththerealgitcommittag}
+
+Per [3] "Before voting +1 PMC members are required to download
+the signed source code package, compile it as provided, and test
+the resulting executable on their own platform, along with also
+verifying that the package meets the requirements of the ASF policy
+on releases."
+
+You can achieve the above by following [4].
+
+[ ]  +1 accept (indicate what you validated - e.g. performed the non-RM items in [4])
+
+[ ]  -1 reject (explanation required)
+
+
+<a style="color: dodgerblue">1. https://repository.apache.org/content/repositories/orgapachewayang-{somefourdigitnumber}</a>
+<a style="color: dodgerblue">2. https://dist.apache.org/repos/dist/dev/wayang/0.6.0/rc1</a>
+<a style="color: dodgerblue">3. https://www.apache.org/dev/release.html#approving-a-release</a>
+
+</pre>
+</div>
+
+As it is sometimes to do the vote counting, if voting and discussions are going on in the same thread, we send a second email:
+
+E-Mail Topic:
+<div style="border: 1px solid gray; padding: 1em;">
+<pre>[DISCUSS] Apache Wayang 0.6.0 RC1</pre>
+</div>
+
+
+Message:
+<div style="border: 1px solid gray; padding: 1em;">
+<pre>
+This is the discussion thread for the corresponding VOTE thread.
+
+Please keep discussions in this thread to simplify the counting of votes.
+
+If you have to vote -1 please mention a brief description on why and then take the details to this thread.
+</pre>
+</div>
+
+
+
+Now we have to wait 72 hours till we can announce the result of the vote. The vote passes, if at least 3 +1 votes are received and more +1 are received than -1.
+
+## Releasing after a successful vote
+
+As soon as the votes are finished, and the results were in favor of a release, the staged artifacts can be released. This is done by moving them inside the Apache SVN.
+
+```shell
+svn move -m "Release Apache Wayang 0.6.0" \
+  https://dist.apache.org/repos/dist/dev/wayang/0.6.0/rc1 \
+  https://dist.apache.org/repos/dist/release/wayang/0.6.0
+```
+
+This will make the release artifacts available and will trigger them being copied to mirror sites.
+
+This is also the reason why you should wait at least 24 hours before sending out the release notification emails.
+
+## Cleaning up older release versions
+
+As a lot of mirrors are serving our releases, it is the Apache policy to clean old releases from the repo if newer versions are released.
+
+This can be done like this:
+
+```shell
+svn delete https://dist.apache.org/repos/dist/release/wayang/{current-full-version}/ -m"deleted version {current-full-version}"
+```
+
+After this `https://dist.apache.org/repos/dist/release/wayang` should only contain the latest release directory.
+
+## Releasing the Maven artifacts
+
+Probably the simplest part is releasing the Maven artifacts.
+
+In order to do this, the release manager logs into Nexus at `https://repository.apache.org/`, selects the staging repository and clicks on the Release button.
+
+This will move all artifacts into the Apache release repository and delete the staging repository after that.
+
+All release artifacts released to the Apache release repo, will automatically be synced to Maven central.
+
+
+## Add the version to the DOAP file
+Now that the release is out, in the develop branch, update the DOAP file for Wayang.
+
+This is found at: 
+
+* `src/site/resources-filtered/wayang-doap.rdf`
+
+Please add the just released version to the top of the versions.
+
+This file is needed for Apache’s tooling to automatically keep track of project release activity, and we use this internally too to automatically update the documentation to always reference the latest released version automatically.
+
+## Releasing the Maven artifacts
+
+Probably the simplest part is releasing the Maven artifacts.
+
+In order to do this, the release manager logs into Nexus at `https://repository.apache.org/`, selects the staging repository and clicks on the Release button.
+
+This will move all artifacts into the Apache release repository and delete the staging repository after that.
+
+All release artifacts released to the Apache release repo, will automatically be synced to Maven central.
+
+## Merge back release version to release branch
+
+The release branch should always point to the last released version. This has to be done with git
+
+```shell
+git checkout release
+```
+```shell
+git merge v0.6.0
+```
+When there are conflicts it could help to use the theirs merge strategy, i.e.,
+```shell
+git merge -X theirs v0.6.0
+```
+  Possibly a manual conflict resolution has to be done afterwards. After that, changes need to be pushed.
+
+## Updating Jira
+
+Set the released version to "released" and set the "release-date"
+
+Add the next version to the versions.
\ No newline at end of file
diff --git a/wayang-docs/src/main/resources/how_contribute/slack_channels.md b/wayang-docs/src/main/resources/how_contribute/slack_channels.md
index 8af8fb8..9e90824 100644
--- a/wayang-docs/src/main/resources/how_contribute/slack_channels.md
+++ b/wayang-docs/src/main/resources/how_contribute/slack_channels.md
@@ -26,6 +26,7 @@
 
 # Slack Channels
 
-TODO: analyse if is necessary to do it
+In case of any doubts, our community will be glad to answer your questions.
 
+Join the Apache Wayang slack. After creating account in slack you can join #wayang where you can look for help in using and developing Apache Wayang.
 
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/channels/ChannelConversions.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/channels/ChannelConversions.java
index 64013a8..29d0060 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/channels/ChannelConversions.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/channels/ChannelConversions.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.channels;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -31,9 +33,6 @@
 import org.apache.wayang.flink.platform.FlinkPlatform;
 import org.apache.wayang.java.channels.CollectionChannel;
 
-import java.util.Arrays;
-import java.util.Collection;
-
 /**
  * {@link ChannelConversion}s used by the {@link FlinkPlatform}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/channels/DataSetChannel.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/channels/DataSetChannel.java
index 5a45b82..e69bb77 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/channels/DataSetChannel.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/channels/DataSetChannel.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.flink.channels;
 
+import java.util.OptionalLong;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.executionplan.Channel;
@@ -28,8 +29,6 @@
 import org.apache.wayang.core.platform.Executor;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.OptionalLong;
-
 /**
  * Describes the situation where one {@link DataSet} is operated on, producing a further {@link DataSet}.
  * <p><i>NB: We might be more specific: Distinguish between cached/uncached and pipelined/aggregated.</i></p>
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/FunctionCompiler.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/FunctionCompiler.java
index 2eb5aaf..378ff6c 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/FunctionCompiler.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/FunctionCompiler.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.compiler;
 
+import java.util.Collection;
+import java.util.function.BiFunction;
+import java.util.function.Function;
 import org.apache.flink.api.common.functions.CoGroupFunction;
 import org.apache.flink.api.common.functions.FilterFunction;
 import org.apache.flink.api.common.functions.FlatMapFunction;
@@ -41,10 +44,6 @@
 import org.apache.wayang.flink.compiler.criterion.WayangConvergenceCriterion;
 import org.apache.wayang.flink.execution.FlinkExecutionContext;
 
-import java.util.Collection;
-import java.util.function.BiFunction;
-import java.util.function.Function;
-
 /**
  * A compiler translates Wayang functions into executable Flink functions.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/KeySelectorDistinct.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/KeySelectorDistinct.java
index 732c745..f26dfc4 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/KeySelectorDistinct.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/KeySelectorDistinct.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.flink.compiler;
 
-import org.apache.flink.api.java.functions.KeySelector;
-
 import java.io.ByteArrayOutputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 import java.util.Base64;
+import org.apache.flink.api.java.functions.KeySelector;
 
 /**
  * Wrapper for {@Link KeySelector}
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/KeySelectorFunction.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/KeySelectorFunction.java
index 06098a3..06acfed 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/KeySelectorFunction.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/KeySelectorFunction.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.flink.compiler;
 
+import java.io.Serializable;
+import java.util.function.Function;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 import org.apache.flink.api.java.functions.KeySelector;
 import org.apache.flink.api.java.typeutils.ResultTypeQueryable;
 import org.apache.wayang.core.function.TransformationDescriptor;
 
-import java.io.Serializable;
-import java.util.function.Function;
-
 /**
  * Wrapper for {@Link KeySelector}
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/OutputFormatConsumer.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/OutputFormatConsumer.java
index 91e67f8..8007de8 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/OutputFormatConsumer.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/OutputFormatConsumer.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.flink.compiler;
 
+import java.io.IOException;
+import java.io.Serializable;
 import org.apache.flink.api.common.io.OutputFormat;
 import org.apache.flink.configuration.Configuration;
 import org.apache.wayang.core.function.ConsumerDescriptor;
 
-import java.io.IOException;
-import java.io.Serializable;
-
 /**
  * Wrapper for {@Link OutputFormat}
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/WayangFileOutputFormat.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/WayangFileOutputFormat.java
index e2d8eb5..55713b4 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/WayangFileOutputFormat.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/WayangFileOutputFormat.java
@@ -18,6 +18,13 @@
 
 package org.apache.wayang.flink.compiler;
 
+import java.io.ByteArrayOutputStream;
+import java.io.FileNotFoundException;
+import java.io.FilterOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.net.URI;
 import org.apache.flink.api.common.io.BlockInfo;
 import org.apache.flink.api.common.io.CleanupWhenUnsuccessful;
 import org.apache.flink.api.common.io.FileOutputFormat;
@@ -32,17 +39,9 @@
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.SequenceFile;
-import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-
-import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
-import java.net.URI;
+import org.apache.wayang.core.api.exception.WayangException;
 
 /**
  * Wrapper for {@link FileOutputFormat}
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangAggregator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangAggregator.java
index add4daf..080d53b 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangAggregator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangAggregator.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.flink.compiler.criterion;
 
-import org.apache.flink.api.common.aggregators.Aggregator;
-import org.apache.flink.types.ListValue;
-
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.flink.api.common.aggregators.Aggregator;
+import org.apache.flink.types.ListValue;
 
 /**
  * Class create a {@Link Aggregator} that generate aggregatorWrapper
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangConvergenceCriterion.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangConvergenceCriterion.java
index 17c7e2e..14a4c16 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangConvergenceCriterion.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangConvergenceCriterion.java
@@ -19,12 +19,11 @@
 package org.apache.wayang.flink.compiler.criterion;
 
 
-import org.apache.flink.api.common.aggregators.ConvergenceCriterion;
-import org.apache.wayang.core.function.FunctionDescriptor;
-
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.stream.Collectors;
+import org.apache.flink.api.common.aggregators.ConvergenceCriterion;
+import org.apache.wayang.core.function.FunctionDescriptor;
 
 /**
  * Class create a {@Link ConvergenceCriterion} that generate aggregatorWrapper
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangListValue.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangListValue.java
index 2333e3b..5fb0c92 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangListValue.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangListValue.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.flink.compiler.criterion;
 
-import org.apache.flink.types.ListValue;
-
 import java.util.Collection;
+import org.apache.flink.types.ListValue;
 
 /**
  * Is a Wrapper for used in the criterion of the Loops
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangValue.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangValue.java
index 2fc0d6b..3e85e17 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangValue.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/compiler/criterion/WayangValue.java
@@ -19,10 +19,6 @@
 package org.apache.wayang.flink.compiler.criterion;
 
 
-import org.apache.flink.core.memory.DataInputView;
-import org.apache.flink.core.memory.DataOutputView;
-import org.apache.flink.types.Value;
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -30,6 +26,9 @@
 import java.io.ObjectInputStream;
 import java.io.ObjectOutput;
 import java.io.ObjectOutputStream;
+import org.apache.flink.core.memory.DataInputView;
+import org.apache.flink.core.memory.DataOutputView;
+import org.apache.flink.types.Value;
 /**
  * Implementation of {@link Value} of flink for use in Wayang
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutionContext.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutionContext.java
index a14b38d..2521cd2 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutionContext.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutionContext.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.flink.execution;
 
+import java.io.Serializable;
+import java.util.Collection;
 import org.apache.flink.api.common.functions.RichFunction;
 import org.apache.wayang.core.function.ExecutionContext;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.flink.operators.FlinkExecutionOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.io.Serializable;
-import java.util.Collection;
-
 /**
  * {@link ExecutionContext} implementation for the {@link FlinkPlatform}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutor.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutor.java
index 61eef4a..f95c9a8 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutor.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutor.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.execution;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.flink.api.java.ExecutionEnvironment;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.api.exception.WayangException;
@@ -36,10 +39,6 @@
 import org.apache.wayang.flink.operators.FlinkExecutionOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * {@link Executor} implementation for the {@link FlinkPlatform}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CartesianMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CartesianMapping.java
index 08f4927..27c5684 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CartesianMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CartesianMapping.java
@@ -19,6 +19,8 @@
 package org.apache.wayang.flink.mapping;
 
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CartesianOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -29,9 +31,6 @@
 import org.apache.wayang.flink.operators.FlinkCartesianOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CartesianOperator} to {@link FlinkCartesianOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CoGroupMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CoGroupMapping.java
index b2e79a2..7f48397 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CoGroupMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CoGroupMapping.java
@@ -19,6 +19,8 @@
 package org.apache.wayang.flink.mapping;
 
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CoGroupOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -29,9 +31,6 @@
 import org.apache.wayang.flink.operators.FlinkCoGroupOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CoGroupOperator} to {@link FlinkCoGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CollectionSourceMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CollectionSourceMapping.java
index 289207f..b8aa313 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CollectionSourceMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CollectionSourceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkCollectionSource;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CollectionSource} to {@link FlinkCollectionSource}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CountMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CountMapping.java
index 95e9975..fa5921b 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CountMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/CountMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CountOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkCountOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CountOperator} to {@link FlinkCountOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/DistinctMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/DistinctMapping.java
index adf2481..ec53f68 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/DistinctMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/DistinctMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.DistinctOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkDistinctOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link DistinctOperator} to {@link FlinkDistinctOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/DoWhileMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/DoWhileMapping.java
index d4fc663..f89b66c 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/DoWhileMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/DoWhileMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.DoWhileOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.flink.operators.FlinkDoWhileOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link DoWhileOperator} to {@link FlinkDoWhileOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/FilterMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/FilterMapping.java
index 8afea3b..fc1f811 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/FilterMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/FilterMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.FilterOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.flink.operators.FlinkFilterOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 
 /**
  * Mapping from {@link FilterOperator} to {@link FlinkFilterOperator}.
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/FlatMapMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/FlatMapMapping.java
index 2a898ed..8a7d61a 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/FlatMapMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/FlatMapMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.FlatMapOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkFlatMapOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link FlatMapOperator} to {@link FlinkFlatMapOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GlobalMaterializedGroupMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GlobalMaterializedGroupMapping.java
index 870e1aa..b05fa61 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GlobalMaterializedGroupMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GlobalMaterializedGroupMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GlobalMaterializedGroupOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkGlobalMaterializedGroupOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link GlobalMaterializedGroupOperator} to {@link FlinkGlobalMaterializedGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GlobalReduceMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GlobalReduceMapping.java
index 7ced46d..aaf3a2b 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GlobalReduceMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GlobalReduceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GlobalReduceOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkGlobalReduceOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link GlobalReduceOperator} to {@link FlinkGlobalReduceOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GroupByMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GroupByMapping.java
index 9c9faa0..51ce3d7 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GroupByMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/GroupByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GroupByOperator;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkGroupByOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link GroupByOperator} to {@link FlinkGroupByOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/IntersectMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/IntersectMapping.java
index 368a040..2676e55 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/IntersectMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/IntersectMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.IntersectOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkIntersectOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link IntersectOperator} to {@link FlinkIntersectOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/JoinMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/JoinMapping.java
index cc98c82..f1e2b52 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/JoinMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/JoinMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.JoinOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkJoinOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link JoinOperator} to {@link FlinkJoinOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/LocalCallbackSinkMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/LocalCallbackSinkMapping.java
index 586c309..19291cb 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/LocalCallbackSinkMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/LocalCallbackSinkMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.LocalCallbackSink;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.flink.operators.FlinkLocalCallbackSink;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link LocalCallbackSink} to {@link FlinkLocalCallbackSink}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/LoopMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/LoopMapping.java
index dab0374..1645a69 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/LoopMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/LoopMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.LoopOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.flink.operators.FlinkLoopOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link LoopOperator} to {@link FlinkLoopOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MapMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MapMapping.java
index dbbe5e2..c0b62df 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MapMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MapMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MapOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkMapOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MapOperator} to {@link FlinkMapOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MapPartitionsMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MapPartitionsMapping.java
index bc2a1e2..b7f0320 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MapPartitionsMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MapPartitionsMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MapPartitionsOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkMapPartitionsOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MapPartitionsOperator} to {@link FlinkMapPartitionsOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/Mappings.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/Mappings.java
index 2406544..685b9a1 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/Mappings.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/Mappings.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.flink.mapping;
 
-import org.apache.wayang.core.mapping.Mapping;
-
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.core.mapping.Mapping;
 
 /**
  * Register for {@link Mapping}s for this platform.
@@ -53,7 +52,9 @@
             new SampleMapping(),
             new SortMapping(),
             new TextFileSinkMapping(),
+            new ObjectFileSinkMapping(),
             new TextFileSourceMapping(),
+            new ObjectFileSourceMapping(),
             new UnionAllMapping(),
             new ZipWithIdMapping()
     );
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MaterializedGroupByMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MaterializedGroupByMapping.java
index 8fa46c1..72f0049 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MaterializedGroupByMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/MaterializedGroupByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MaterializedGroupByOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkMaterializedGroupByOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MaterializedGroupByOperator} to {@link FlinkMaterializedGroupByOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ObjectFileSinkMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ObjectFileSinkMapping.java
new file mode 100644
index 0000000..1008119
--- /dev/null
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ObjectFileSinkMapping.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.flink.mapping;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.apache.wayang.basic.operators.ObjectFileSink;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.core.mapping.OperatorPattern;
+import org.apache.wayang.core.mapping.PlanTransformation;
+import org.apache.wayang.core.mapping.ReplacementSubplanFactory;
+import org.apache.wayang.core.mapping.SubplanPattern;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.flink.operators.FlinkObjectFileSink;
+import org.apache.wayang.flink.platform.FlinkPlatform;
+
+/**
+ * Mapping from {@link ObjectFileSink} to {@link FlinkObjectFileSink}.
+ */
+public class ObjectFileSinkMapping implements Mapping {
+
+    @Override
+    public Collection<PlanTransformation> getTransformations() {
+        return Collections.singleton(new PlanTransformation(
+                this.createSubplanPattern(),
+                this.createReplacementSubplanFactory(),
+                FlinkPlatform.getInstance()
+        ));
+    }
+
+    private SubplanPattern createSubplanPattern() {
+        final OperatorPattern operatorPattern = new OperatorPattern<>(
+                "sink",
+                new ObjectFileSink<>(
+                    null,
+                    DataSetType.none().getDataUnitType().getTypeClass()
+                ),
+                false
+        );
+        return SubplanPattern.createSingleton(operatorPattern);
+    }
+
+    private ReplacementSubplanFactory createReplacementSubplanFactory() {
+        return new ReplacementSubplanFactory.OfSingleOperators<ObjectFileSink<?>>(
+                (matchedOperator, epoch) -> new FlinkObjectFileSink<>(matchedOperator).at(epoch)
+        );
+    }
+}
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ObjectFileSourceMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ObjectFileSourceMapping.java
new file mode 100644
index 0000000..f48eba3
--- /dev/null
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ObjectFileSourceMapping.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.flink.mapping;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.apache.wayang.basic.operators.ObjectFileSource;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.core.mapping.OperatorPattern;
+import org.apache.wayang.core.mapping.PlanTransformation;
+import org.apache.wayang.core.mapping.ReplacementSubplanFactory;
+import org.apache.wayang.core.mapping.SubplanPattern;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.flink.operators.FlinkObjectFileSource;
+import org.apache.wayang.flink.platform.FlinkPlatform;
+
+/**
+ * Mapping from {@link ObjectFileSource} to {@link FlinkObjectFileSource}.
+ */
+@SuppressWarnings("unchecked")
+public class ObjectFileSourceMapping implements Mapping {
+    @Override
+    public Collection<PlanTransformation> getTransformations() {
+        return Collections.singleton(new PlanTransformation(
+                this.createSubplanPattern(),
+                this.createReplacementSubplanFactory(),
+                FlinkPlatform.getInstance()
+        ));
+    }
+
+
+    private SubplanPattern createSubplanPattern() {
+        final OperatorPattern operatorPattern = new OperatorPattern(
+            "source",
+            new ObjectFileSource<>(
+                null,
+                DataSetType.none().getDataUnitType().getTypeClass()
+            ),
+            false
+        );
+        return SubplanPattern.createSingleton(operatorPattern);
+    }
+
+    private ReplacementSubplanFactory createReplacementSubplanFactory() {
+        return new ReplacementSubplanFactory.OfSingleOperators<ObjectFileSource>(
+                (matchedOperator, epoch) -> new FlinkObjectFileSource<>(matchedOperator).at(epoch)
+        );
+    }
+}
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/PageRankMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/PageRankMapping.java
index b35a600..6f719aa 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/PageRankMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/PageRankMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.PageRankOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -27,9 +29,6 @@
 import org.apache.wayang.flink.operators.FlinkPageRankOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link PageRankOperator} to {@link FlinkPageRankOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ReduceByMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ReduceByMapping.java
index 8d5d666..3898b09 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ReduceByMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ReduceByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.ReduceByOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkReduceByOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link ReduceByOperator} to {@link FlinkReduceByOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/RepeatMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/RepeatMapping.java
index 5de4d4a..220e1bc 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/RepeatMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/RepeatMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.RepeatOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -29,9 +31,6 @@
 import org.apache.wayang.flink.operators.FlinkRepeatOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link RepeatOperator} to {@link FlinkRepeatOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SampleMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SampleMapping.java
index f1d3feb..5318a81 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SampleMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SampleMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.SampleOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkSampleOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link SampleOperator} to {@link FlinkSampleOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SortMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SortMapping.java
index 412803f..144e591 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SortMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SortMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.SortOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkSortOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link SortOperator} to {@link FlinkSortOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/TextFileSinkMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/TextFileSinkMapping.java
index c5963fb..e3fc257 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/TextFileSinkMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/TextFileSinkMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.TextFileSink;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkTextFileSink;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 
 /**
  * Mapping from {@link TextFileSink} to {@link FlinkTextFileSink}.
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/TextFileSourceMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/TextFileSourceMapping.java
index a57bb66..b6ef0a6 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/TextFileSourceMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/TextFileSourceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -27,9 +29,6 @@
 import org.apache.wayang.flink.operators.FlinkTextFileSource;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link TextFileSource} to {@link FlinkTextFileSource}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/UnionAllMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/UnionAllMapping.java
index ec2f0ed..ae54c8c 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/UnionAllMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/UnionAllMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.UnionAllOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkUnionAllOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link UnionAllOperator} to {@link FlinkUnionAllOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ZipWithIdMapping.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ZipWithIdMapping.java
index c45de87..94c72a1 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ZipWithIdMapping.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/ZipWithIdMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.ZipWithIdOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.flink.operators.FlinkZipWithIdOperator;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link ZipWithIdOperator} to {@link FlinkZipWithIdOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCartesianOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCartesianOperator.java
index 280586b..c2fc3af 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCartesianOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCartesianOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.CartesianOperator;
@@ -32,11 +36,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link CartesianOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCoGroupOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCoGroupOperator.java
index d1230b7..5693be6 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCoGroupOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCoGroupOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.common.functions.CoGroupFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.functions.KeySelector;
@@ -38,12 +43,6 @@
 import org.apache.wayang.flink.compiler.FunctionCompiler;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link CoGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCollectionSink.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCollectionSink.java
index c88f656..54df5a9 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCollectionSink.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCollectionSink.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.core.api.Configuration;
@@ -35,11 +39,6 @@
 import org.apache.wayang.flink.execution.FlinkExecutor;
 import org.apache.wayang.java.channels.CollectionChannel;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 
 /**
  * Converts {@link DataSetChannel} into a {@link CollectionChannel}
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCollectionSource.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCollectionSource.java
index 577f67f..6e33ec8 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCollectionSource.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCollectionSource.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -31,10 +34,6 @@
 import org.apache.wayang.flink.execution.FlinkExecutor;
 import org.apache.wayang.java.channels.CollectionChannel;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * This is execution operator implements the {@link CollectionSource}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCountOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCountOperator.java
index 570e97e..daf6278 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCountOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkCountOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.operators.CountOperator;
 import org.apache.wayang.core.api.exception.WayangException;
@@ -31,11 +35,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link CountOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkDistinctOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkDistinctOperator.java
index 72037be..be069fc 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkDistinctOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkDistinctOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.operators.DistinctOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -31,11 +35,6 @@
 import org.apache.wayang.flink.compiler.KeySelectorDistinct;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 
 /**
  * Flink implementation of the {@link DistinctOperator}.
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkDoWhileOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkDoWhileOperator.java
index a558e1d..7164d29 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkDoWhileOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkDoWhileOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.aggregators.ConvergenceCriterion;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.operators.IterativeDataSet;
@@ -40,11 +44,6 @@
 import org.apache.wayang.flink.compiler.criterion.WayangFilterCriterion;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link DoWhileOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkExecutionOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkExecutionOperator.java
index f8b5da4..9bb8755 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkExecutionOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkExecutionOperator.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.io.Serializable;
+import java.util.Collection;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.platform.ChannelInstance;
@@ -26,9 +28,6 @@
 import org.apache.wayang.flink.execution.FlinkExecutor;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.io.Serializable;
-import java.util.Collection;
-
 /**
  * Execution operator for the Flink platform.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkFilterOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkFilterOperator.java
index 9954f7f..c364840 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkFilterOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkFilterOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.FilterFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.operators.FilterOperator;
@@ -35,12 +40,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link FilterOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkFlatMapOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkFlatMapOperator.java
index d2f8c41..406d9de 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkFlatMapOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkFlatMapOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.FlatMapFunction;
 import org.apache.flink.api.common.functions.RichFlatMapFunction;
 import org.apache.flink.api.java.DataSet;
@@ -38,12 +43,6 @@
 import org.apache.wayang.flink.execution.FlinkExecutionContext;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link FlatMapOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGlobalMaterializedGroupOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGlobalMaterializedGroupOperator.java
index a2c78f7..cf4a881 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGlobalMaterializedGroupOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGlobalMaterializedGroupOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.common.functions.MapPartitionFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.operators.GlobalMaterializedGroupOperator;
@@ -32,12 +37,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link GlobalMaterializedGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGlobalReduceOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGlobalReduceOperator.java
index a5ccec3..20f5544 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGlobalReduceOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGlobalReduceOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.ReduceFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.operators.GlobalReduceOperator;
@@ -35,12 +40,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link GlobalReduceOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGroupByOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGroupByOperator.java
index b2f236f..6e86fee 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGroupByOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkGroupByOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.GroupReduceFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.functions.KeySelector;
@@ -37,13 +43,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link GroupByOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkIntersectOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkIntersectOperator.java
index 2e4d518..3ab8b97 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkIntersectOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkIntersectOperator.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.flink.api.common.functions.MapFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.functions.KeySelector;
@@ -34,10 +37,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link IntersectOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkJoinOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkJoinOperator.java
index f60b578..3cdd652 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkJoinOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkJoinOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.JoinFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.functions.KeySelector;
@@ -38,12 +43,6 @@
 import org.apache.wayang.flink.compiler.FunctionCompiler;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link JoinOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkLocalCallbackSink.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkLocalCallbackSink.java
index c3a8e6e..ff8b657 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkLocalCallbackSink.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkLocalCallbackSink.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.io.PrintingOutputFormat;
 import org.apache.wayang.basic.operators.LocalCallbackSink;
@@ -32,11 +36,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.io.Serializable;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * Implementation of the {@link LocalCallbackSink} operator for the Flink platform.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkLoopOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkLoopOperator.java
index 826c187..82aa3f3 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkLoopOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkLoopOperator.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.common.aggregators.ConvergenceCriterion;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.operators.IterativeDataSet;
@@ -36,10 +39,6 @@
 import org.apache.wayang.flink.compiler.criterion.WayangFilterCriterion;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link RepeatOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMapOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMapOperator.java
index 57f7b96..be66622 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMapOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMapOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.MapFunction;
 import org.apache.flink.api.common.functions.RichMapFunction;
 import org.apache.flink.api.java.DataSet;
@@ -37,11 +41,6 @@
 import org.apache.wayang.flink.execution.FlinkExecutionContext;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link MapOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMapPartitionsOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMapPartitionsOperator.java
index 215c473..e39fff5 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMapPartitionsOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMapPartitionsOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.MapPartitionFunction;
 import org.apache.flink.api.common.functions.RichMapPartitionFunction;
 import org.apache.flink.api.java.DataSet;
@@ -37,12 +42,6 @@
 import org.apache.wayang.flink.execution.FlinkExecutionContext;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link MapPartitionsOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMaterializedGroupByOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMaterializedGroupByOperator.java
index 627259a..15545da 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMaterializedGroupByOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkMaterializedGroupByOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.GroupReduceFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.functions.KeySelector;
@@ -36,12 +41,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Flink implementation of the {@link MaterializedGroupByOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSink.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSink.java
index 9130a97..51a420e 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSink.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSink.java
@@ -18,13 +18,16 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.java.operators.DataSink;
 import org.apache.flink.core.fs.FileSystem;
 import org.apache.wayang.basic.channels.FileChannel;
+import org.apache.wayang.basic.operators.ObjectFileSink;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.UnarySink;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
@@ -35,27 +38,23 @@
 import org.apache.wayang.flink.execution.FlinkExecutor;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * {@link Operator} for the {@link FlinkPlatform} that creates a sequence file.
  *
  * @see FlinkObjectFileSink
  */
-public class FlinkObjectFileSink<Type> extends UnarySink<Type> implements FlinkExecutionOperator {
+public class FlinkObjectFileSink<Type> extends ObjectFileSink<Type> implements FlinkExecutionOperator {
 
-    private final String targetPath;
-
+    public FlinkObjectFileSink(ObjectFileSink<Type> that) {
+        super(that);
+    }
 
     public FlinkObjectFileSink(DataSetType<Type> type) {
         this(null, type);
     }
 
     public FlinkObjectFileSink(String targetPath, DataSetType<Type> type) {
-        super(type);
-        this.targetPath = targetPath;
+        super(targetPath, type);
     }
 
     @Override
@@ -68,10 +67,16 @@
 
         assert inputs.length == this.getNumInputs();
         assert outputs.length <= 1;
+        final FileChannel.Instance output;
+        final String targetPath;
+        if(outputs.length == 1) {
+            output = (FileChannel.Instance) outputs[0];
+            targetPath = output.addGivenOrTempPath(this.textFileUrl, flinkExecutor.getConfiguration());
+        }else{
+            targetPath = this.textFileUrl;
+        }
 
-        final FileChannel.Instance output = (FileChannel.Instance) outputs[0];
-        final String targetPath = output.addGivenOrTempPath(this.targetPath, flinkExecutor.getConfiguration());
-
+        //TODO: remove the set parallelism 1
         DataSetChannel.Instance input = (DataSetChannel.Instance) inputs[0];
         final DataSink<Type> tDataSink = input.<Type>provideDataSet()
                 .write(new WayangFileOutputFormat<Type>(targetPath), targetPath, FileSystem.WriteMode.OVERWRITE)
@@ -83,7 +88,7 @@
 
     @Override
     protected ExecutionOperator createCopy() {
-        return new FlinkObjectFileSink<>(targetPath, this.getType());
+        return new FlinkObjectFileSink<>(this.textFileUrl, this.getType());
     }
 
     @Override
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSource.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSource.java
index fb1e569..d9fba1e 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSource.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSource.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.io.ByteArrayInputStream;
+import java.io.ObjectInputStream;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.common.functions.FlatMapFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.hadoop.mapred.HadoopInputFormat;
@@ -27,10 +32,10 @@
 import org.apache.hadoop.io.NullWritable;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.basic.operators.ObjectFileSource;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.UnarySource;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
@@ -40,29 +45,24 @@
 import org.apache.wayang.flink.execution.FlinkExecutor;
 import org.apache.wayang.flink.platform.FlinkPlatform;
 
-import java.io.ByteArrayInputStream;
-import java.io.ObjectInputStream;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 
 /**
  * {@link Operator} for the {@link FlinkPlatform} that creates a sequence file.
  *
  * @see FlinkObjectFileSource
  */
-public class FlinkObjectFileSource<Type> extends UnarySource<Type> implements FlinkExecutionOperator {
+public class FlinkObjectFileSource<Type> extends ObjectFileSource<Type> implements FlinkExecutionOperator {
 
-    private final String sourcePath;
+    public FlinkObjectFileSource(ObjectFileSource<Type> that) {
+        super(that);
+    }
 
     public FlinkObjectFileSource(DataSetType<Type> type) {
         this(null, type);
     }
 
     public FlinkObjectFileSource(String sourcePath, DataSetType<Type> type) {
-        super(type);
-        this.sourcePath = sourcePath;
+        super(sourcePath, type);
     }
 
     @Override
@@ -76,12 +76,12 @@
         assert outputs.length == this.getNumOutputs();
 
         final String path;
-        if (this.sourcePath == null) {
+        if (this.getInputUrl() == null) {
             final FileChannel.Instance input = (FileChannel.Instance) inputs[0];
             path = input.getSinglePath();
         } else {
             assert inputs.length == 0;
-            path = this.sourcePath;
+            path = this.getInputUrl();
         }
         DataSetChannel.Instance output = (DataSetChannel.Instance) outputs[0];
         flinkExecutor.fee.setParallelism(flinkExecutor.getNumDefaultPartitions());
@@ -109,7 +109,7 @@
 
     @Override
     protected ExecutionOperator createCopy() {
-        return new FlinkObjectFileSource<Type>(sourcePath, this.getType());
+        return new FlinkObjectFileSource<Type>(this.getInputUrl(), this.getType());
     }
 
     @Override
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkPageRankOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkPageRankOperator.java
index 6a62337..b5095f5 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkPageRankOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkPageRankOperator.java
@@ -18,6 +18,13 @@
 
 package org.apache.wayang.flink.operators;
 
+import static org.apache.flink.api.java.aggregation.Aggregations.SUM;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.common.functions.FilterFunction;
 import org.apache.flink.api.common.functions.FlatMapFunction;
 import org.apache.flink.api.common.functions.GroupReduceFunction;
@@ -36,14 +43,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import static org.apache.flink.api.java.aggregation.Aggregations.SUM;
-
 /**
  * Flink implementation of the {@link PageRankOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkReduceByOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkReduceByOperator.java
index d0d7e03..0f2a78e 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkReduceByOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkReduceByOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.common.functions.ReduceFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.functions.KeySelector;
@@ -38,12 +43,6 @@
 import org.apache.wayang.flink.compiler.FunctionCompiler;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 
 /**
  * Flink implementation of the {@link ReduceByOperator}.
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatExpandedOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatExpandedOperator.java
index b60abe2..0d551ac 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatExpandedOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatExpandedOperator.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.operators.IterativeDataSet;
 import org.apache.wayang.basic.operators.RepeatOperator;
@@ -32,10 +35,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link RepeatOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatOperator.java
index 3b5507c..8b6bb39 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatOperator.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.operators.IterativeDataSet;
 import org.apache.wayang.basic.operators.RepeatOperator;
@@ -31,10 +34,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link RepeatOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkSampleOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkSampleOperator.java
index 86b0613..61c9582 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkSampleOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkSampleOperator.java
@@ -18,6 +18,13 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+import java.util.function.IntUnaryOperator;
+import java.util.function.LongUnaryOperator;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.utils.DataSetUtils;
 import org.apache.wayang.basic.operators.SampleOperator;
@@ -32,14 +39,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Random;
-import java.util.function.IntUnaryOperator;
-import java.util.function.LongUnaryOperator;
-
 /**
  * Flink implementation of the {@link SampleOperator}. Sampling with replacement (i.e., the sample may contain duplicates)
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkSortOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkSortOperator.java
index 97e5d19..034426a 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkSortOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkSortOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.common.operators.Order;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.functions.KeySelector;
@@ -34,11 +38,6 @@
 import org.apache.wayang.flink.compiler.FunctionCompiler;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link SortOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTextFileSink.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTextFileSink.java
index 9682344..cfeb271 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTextFileSink.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTextFileSink.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.io.TextOutputFormat;
 import org.apache.wayang.basic.operators.TextFileSink;
@@ -34,11 +38,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Implementation of the {@link TextFileSink} operator for the Flink platform.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTextFileSource.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTextFileSource.java
index 2485acf..46c4eca 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTextFileSource.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTextFileSource.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -30,10 +33,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * Provides a {@link Collection} to a Flink job.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTsvFileSink.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTsvFileSink.java
index 4bc2ba9..3e6721c 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTsvFileSink.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkTsvFileSink.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.common.functions.MapFunction;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.channels.FileChannel;
@@ -33,11 +37,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Created by bertty on 31-10-17.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkUnionAllOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkUnionAllOperator.java
index 93452ff..f0d1f45 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkUnionAllOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkUnionAllOperator.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.wayang.basic.operators.UnionAllOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -30,10 +33,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link UnionAllOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkZipWithIdOperator.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkZipWithIdOperator.java
index 027821a..7d4ad8a 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkZipWithIdOperator.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkZipWithIdOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.flink.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.flink.api.java.DataSet;
 import org.apache.flink.api.java.utils.DataSetUtils;
 import org.apache.wayang.basic.data.Tuple2;
@@ -34,11 +38,6 @@
 import org.apache.wayang.flink.channels.DataSetChannel;
 import org.apache.wayang.flink.execution.FlinkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Flink implementation of the {@link MapOperator}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/platform/FlinkPlatform.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/platform/FlinkPlatform.java
index 445e6d0..325afdf 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/platform/FlinkPlatform.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/platform/FlinkPlatform.java
@@ -18,8 +18,14 @@
 
 package org.apache.wayang.flink.platform;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
 import org.apache.flink.api.java.CollectionEnvironment;
 import org.apache.flink.api.java.ExecutionEnvironment;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.basic.plugin.WayangBasic;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
@@ -32,13 +38,6 @@
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.flink.execution.FlinkContextReference;
 import org.apache.wayang.flink.execution.FlinkExecutor;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
 
 /**
  * {@link Platform} for Apache Flink.
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/plugin/FlinkBasicPlugin.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/plugin/FlinkBasicPlugin.java
index bc7df27..853e229 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/plugin/FlinkBasicPlugin.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/plugin/FlinkBasicPlugin.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.flink.plugin;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -29,9 +31,6 @@
 import org.apache.wayang.flink.platform.FlinkPlatform;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-
 /**
  * This {@link Plugin} enables to use the basic Wayang {@link Operator}s on the {@link FlinkPlatform}.
  */
diff --git a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/plugin/FlinkConversionPlugin.java b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/plugin/FlinkConversionPlugin.java
index eb4a8c8..b7c0361 100644
--- a/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/plugin/FlinkConversionPlugin.java
+++ b/wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/plugin/FlinkConversionPlugin.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.flink.plugin;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -27,10 +30,6 @@
 import org.apache.wayang.flink.platform.FlinkPlatform;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} provides {@link ChannelConversion}s from the  {@link FlinkPlatform}.
  */
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/Algorithm/PageRankAlgorithm.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/Algorithm/PageRankAlgorithm.java
index 2e0f688..91710e4 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/Algorithm/PageRankAlgorithm.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/Algorithm/PageRankAlgorithm.java
@@ -19,6 +19,8 @@
 package org.apache.wayang.giraph.Algorithm;
 
 import com.google.common.collect.Lists;
+import java.io.IOException;
+import java.util.List;
 import org.apache.giraph.aggregators.DoubleMaxAggregator;
 import org.apache.giraph.aggregators.DoubleMinAggregator;
 import org.apache.giraph.aggregators.LongSumAggregator;
@@ -41,9 +43,6 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
-import java.io.IOException;
-import java.util.List;
-
 /**
  * Basic PageRank implementation.
  */
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/Algorithm/PageRankParameters.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/Algorithm/PageRankParameters.java
index 20f7761..86ef4e2 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/Algorithm/PageRankParameters.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/Algorithm/PageRankParameters.java
@@ -18,12 +18,9 @@
 
 package org.apache.wayang.giraph.Algorithm;
 
-import org.apache.wayang.core.api.exception.WayangException;
-
 import java.util.LinkedList;
-import java.util.List;
 import java.util.Queue;
-import java.util.Stack;
+import org.apache.wayang.core.api.exception.WayangException;
 
 /**
  * Parameters for Basic PageRank implementation.
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/channels/ChannelConversions.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/channels/ChannelConversions.java
index cd1eb61..90bb99d 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/channels/ChannelConversions.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/channels/ChannelConversions.java
@@ -18,10 +18,10 @@
 
 package org.apache.wayang.giraph.channels;
 
-import org.apache.wayang.core.optimizer.channels.ChannelConversion;
-import org.apache.wayang.giraph.platform.GiraphPlatform;
 import java.util.Collection;
 import java.util.Collections;
+import org.apache.wayang.core.optimizer.channels.ChannelConversion;
+import org.apache.wayang.giraph.platform.GiraphPlatform;
 
 /**
  * {@link ChannelConversion}s for the {@link GiraphPlatform}.
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/execution/GiraphExecutor.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/execution/GiraphExecutor.java
index 86e7aa1..cc615df 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/execution/GiraphExecutor.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/execution/GiraphExecutor.java
@@ -18,20 +18,28 @@
 
 package org.apache.wayang.giraph.execution;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.Queue;
+import java.util.Set;
 import org.apache.giraph.conf.GiraphConfiguration;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.executionplan.ExecutionStage;
 import org.apache.wayang.core.plan.executionplan.ExecutionTask;
-import org.apache.wayang.core.platform.*;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.platform.ExecutionState;
+import org.apache.wayang.core.platform.Executor;
+import org.apache.wayang.core.platform.ExecutorTemplate;
+import org.apache.wayang.core.platform.PartialExecution;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
 import org.apache.wayang.core.util.Tuple;
 import org.apache.wayang.giraph.operators.GiraphExecutionOperator;
 import org.apache.wayang.giraph.platform.GiraphPlatform;
 
-import java.util.*;
-
 /**
  * {@link Executor} for the {@link GiraphPlatform}.
  */
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/mappings/Mappings.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/mappings/Mappings.java
index 7f98c14..6db2dae 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/mappings/Mappings.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/mappings/Mappings.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.giraph.mappings;
 
-import org.apache.wayang.core.mapping.Mapping;
-
 import java.util.Collection;
 import java.util.Collections;
+import org.apache.wayang.core.mapping.Mapping;
 
 /**
  * Register for {@link Mapping}s for this platform.
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/mappings/PageRankMapping.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/mappings/PageRankMapping.java
index cc21b99..a69a65e 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/mappings/PageRankMapping.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/mappings/PageRankMapping.java
@@ -18,15 +18,16 @@
 
 package org.apache.wayang.giraph.mappings;
 
-import org.apache.wayang.basic.operators.PageRankOperator;
-import org.apache.wayang.core.mapping.*;
-import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.Subplan;
-import org.apache.wayang.giraph.operators.GiraphPageRankOperator;
-import org.apache.wayang.giraph.platform.GiraphPlatform;
-
 import java.util.Collection;
 import java.util.Collections;
+import org.apache.wayang.basic.operators.PageRankOperator;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.core.mapping.OperatorPattern;
+import org.apache.wayang.core.mapping.PlanTransformation;
+import org.apache.wayang.core.mapping.ReplacementSubplanFactory;
+import org.apache.wayang.core.mapping.SubplanPattern;
+import org.apache.wayang.giraph.operators.GiraphPageRankOperator;
+import org.apache.wayang.giraph.platform.GiraphPlatform;
 
 /**
  * Maps {@link PageRankOperator}s to {@link GiraphPageRankOperator}s.
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/operators/GiraphExecutionOperator.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/operators/GiraphExecutionOperator.java
index 21f9b86..988823e 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/operators/GiraphExecutionOperator.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/operators/GiraphExecutionOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.giraph.operators;
 
+import java.util.Collection;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.platform.ChannelInstance;
@@ -25,8 +26,6 @@
 import org.apache.wayang.core.util.Tuple;
 import org.apache.wayang.giraph.execution.GiraphExecutor;
 
-import java.util.Collection;
-
 /**
  * {@link ExecutionOperator} that can be run by the {@link GiraphExecutor}.
  */
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/operators/GiraphPageRankOperator.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/operators/GiraphPageRankOperator.java
index 83e68d3..ac1d5cd 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/operators/GiraphPageRankOperator.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/operators/GiraphPageRankOperator.java
@@ -18,8 +18,17 @@
 
 package org.apache.wayang.giraph.operators;
 
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Stream;
 import org.apache.giraph.conf.GiraphConfiguration;
 import org.apache.giraph.job.GiraphJob;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.PageRankOperator;
@@ -40,13 +49,6 @@
 import org.apache.wayang.giraph.execution.GiraphExecutor;
 import org.apache.wayang.giraph.platform.GiraphPlatform;
 import org.apache.wayang.java.channels.StreamChannel;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.*;
-import java.net.URISyntaxException;
-import java.util.*;
-import java.util.stream.Stream;
 
 /**
  * PageRank {@link Operator} implementation for the {@link GiraphPlatform}.
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/platform/GiraphPlatform.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/platform/GiraphPlatform.java
index d267e25..51f66bc 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/platform/GiraphPlatform.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/platform/GiraphPlatform.java
@@ -18,7 +18,6 @@
 
 package org.apache.wayang.giraph.platform;
 
-import org.apache.giraph.conf.GiraphConfiguration;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.costs.LoadProfileToTimeConverter;
 import org.apache.wayang.core.optimizer.costs.LoadToTimeConverter;
diff --git a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/plugin/GiraphPlugin.java b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/plugin/GiraphPlugin.java
index a1a075d..0700b88 100644
--- a/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/plugin/GiraphPlugin.java
+++ b/wayang-platforms/wayang-giraph/src/main/java/org/apache/wayang/giraph/plugin/GiraphPlugin.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.giraph.plugin;
 
+import java.io.File;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -28,10 +31,6 @@
 import org.apache.wayang.giraph.mappings.Mappings;
 import org.apache.wayang.giraph.platform.GiraphPlatform;
 
-import java.io.File;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} activates default capabilities of the {@link GiraphPlatform}.
  */
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 436c711..c73592d 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
@@ -18,8 +18,10 @@
 
 package org.apache.wayang.giraph.operators;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
@@ -33,11 +35,7 @@
 import org.apache.wayang.giraph.execution.GiraphExecutor;
 import org.apache.wayang.giraph.platform.GiraphPlatform;
 import org.apache.wayang.java.channels.StreamChannel;
-
-import java.io.IOException;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.Before;
 
 /**
  * Test For GiraphPageRank
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/ChannelConversions.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/ChannelConversions.java
index e1e9661..4df344b 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/ChannelConversions.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/ChannelConversions.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.channels;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -30,9 +32,6 @@
 import org.apache.wayang.java.operators.JavaTsvFileSource;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-
 /**
  * {@link ChannelConversion}s for the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/CollectionChannel.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/CollectionChannel.java
index c71c840..8ab7e22 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/CollectionChannel.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/CollectionChannel.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.channels;
 
+import java.util.Collection;
+import java.util.stream.Stream;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.plan.wayangplan.OutputSlot;
@@ -26,9 +28,6 @@
 import org.apache.wayang.core.platform.Executor;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 
-import java.util.Collection;
-import java.util.stream.Stream;
-
 /**
  * {@link Channel} between two {@link JavaExecutionOperator}s using an intermediate {@link Collection}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/JavaChannelInstance.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/JavaChannelInstance.java
index dbcdf8d..e1393f2 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/JavaChannelInstance.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/JavaChannelInstance.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.java.channels;
 
+import java.util.stream.Stream;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.platform.ChannelInstance;
 
-import java.util.stream.Stream;
-
 /**
  * Defines execution logic to handle a {@link Channel}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/StreamChannel.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/StreamChannel.java
index 98d8a89..14fc7ba 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/StreamChannel.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/channels/StreamChannel.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.java.channels;
 
+import java.util.Collection;
+import java.util.OptionalLong;
+import java.util.stream.Stream;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.executionplan.Channel;
@@ -27,10 +30,6 @@
 import org.apache.wayang.core.platform.Executor;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 
-import java.util.Collection;
-import java.util.OptionalLong;
-import java.util.stream.Stream;
-
 /**
  * {@link Channel} between two {@link JavaExecutionOperator}s using a {@link Stream}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/compiler/FunctionCompiler.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/compiler/FunctionCompiler.java
index 32c3bcb..94945a5 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/compiler/FunctionCompiler.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/compiler/FunctionCompiler.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.java.compiler;
 
+import java.util.function.BinaryOperator;
+import java.util.function.Function;
+import java.util.function.Predicate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FlatMapDescriptor;
 import org.apache.wayang.core.function.MapPartitionsDescriptor;
@@ -25,10 +28,6 @@
 import org.apache.wayang.core.function.ReduceDescriptor;
 import org.apache.wayang.core.function.TransformationDescriptor;
 
-import java.util.function.BinaryOperator;
-import java.util.function.Function;
-import java.util.function.Predicate;
-
 /**
  * A compiler translates Wayang functions into executable Java functions.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutionContext.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutionContext.java
index 14b46cc..dbc70d2 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutionContext.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutionContext.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.java.execution;
 
+import java.util.Collection;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.function.ExecutionContext;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
@@ -26,8 +27,6 @@
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-
 /**
  * {@link ExecutionContext} implementation for the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutor.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutor.java
index 6150b7c..7fddddd 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutor.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutor.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.java.execution;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.function.ExtendedFunction;
@@ -35,10 +38,6 @@
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * {@link Executor} implementation for the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CartesianMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CartesianMapping.java
index 9fca8af..95925db 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CartesianMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CartesianMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CartesianOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaCartesianOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CartesianOperator} to {@link JavaCartesianOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CoGroupMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CoGroupMapping.java
index d029d7c..be2ff24 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CoGroupMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CoGroupMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CoGroupOperator;
 import org.apache.wayang.basic.operators.JoinOperator;
 import org.apache.wayang.core.mapping.Mapping;
@@ -30,9 +32,6 @@
 import org.apache.wayang.java.operators.JavaJoinOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link JoinOperator} to {@link JavaJoinOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CollectionSourceMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CollectionSourceMapping.java
index d56087b..b7f9558 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CollectionSourceMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CollectionSourceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaCollectionSource;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CollectionSource} to {@link JavaCollectionSource}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CountMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CountMapping.java
index ec2c97a..6971e08 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CountMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/CountMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CountOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaCountOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CountOperator} to {@link JavaCountOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/DistinctMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/DistinctMapping.java
index bdea8d7..421860f 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/DistinctMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/DistinctMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.DistinctOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaDistinctOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link DistinctOperator} to {@link JavaDistinctOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/DoWhileMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/DoWhileMapping.java
index c71fab6..f33ab1c 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/DoWhileMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/DoWhileMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.DoWhileOperator;
 import org.apache.wayang.basic.operators.LoopOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
@@ -31,9 +33,6 @@
 import org.apache.wayang.java.operators.JavaLoopOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link LoopOperator} to {@link JavaLoopOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/FilterMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/FilterMapping.java
index a75c4cb..f9710e0 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/FilterMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/FilterMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.FilterOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.java.operators.JavaFilterOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link FilterOperator} to {@link JavaFilterOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/FlatMapMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/FlatMapMapping.java
index 3f282c0..ef34935 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/FlatMapMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/FlatMapMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.FlatMapOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaFlatMapOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link FlatMapOperator} to {@link JavaFlatMapOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/GlobalMaterializedGroupMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/GlobalMaterializedGroupMapping.java
index 7472966..8328094 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/GlobalMaterializedGroupMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/GlobalMaterializedGroupMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GlobalMaterializedGroupOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaGlobalMaterializedGroupOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link GlobalMaterializedGroupOperator} to {@link JavaGlobalMaterializedGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/GlobalReduceMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/GlobalReduceMapping.java
index c4aa625..d61cb93 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/GlobalReduceMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/GlobalReduceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GlobalReduceOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaGlobalReduceOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link GlobalReduceOperator} to {@link JavaGlobalReduceOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/IntersectMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/IntersectMapping.java
index c3e1750..77d24e3 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/IntersectMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/IntersectMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.IntersectOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaIntersectOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link IntersectOperator} to {@link JavaIntersectOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/JoinMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/JoinMapping.java
index e48d0eb..5704f7c 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/JoinMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/JoinMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.JoinOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaJoinOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link JoinOperator} to {@link JavaJoinOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/LocalCallbackSinkMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/LocalCallbackSinkMapping.java
index 51b7819..b0a1777 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/LocalCallbackSinkMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/LocalCallbackSinkMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.LocalCallbackSink;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaLocalCallbackSink;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link LocalCallbackSink} to {@link JavaLocalCallbackSink}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/LoopMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/LoopMapping.java
index de3386d..6b3c5b9 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/LoopMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/LoopMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.LoopOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.java.operators.JavaLoopOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link LoopOperator} to {@link JavaLoopOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MapMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MapMapping.java
index 60c73cb..d5f7c4c 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MapMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MapMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MapOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaMapOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MapOperator} to {@link JavaMapOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MapPartitionsMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MapPartitionsMapping.java
index dc1bb5a..49a9d5f 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MapPartitionsMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MapPartitionsMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MapPartitionsOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaMapPartitionsOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MapPartitionsOperator} to {@link JavaMapPartitionsOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/Mappings.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/Mappings.java
index ee9cebc..c77d531 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/Mappings.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/Mappings.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.java.mapping;
 
-import org.apache.wayang.core.mapping.Mapping;
-import org.apache.wayang.java.mapping.graph.PageRankMapping;
-
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.java.mapping.graph.PageRankMapping;
 
 /**
  * Register for {@link Mapping}s for this platform.
@@ -32,6 +31,8 @@
     public static Collection<Mapping> BASIC_MAPPINGS = Arrays.asList(
             new TextFileSourceMapping(),
             new TextFileSinkMapping(),
+            new ObjectFileSourceMapping(),
+            new ObjectFileSinkMapping(),
             new MapMapping(),
             new MapPartitionsMapping(),
             new ReduceByMapping(),
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MaterializedGroupByMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MaterializedGroupByMapping.java
index b74e5e0..4ffad2f 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MaterializedGroupByMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/MaterializedGroupByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MaterializedGroupByOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaMaterializedGroupByOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MaterializedGroupByOperator} to {@link JavaMaterializedGroupByOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ObjectFileSinkMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ObjectFileSinkMapping.java
new file mode 100644
index 0000000..cbc4dca
--- /dev/null
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ObjectFileSinkMapping.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.java.mapping;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.apache.wayang.basic.operators.ObjectFileSink;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.core.mapping.OperatorPattern;
+import org.apache.wayang.core.mapping.PlanTransformation;
+import org.apache.wayang.core.mapping.ReplacementSubplanFactory;
+import org.apache.wayang.core.mapping.SubplanPattern;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.operators.JavaObjectFileSink;
+import org.apache.wayang.java.platform.JavaPlatform;
+
+/**
+ * Mapping from {@link ObjectFileSink} to {@link JavaObjectFileSink}.
+ */
+public class ObjectFileSinkMapping implements Mapping {
+
+    @Override
+    public Collection<PlanTransformation> getTransformations() {
+        return Collections.singleton(new PlanTransformation(
+                this.createSubplanPattern(),
+                this.createReplacementSubplanFactory(),
+                JavaPlatform.getInstance()
+        ));
+    }
+
+    private SubplanPattern createSubplanPattern() {
+        final OperatorPattern operatorPattern = new OperatorPattern<>(
+                "sink", new ObjectFileSink<>(null, DataSetType.none().getDataUnitType().getTypeClass()), false
+        );
+        return SubplanPattern.createSingleton(operatorPattern);
+    }
+
+    private ReplacementSubplanFactory createReplacementSubplanFactory() {
+        return new ReplacementSubplanFactory.OfSingleOperators<ObjectFileSink<?>>(
+                (matchedOperator, epoch) -> new JavaObjectFileSink<>(matchedOperator).at(epoch)
+        );
+    }
+}
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ObjectFileSourceMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ObjectFileSourceMapping.java
new file mode 100644
index 0000000..2e5f466
--- /dev/null
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ObjectFileSourceMapping.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.java.mapping;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.apache.wayang.basic.operators.ObjectFileSource;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.core.mapping.OperatorPattern;
+import org.apache.wayang.core.mapping.PlanTransformation;
+import org.apache.wayang.core.mapping.ReplacementSubplanFactory;
+import org.apache.wayang.core.mapping.SubplanPattern;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.operators.JavaObjectFileSource;
+import org.apache.wayang.java.platform.JavaPlatform;
+
+/**
+ * Mapping from {@link ObjectFileSource} to {@link JavaObjectFileSource}.
+ */
+public class ObjectFileSourceMapping implements Mapping {
+
+    @Override
+    public Collection<PlanTransformation> getTransformations() {
+        return Collections.singleton(new PlanTransformation(
+                this.createSubplanPattern(),
+                this.createReplacementSubplanFactory(),
+                JavaPlatform.getInstance()
+        ));
+    }
+
+    private SubplanPattern createSubplanPattern() {
+        final OperatorPattern operatorPattern = new OperatorPattern(
+            "source",
+            new ObjectFileSource(
+                null,
+                DataSetType.none().getDataUnitType().getTypeClass()
+            ),
+            false
+        );
+        return SubplanPattern.createSingleton(operatorPattern);
+    }
+
+    private ReplacementSubplanFactory createReplacementSubplanFactory() {
+        return new ReplacementSubplanFactory.OfSingleOperators<ObjectFileSource>(
+                (matchedOperator, epoch) -> new JavaObjectFileSource(matchedOperator).at(epoch)
+        );
+    }
+}
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ReduceByMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ReduceByMapping.java
index cea8d88..45684e9 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ReduceByMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ReduceByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.ReduceByOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaReduceByOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link ReduceByOperator} to {@link JavaReduceByOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/RepeatMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/RepeatMapping.java
index 8d80f33..dbd3b8d 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/RepeatMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/RepeatMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.RepeatOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaRepeatOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link RepeatOperator} to {@link JavaRepeatOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/SampleMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/SampleMapping.java
index 6cf42c2..d67e6ec 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/SampleMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/SampleMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.SampleOperator;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.mapping.Mapping;
@@ -30,9 +32,6 @@
 import org.apache.wayang.java.operators.JavaReservoirSampleOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link SampleOperator} to {@link JavaRandomSampleOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/SortMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/SortMapping.java
index 302f118..8e59b0a 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/SortMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/SortMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.SortOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaSortOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link SortOperator} to {@link JavaSortOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/TextFileSinkMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/TextFileSinkMapping.java
index eb1d05a..34b5140 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/TextFileSinkMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/TextFileSinkMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.TextFileSink;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaTextFileSink;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link TextFileSink} to {@link JavaTextFileSink}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/TextFileSourceMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/TextFileSourceMapping.java
index 3bc5aa1..45e5db9 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/TextFileSourceMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/TextFileSourceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -27,9 +29,6 @@
 import org.apache.wayang.java.operators.JavaTextFileSource;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link TextFileSource} to {@link JavaTextFileSource}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/UnionAllMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/UnionAllMapping.java
index 8fc0fbf..a847cea 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/UnionAllMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/UnionAllMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.UnionAllOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.operators.JavaUnionAllOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link UnionAllOperator} to {@link JavaUnionAllOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ZipWithIdMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ZipWithIdMapping.java
index ce0f590..9ae8d8f 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ZipWithIdMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/ZipWithIdMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.ZipWithIdOperator;
 import org.apache.wayang.core.function.ExecutionContext;
@@ -32,9 +34,6 @@
 import org.apache.wayang.java.operators.JavaMapOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link ZipWithIdMapping} to a subplan.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/graph/PageRankMapping.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/graph/PageRankMapping.java
index d2a4c3d..b2b0cb2 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/graph/PageRankMapping.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/mapping/graph/PageRankMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.mapping.graph;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.PageRankOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -27,9 +29,6 @@
 import org.apache.wayang.java.operators.graph.JavaPageRankOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link PageRankOperator} to {@link JavaPageRankOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCartesianOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCartesianOperator.java
index cdb4822..d9d0b7d 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCartesianOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCartesianOperator.java
@@ -18,6 +18,13 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.CartesianOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -33,14 +40,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
 /**
  * Java implementation of the {@link CartesianOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCoGroupOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCoGroupOperator.java
index 253110f..9e255f1 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCoGroupOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCoGroupOperator.java
@@ -18,6 +18,16 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.CoGroupOperator;
 import org.apache.wayang.core.api.Configuration;
@@ -37,17 +47,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Function;
-
 /**
  * Java implementation of the {@link CoGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCollectOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCollectOperator.java
index 10ddfa6..32bfde5 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCollectOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCollectOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -34,12 +39,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
 /**
  * Converts {@link StreamChannel} into a {@link CollectionChannel}
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCollectionSource.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCollectionSource.java
index 7020349..543d6d6 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCollectionSource.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCollectionSource.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -30,10 +33,6 @@
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * This is execution operator implements the {@link TextFileSource}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCountOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCountOperator.java
index 0cdf1fd..9018599 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCountOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaCountOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.operators.CountOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -31,11 +35,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Java implementation of the {@link CountOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDistinctOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDistinctOperator.java
index 2f43c83..714087a 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDistinctOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDistinctOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.operators.DistinctOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -31,11 +35,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Java implementation of the {@link DistinctOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDoWhileOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDoWhileOperator.java
index d1a3659..b2556a9 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDoWhileOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDoWhileOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.Predicate;
 import org.apache.wayang.basic.operators.DoWhileOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.PredicateDescriptor;
@@ -35,13 +41,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Predicate;
-
 /**
  * Java implementation of the {@link DoWhileOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaExecutionOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaExecutionOperator.java
index d6b2ae3..cee674c 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaExecutionOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaExecutionOperator.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Collection;
+import java.util.stream.Stream;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -30,9 +32,6 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.stream.Stream;
-
 /**
  * Execution operator for the Java platform.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaFilterOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaFilterOperator.java
index 757220e..1d1c3f2 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaFilterOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaFilterOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.Predicate;
 import org.apache.wayang.basic.operators.FilterOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.PredicateDescriptor;
@@ -35,13 +41,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Predicate;
-
 /**
  * Java implementation of the {@link FilterOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaFlatMapOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaFlatMapOperator.java
index 3c101ad..1d3590b 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaFlatMapOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaFlatMapOperator.java
@@ -18,6 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.Spliterator;
+import java.util.Spliterators;
+import java.util.function.Function;
+import java.util.stream.StreamSupport;
 import org.apache.wayang.basic.operators.FlatMapOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FlatMapDescriptor;
@@ -35,16 +44,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.Spliterator;
-import java.util.Spliterators;
-import java.util.function.Function;
-import java.util.stream.StreamSupport;
-
 /**
  * Java implementation of the {@link FlatMapOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaGlobalMaterializedGroupOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaGlobalMaterializedGroupOperator.java
index 1fffb1d..e66fffe 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaGlobalMaterializedGroupOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaGlobalMaterializedGroupOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.operators.GlobalMaterializedGroupOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -29,11 +33,6 @@
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Java implementation of the {@link GlobalMaterializedGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaGlobalReduceOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaGlobalReduceOperator.java
index afe5e7e..b11907b 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaGlobalReduceOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaGlobalReduceOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.BinaryOperator;
 import org.apache.wayang.basic.operators.GlobalReduceOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.ReduceDescriptor;
@@ -35,13 +41,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.BinaryOperator;
-
 /**
  * Java implementation of the {@link GlobalReduceOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaIntersectOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaIntersectOperator.java
index 1019b4b..0b2347b 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaIntersectOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaIntersectOperator.java
@@ -18,6 +18,14 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.operators.IntersectOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
@@ -33,15 +41,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
 /**
  * Java implementation of the {@link IntersectOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaJoinOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaJoinOperator.java
index 7bd0f36..10e8f20 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaJoinOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaJoinOperator.java
@@ -18,6 +18,16 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.JoinOperator;
 import org.apache.wayang.core.api.Configuration;
@@ -37,17 +47,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.stream.Stream;
-
 /**
  * Java implementation of the {@link JoinOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLocalCallbackSink.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLocalCallbackSink.java
index 8e99e18..b2f16df 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLocalCallbackSink.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLocalCallbackSink.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.java.operators;
 
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.function.Consumer;
 import org.apache.wayang.basic.operators.LocalCallbackSink;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -31,12 +36,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.io.Serializable;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.function.Consumer;
-
 /**
  * Implementation of the {@link LocalCallbackSink} operator for the Java platform.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLoopOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLoopOperator.java
index 5cd4e93..663e751 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLoopOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLoopOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.Predicate;
 import org.apache.wayang.basic.operators.LoopOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.PredicateDescriptor;
@@ -35,13 +41,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Predicate;
-
 /**
  * Java implementation of the {@link LoopOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMapOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMapOperator.java
index 62fe702..4109e8e 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMapOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMapOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.Function;
 import org.apache.wayang.basic.operators.MapOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.TransformationDescriptor;
@@ -35,13 +41,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Function;
-
 /**
  * Java implementation of the {@link org.apache.wayang.basic.operators.MapOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMapPartitionsOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMapPartitionsOperator.java
index 5a6ebc2..b0cc455 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMapPartitionsOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMapPartitionsOperator.java
@@ -18,6 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.Spliterator;
+import java.util.Spliterators;
+import java.util.function.Function;
+import java.util.stream.StreamSupport;
 import org.apache.wayang.basic.operators.MapPartitionsOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.MapPartitionsDescriptor;
@@ -36,16 +45,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.Spliterator;
-import java.util.Spliterators;
-import java.util.function.Function;
-import java.util.stream.StreamSupport;
-
 /**
  * Java implementation of the {@link MapPartitionsOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMaterializedGroupByOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMaterializedGroupByOperator.java
index e4aae19..4161d98 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMaterializedGroupByOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaMaterializedGroupByOperator.java
@@ -18,6 +18,14 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 import org.apache.wayang.basic.operators.MaterializedGroupByOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.TransformationDescriptor;
@@ -35,15 +43,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
 /**
  * Java implementation of the {@link MaterializedGroupByOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaObjectFileSink.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaObjectFileSink.java
index ff45db6..2ab2e7e 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaObjectFileSink.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaObjectFileSink.java
@@ -18,18 +18,28 @@
 
 package org.apache.wayang.java.operators;
 
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.UncheckedIOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.function.BiConsumer;
+import java.util.stream.Stream;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.SequenceFile;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.basic.channels.FileChannel;
+import org.apache.wayang.basic.operators.ObjectFileSink;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.UnarySink;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
@@ -40,34 +50,24 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.platform.JavaPlatform;
-import org.apache.logging.log4j.LogManager;
-
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.io.UncheckedIOException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.function.BiConsumer;
-import java.util.stream.Stream;
 
 /**
  * {@link Operator} for the {@link JavaPlatform} that creates a sequence file. Consistent with Spark's object files.
  *
  * @see JavaObjectFileSource
  */
-public class JavaObjectFileSink<T> extends UnarySink<T> implements JavaExecutionOperator {
+public class JavaObjectFileSink<T> extends ObjectFileSink<T> implements JavaExecutionOperator {
 
-    private final String targetPath;
+    public JavaObjectFileSink(ObjectFileSink<T> that) {
+        super(that);
+    }
 
     public JavaObjectFileSink(DataSetType<T> type) {
         this(null, type);
     }
 
     public JavaObjectFileSink(String targetPath, DataSetType<T> type) {
-        super(type);
-        this.targetPath = targetPath;
+        super(targetPath, type);
     }
 
     @Override
@@ -79,9 +79,15 @@
         assert inputs.length == this.getNumInputs();
 
         // Prepare Hadoop's SequenceFile.Writer.
-        FileChannel.Instance output = (FileChannel.Instance) outputs[0];
-        final String path = output.addGivenOrTempPath(this.targetPath, javaExecutor.getCompiler().getConfiguration());
-
+        final String path;
+        FileChannel.Instance output;
+        if(outputs.length == 1) {
+            output = (FileChannel.Instance) outputs[0];
+            path = output.addGivenOrTempPath(this.textFileUrl,
+                javaExecutor.getCompiler().getConfiguration());
+        }else{
+            path = this.textFileUrl;
+        }
         final SequenceFile.Writer.Option fileOption = SequenceFile.Writer.file(new Path(path));
         final SequenceFile.Writer.Option keyClassOption = SequenceFile.Writer.keyClass(NullWritable.class);
         final SequenceFile.Writer.Option valueClassOption = SequenceFile.Writer.valueClass(BytesWritable.class);
@@ -90,6 +96,9 @@
             // Chunk the stream of data quanta and write the chunks into the sequence file.
             StreamChunker streamChunker = new StreamChunker(10, (chunk, size) -> {
                 if (chunk.length != size) {
+                    System.out.println("heer");
+                    System.out.println(chunk.length);
+                    System.out.println(size);
                     chunk = Arrays.copyOfRange(chunk, 0, size);
                 }
                 try {
@@ -119,7 +128,7 @@
 
     @Override
     protected ExecutionOperator createCopy() {
-        return new JavaObjectFileSink<>(this.targetPath, this.getType());
+        return new JavaObjectFileSink<>(this.textFileUrl, this.getType());
     }
 
     @Override
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaObjectFileSource.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaObjectFileSource.java
index 4973ffd..57cde98 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaObjectFileSource.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaObjectFileSource.java
@@ -18,30 +18,6 @@
 
 package org.apache.wayang.java.operators;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.Validate;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.io.BytesWritable;
-import org.apache.hadoop.io.NullWritable;
-import org.apache.hadoop.io.SequenceFile;
-import org.apache.wayang.basic.channels.FileChannel;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.optimizer.OptimizationContext;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.UnarySource;
-import org.apache.wayang.core.platform.ChannelDescriptor;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.core.util.Tuple;
-import org.apache.wayang.core.util.fs.FileSystems;
-import org.apache.wayang.java.channels.StreamChannel;
-import org.apache.wayang.java.execution.JavaExecutor;
-import org.apache.wayang.java.platform.JavaPlatform;
-import org.apache.logging.log4j.LogManager;
-
 import java.io.ByteArrayInputStream;
 import java.io.Closeable;
 import java.io.IOException;
@@ -54,23 +30,46 @@
 import java.util.Spliterators;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.Validate;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.io.BytesWritable;
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.io.SequenceFile;
+import org.apache.logging.log4j.LogManager;
+import org.apache.wayang.basic.channels.FileChannel;
+import org.apache.wayang.basic.operators.ObjectFileSource;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.optimizer.OptimizationContext;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
+import org.apache.wayang.core.plan.wayangplan.Operator;
+import org.apache.wayang.core.platform.ChannelDescriptor;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.fs.FileSystems;
+import org.apache.wayang.java.channels.StreamChannel;
+import org.apache.wayang.java.execution.JavaExecutor;
+import org.apache.wayang.java.platform.JavaPlatform;
 
 /**
  * {@link Operator} for the {@link JavaPlatform} that creates a sequence file. Consistent with Spark's object files.
  *
  * @see JavaObjectFileSink
  */
-public class JavaObjectFileSource<T> extends UnarySource<T> implements JavaExecutionOperator {
+public class JavaObjectFileSource<T> extends ObjectFileSource<T> implements JavaExecutionOperator {
 
-    private final String sourcePath;
-
-    public JavaObjectFileSource(DataSetType<T> type) {
-        this(null, type);
+    public JavaObjectFileSource(ObjectFileSource<T> that) {
+        super(that);
     }
 
+    public JavaObjectFileSource(DataSetType<T> type) {
+        super(null, type);
+    }
     public JavaObjectFileSource(String sourcePath, DataSetType<T> type) {
-        super(type);
-        this.sourcePath = sourcePath;
+        super(sourcePath, type);
     }
 
     @Override
@@ -83,12 +82,12 @@
 
         SequenceFileIterator sequenceFileIterator;
         final String path;
-        if (this.sourcePath == null) {
+        if (this.getInputUrl() == null) {
             final FileChannel.Instance input = (FileChannel.Instance) inputs[0];
             path = input.getSinglePath();
         } else {
             assert inputs.length == 0;
-            path = this.sourcePath;
+            path = this.getInputUrl();
         }
         try {
             final String actualInputPath = FileSystems.findActualSingleInputPath(path);
@@ -110,7 +109,7 @@
 
     @Override
     protected ExecutionOperator createCopy() {
-        return new JavaObjectFileSource<>(this.sourcePath, this.getType());
+        return new JavaObjectFileSource<>(this.getInputUrl(), this.getType());
     }
 
     @Override
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaRandomSampleOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaRandomSampleOperator.java
index 528f716..dec83fa 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaRandomSampleOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaRandomSampleOperator.java
@@ -18,6 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.BitSet;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+import java.util.function.IntUnaryOperator;
+import java.util.function.LongUnaryOperator;
+import java.util.function.Predicate;
 import org.apache.wayang.basic.operators.SampleOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -31,16 +40,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.BitSet;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Random;
-import java.util.function.IntUnaryOperator;
-import java.util.function.LongUnaryOperator;
-import java.util.function.Predicate;
-
 /**
  * Java implementation of the {@link JavaRandomSampleOperator}. This sampling method is with replacement (i.e., duplicates may appear in the sample).
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaReduceByOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaReduceByOperator.java
index 6721a6a..156075b 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaReduceByOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaReduceByOperator.java
@@ -18,6 +18,20 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.function.BiConsumer;
+import java.util.function.BinaryOperator;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
 import org.apache.wayang.basic.operators.ReduceByOperator;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.ReduceDescriptor;
@@ -36,21 +50,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.function.BiConsumer;
-import java.util.function.BinaryOperator;
-import java.util.function.Function;
-import java.util.function.Supplier;
-import java.util.stream.Collector;
-import java.util.stream.Collectors;
-
 /**
  * Java implementation of the {@link ReduceByOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaRepeatOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaRepeatOperator.java
index 048f7d2..e807f4c 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaRepeatOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaRepeatOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.operators.DoWhileOperator;
 import org.apache.wayang.basic.operators.RepeatOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -32,11 +36,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Java implementation of the {@link DoWhileOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaReservoirSampleOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaReservoirSampleOperator.java
index f6946e6..809b6a2 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaReservoirSampleOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaReservoirSampleOperator.java
@@ -18,6 +18,16 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+import java.util.function.IntUnaryOperator;
+import java.util.function.LongUnaryOperator;
+import java.util.stream.Collectors;
 import org.apache.wayang.basic.operators.SampleOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -31,17 +41,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Random;
-import java.util.function.IntUnaryOperator;
-import java.util.function.LongUnaryOperator;
-import java.util.stream.Collectors;
-
 /**
  * Java implementation of the {@link JavaReservoirSampleOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaSortOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaSortOperator.java
index 587c0a3..cb3d9a3 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaSortOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaSortOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.function.Function;
 import org.apache.wayang.basic.operators.SortOperator;
 import org.apache.wayang.core.function.TransformationDescriptor;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -32,12 +37,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.function.Function;
-
 /**
  * Java implementation of the {@link SortOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTextFileSink.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTextFileSink.java
index bd7cdcf..3cc88e7 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTextFileSink.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTextFileSink.java
@@ -18,6 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.UncheckedIOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.Function;
 import org.apache.wayang.basic.operators.TextFileSink;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
@@ -38,16 +47,6 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.UncheckedIOException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Function;
-
 /**
  * Implementation fo the {@link TextFileSink} for the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTextFileSource.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTextFileSource.java
index 6d8577f..e75a635 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTextFileSource.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTextFileSource.java
@@ -18,6 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -31,16 +40,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Stream;
-
 /**
  * This is execution operator implements the {@link TextFileSource}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSink.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSink.java
index 61a197c..0e0ee63 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSink.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSink.java
@@ -18,6 +18,14 @@
 
 package org.apache.wayang.java.operators;
 
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.UncheckedIOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.api.exception.WayangException;
@@ -38,15 +46,6 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.UncheckedIOException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * {@link Operator} for the {@link JavaPlatform} that creates a TSV file.
  * Only applicable to tuples with standard datatypes.
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSource.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSource.java
index 2580032..c416216 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSource.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSource.java
@@ -18,7 +18,11 @@
 
 package org.apache.wayang.java.operators;
 
-import org.apache.commons.io.IOUtils;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.data.Tuple2;
@@ -32,26 +36,12 @@
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.util.Tuple;
-import org.apache.wayang.core.util.fs.FileSystem;
 import org.apache.wayang.core.util.fs.FileSystems;
 import org.apache.wayang.core.util.fs.FileUtils;
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.UncheckedIOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Spliterators;
-import java.util.function.Function;
-import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
-
 /**
  * {@link Operator} for the {@link JavaPlatform} that creates a sequence file. Consistent with Spark's object files.
  *
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaUnionAllOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaUnionAllOperator.java
index 61cad25..8bfa5f7 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaUnionAllOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaUnionAllOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.java.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.operators.UnionAllOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -31,12 +36,6 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Stream;
-
 /**
  * Java implementation of the {@link UnionAllOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/graph/JavaPageRankOperator.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/graph/JavaPageRankOperator.java
index d06c1b5..677dfa9 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/graph/JavaPageRankOperator.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/graph/JavaPageRankOperator.java
@@ -18,9 +18,13 @@
 
 package org.apache.wayang.java.operators.graph;
 
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.function.BiFunction;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.PageRankOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -34,14 +38,6 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Spliterators;
-import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
-
 /**
  * Java implementation of the {@link PageRankOperator}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaBasicPlugin.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaBasicPlugin.java
index 4771401..7babf3d 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaBasicPlugin.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaBasicPlugin.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.plugin;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -28,9 +30,6 @@
 import org.apache.wayang.java.mapping.Mappings;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} enables to use the basic Wayang {@link Operator}s on the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaChannelConversionPlugin.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaChannelConversionPlugin.java
index 346b541..b763eef 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaChannelConversionPlugin.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaChannelConversionPlugin.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.plugin;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -26,9 +28,6 @@
 import org.apache.wayang.java.channels.ChannelConversions;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} is a subset of the {@link JavaBasicPlugin} and only ships with the {@link ChannelConversion}s.
  */
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaGraphPlugin.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaGraphPlugin.java
index f581cac..dcac252 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaGraphPlugin.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/plugin/JavaGraphPlugin.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.java.plugin;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -27,9 +29,6 @@
 import org.apache.wayang.java.mapping.Mappings;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} enables to use the basic Wayang {@link Operator}s on the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/execution/JavaExecutorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/execution/JavaExecutorTest.java
index 39f76f4..c5c5721 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/execution/JavaExecutorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/execution/JavaExecutorTest.java
@@ -18,8 +18,9 @@
 
 package org.apache.wayang.java.execution;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
 import org.apache.wayang.core.api.WayangContext;
 import org.apache.wayang.core.function.ExecutionContext;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -33,10 +34,8 @@
 import org.apache.wayang.java.operators.JavaDoWhileOperator;
 import org.apache.wayang.java.operators.JavaLocalCallbackSink;
 import org.apache.wayang.java.operators.JavaMapOperator;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link JavaExecutor}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCartesianOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCartesianOperatorTest.java
index 05c8e7f..a81f997 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCartesianOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCartesianOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaCartesianOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCoGroupOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCoGroupOperatorTest.java
index 64b7451..d9886b0 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCoGroupOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCoGroupOperatorTest.java
@@ -18,22 +18,21 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.basic.function.ProjectionDescriptor;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.core.types.DataUnitType;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.wayang.core.util.Tuple;
-import org.apache.wayang.java.channels.CollectionChannel;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.basic.function.ProjectionDescriptor;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.core.types.DataUnitType;
+import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangCollections;
+import org.apache.wayang.java.channels.CollectionChannel;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaJoinOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCollectionSourceTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCollectionSourceTest.java
index 4446430..901bac8 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCollectionSourceTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCollectionSourceTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.stream.Collectors;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link JavaCollectionSource}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCountOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCountOperatorTest.java
index a7af4ad..f2563d7 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCountOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaCountOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaCountOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaDistinctOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaDistinctOperatorTest.java
index 6c9632b..1360261 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaDistinctOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaDistinctOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaDistinctOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaExecutionOperatorTestBase.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaExecutionOperatorTestBase.java
index 67c7ab4..fbaafde 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaExecutionOperatorTestBase.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaExecutionOperatorTestBase.java
@@ -18,7 +18,11 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.BeforeClass;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collection;
+import java.util.stream.Stream;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -33,12 +37,7 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.platform.JavaPlatform;
 import org.apache.wayang.java.test.ChannelFactory;
-
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.BeforeClass;
 
 /**
  * Superclass for tests of {@link JavaExecutionOperator}s.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaFilterOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaFilterOperatorTest.java
index 504d9c9..90205d6 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaFilterOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaFilterOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.function.PredicateDescriptor;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.function.PredicateDescriptor;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaFilterOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaGlobalMaterializedGroupOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaGlobalMaterializedGroupOperatorTest.java
index b63b623..f362d07 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaGlobalMaterializedGroupOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaGlobalMaterializedGroupOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.CollectionChannel;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.CollectionChannel;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaGlobalReduceOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaGlobalReduceOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaGlobalReduceOperatorTest.java
index 54023f1..3048fe7 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaGlobalReduceOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaGlobalReduceOperatorTest.java
@@ -18,18 +18,17 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.function.ReduceDescriptor;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.java.channels.JavaChannelInstance;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaGlobalReduceOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaJoinOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaJoinOperatorTest.java
index 65cb5f7..6ca2856 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaJoinOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaJoinOperatorTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.basic.function.ProjectionDescriptor;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.core.types.DataUnitType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.basic.function.ProjectionDescriptor;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.core.types.DataUnitType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaJoinOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaLocalCallbackSinkTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaLocalCallbackSinkTest.java
index fd23e49..d36d4f5 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaLocalCallbackSinkTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaLocalCallbackSinkTest.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaLocalCallbackSink}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaMaterializedGroupByOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaMaterializedGroupByOperatorTest.java
index 4aa76d6..969fb46 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaMaterializedGroupByOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaMaterializedGroupByOperatorTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.basic.function.ProjectionDescriptor;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.core.types.DataUnitType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.basic.function.ProjectionDescriptor;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.core.types.DataUnitType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaReduceByOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaObjectFileSinkTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaObjectFileSinkTest.java
index e23cfae..a5a7533 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaObjectFileSinkTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaObjectFileSinkTest.java
@@ -18,18 +18,17 @@
 
 package org.apache.wayang.java.operators;
 
-import org.apache.commons.lang3.Validate;
-import org.junit.Test;
-import org.apache.wayang.basic.channels.FileChannel;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.types.DataSetType;
-
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Stream;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.basic.channels.FileChannel;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.types.DataSetType;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaObjectFileSink}.
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 d5fdd55..517ae1a 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
@@ -18,13 +18,6 @@
 
 package org.apache.wayang.java.operators;
 
-import org.apache.commons.lang3.Validate;
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-import org.apache.wayang.java.execution.JavaExecutor;
-
 import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
@@ -32,6 +25,12 @@
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.apache.wayang.java.execution.JavaExecutor;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaObjectFileSource}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaRandomSampleOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaRandomSampleOperatorTest.java
index d8e9cd0..7089bba 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaRandomSampleOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaRandomSampleOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaRandomSampleOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaReduceByOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaReduceByOperatorTest.java
index 225f397..b3b1bf3 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaReduceByOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaReduceByOperatorTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.function.ProjectionDescriptor;
 import org.apache.wayang.core.function.ReduceDescriptor;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.java.channels.JavaChannelInstance;
-
-import java.util.Arrays;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaReduceByOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaReservoirSampleOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaReservoirSampleOperatorTest.java
index 66d56a5..d4b98c2 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaReservoirSampleOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaReservoirSampleOperatorTest.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaReservoirSampleOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaSortOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaSortOperatorTest.java
index 3483ab5..597c654 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaSortOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaSortOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.function.TransformationDescriptor;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.function.TransformationDescriptor;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaSortOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaTextFileSinkTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaTextFileSinkTest.java
index 502d9ef..25e1557 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaTextFileSinkTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaTextFileSinkTest.java
@@ -18,10 +18,20 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.function.TransformationDescriptor;
@@ -32,23 +42,10 @@
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.platform.JavaPlatform;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.text.DecimalFormatSymbols;
-import java.text.NumberFormat;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Locale;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaTextFileSink}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaUnionAllOperatorTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaUnionAllOperatorTest.java
index 7f61545..bc25cb7 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaUnionAllOperatorTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaUnionAllOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.java.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaUnionAllOperator}.
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/test/ChannelFactory.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/test/ChannelFactory.java
index 87ee278..7d38951 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/test/ChannelFactory.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/test/ChannelFactory.java
@@ -18,17 +18,16 @@
 
 package org.apache.wayang.java.test;
 
-import org.junit.Before;
+import static org.mockito.Mockito.mock;
+
+import java.util.Collection;
+import java.util.stream.Stream;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.java.execution.JavaExecutor;
-
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import static org.mockito.Mockito.mock;
+import org.junit.Before;
 
 /**
  * Utility to create {@link Channel}s in tests.
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/channels/SqlQueryChannel.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/channels/SqlQueryChannel.java
index f0dae79..ed3d8f3 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/channels/SqlQueryChannel.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/channels/SqlQueryChannel.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.jdbc.channels;
 
+import java.util.Objects;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.plan.executionplan.ExecutionTask;
@@ -30,8 +31,6 @@
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.jdbc.platform.JdbcPlatformTemplate;
 
-import java.util.Objects;
-
 /**
  * Implementation of a {@link Channel} that is given by a SQL query.
  */
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/execution/DatabaseDescriptor.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/execution/DatabaseDescriptor.java
index 0aeb475..5ec9016 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/execution/DatabaseDescriptor.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/execution/DatabaseDescriptor.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.jdbc.execution;
 
-import org.apache.wayang.core.api.exception.WayangException;
-
 import java.sql.Connection;
 import java.sql.DriverManager;
+import org.apache.wayang.core.api.exception.WayangException;
 
 /**
  * This class describes a database.
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/execution/JdbcExecutor.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/execution/JdbcExecutor.java
index af53930..8cb29de 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/execution/JdbcExecutor.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/execution/JdbcExecutor.java
@@ -18,6 +18,19 @@
 
 package org.apache.wayang.jdbc.execution;
 
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.UncheckedIOException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.operators.TableSource;
 import org.apache.wayang.core.api.Job;
@@ -40,20 +53,6 @@
 import org.apache.wayang.jdbc.operators.JdbcFilterOperator;
 import org.apache.wayang.jdbc.operators.JdbcProjectionOperator;
 import org.apache.wayang.jdbc.platform.JdbcPlatformTemplate;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.UncheckedIOException;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
  * {@link Executor} implementation for the {@link JdbcPlatformTemplate}.
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcExecutionOperator.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcExecutionOperator.java
index f6ccccf..2dd6ed9 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcExecutionOperator.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcExecutionOperator.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.jdbc.operators;
 
+import java.sql.Connection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.operators.TableSource;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.jdbc.compiler.FunctionCompiler;
 import org.apache.wayang.jdbc.platform.JdbcPlatformTemplate;
 
-import java.sql.Connection;
-import java.util.Collections;
-import java.util.List;
-
 public interface JdbcExecutionOperator extends ExecutionOperator {
 
     /**
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcFilterOperator.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcFilterOperator.java
index d28253a..c7df655 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcFilterOperator.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcFilterOperator.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.jdbc.operators;
 
+import java.sql.Connection;
+import java.util.Optional;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.operators.FilterOperator;
 import org.apache.wayang.core.api.Configuration;
@@ -26,9 +28,6 @@
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimators;
 import org.apache.wayang.jdbc.compiler.FunctionCompiler;
 
-import java.sql.Connection;
-import java.util.Optional;
-
 
 /**
  * Template for JDBC-based {@link FilterOperator}.
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcProjectionOperator.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcProjectionOperator.java
index c8615fa..ef32b7f 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcProjectionOperator.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcProjectionOperator.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.jdbc.operators;
 
+import java.sql.Connection;
+import java.util.Optional;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.function.ProjectionDescriptor;
 import org.apache.wayang.basic.operators.MapOperator;
@@ -27,9 +29,6 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.jdbc.compiler.FunctionCompiler;
 
-import java.sql.Connection;
-import java.util.Optional;
-
 /**
  * Projects the fields of {@link Record}s.
  */
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcTableSource.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcTableSource.java
index 2d546de..c3e18dc 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcTableSource.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/JdbcTableSource.java
@@ -18,17 +18,16 @@
 
 package org.apache.wayang.jdbc.operators;
 
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.basic.operators.TableSource;
 import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.jdbc.compiler.FunctionCompiler;
-import org.apache.logging.log4j.LogManager;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
 
 /**
  * PostgreSQL implementation for the {@link TableSource}.
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/SqlToStreamOperator.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/SqlToStreamOperator.java
index 12d77f0..e98a4a4 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/SqlToStreamOperator.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/SqlToStreamOperator.java
@@ -18,6 +18,20 @@
 
 package org.apache.wayang.jdbc.operators;
 
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Spliterator;
+import java.util.Spliterators;
+import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.types.RecordType;
 import org.apache.wayang.core.api.exception.WayangException;
@@ -38,21 +52,6 @@
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 import org.apache.wayang.jdbc.channels.SqlQueryChannel;
 import org.apache.wayang.jdbc.platform.JdbcPlatformTemplate;
-import org.apache.logging.log4j.LogManager;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Spliterator;
-import java.util.Spliterators;
-import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
 
 /**
  * This {@link Operator} converts {@link SqlQueryChannel}s to {@link StreamChannel}s.
diff --git a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/platform/JdbcPlatformTemplate.java b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/platform/JdbcPlatformTemplate.java
index a5d7709..363f92f 100644
--- a/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/platform/JdbcPlatformTemplate.java
+++ b/wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/platform/JdbcPlatformTemplate.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.jdbc.platform;
 
+import java.sql.Connection;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.costs.LoadProfileToTimeConverter;
 import org.apache.wayang.core.optimizer.costs.LoadToTimeConverter;
@@ -30,8 +31,6 @@
 import org.apache.wayang.jdbc.execution.DatabaseDescriptor;
 import org.apache.wayang.jdbc.execution.JdbcExecutor;
 
-import java.sql.Connection;
-
 /**
  * {@link Platform} implementation for a JDBC-accessible database.
  */
diff --git a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/execution/JdbcExecutorTest.java b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/execution/JdbcExecutorTest.java
index 0a6e952..f351107 100644
--- a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/execution/JdbcExecutorTest.java
+++ b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/execution/JdbcExecutorTest.java
@@ -18,8 +18,11 @@
 
 package org.apache.wayang.jdbc.execution;
 
-import org.junit.Assert;
-import org.junit.Test;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.sql.SQLException;
+import java.util.Collections;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
@@ -38,12 +41,8 @@
 import org.apache.wayang.jdbc.test.HsqldbPlatform;
 import org.apache.wayang.jdbc.test.HsqldbProjectionOperator;
 import org.apache.wayang.jdbc.test.HsqldbTableSource;
-
-import java.sql.SQLException;
-import java.util.Collections;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JdbcExecutor}.
diff --git a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/JdbcTableSourceTest.java b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/JdbcTableSourceTest.java
index aea6fc1..6d9d4dc 100644
--- a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/JdbcTableSourceTest.java
+++ b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/JdbcTableSourceTest.java
@@ -19,11 +19,15 @@
 package org.apache.wayang.jdbc.operators;
 
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
 import org.apache.wayang.commons.util.profiledb.instrumentation.StopWatch;
 import org.apache.wayang.commons.util.profiledb.model.Experiment;
 import org.apache.wayang.commons.util.profiledb.model.Subject;
-import org.junit.Assert;
-import org.junit.Test;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -31,13 +35,8 @@
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.jdbc.test.HsqldbPlatform;
 import org.apache.wayang.jdbc.test.HsqldbTableSource;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SqlToStreamOperator}.
diff --git a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/OperatorTestBase.java b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/OperatorTestBase.java
index eda04e5..58ba6da 100644
--- a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/OperatorTestBase.java
+++ b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/OperatorTestBase.java
@@ -18,7 +18,9 @@
 
 package org.apache.wayang.jdbc.operators;
 
-import org.junit.BeforeClass;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -31,9 +33,7 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.BeforeClass;
 
 /**
  * Test base for {@link JdbcExecutionOperator}s and other {@link ExecutionOperator}s in this module.
diff --git a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/SqlToStreamOperatorTest.java b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/SqlToStreamOperatorTest.java
index affd236..fd57821 100644
--- a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/SqlToStreamOperatorTest.java
+++ b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/operators/SqlToStreamOperatorTest.java
@@ -18,8 +18,15 @@
 
 package org.apache.wayang.jdbc.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
@@ -37,16 +44,8 @@
 import org.apache.wayang.jdbc.channels.SqlQueryChannel;
 import org.apache.wayang.jdbc.test.HsqldbFilterOperator;
 import org.apache.wayang.jdbc.test.HsqldbPlatform;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SqlToStreamOperator}.
diff --git a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbFilterOperator.java b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbFilterOperator.java
index 2878f2a..925ed1b 100644
--- a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbFilterOperator.java
+++ b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbFilterOperator.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.jdbc.test;
 
+import java.util.List;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.jdbc.operators.JdbcFilterOperator;
 
-import java.util.List;
-
 /**
  * Test implementation of {@link JdbcFilterOperator}.
  */
diff --git a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbProjectionOperator.java b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbProjectionOperator.java
index 3f7bc7e..f5ce3bc 100644
--- a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbProjectionOperator.java
+++ b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbProjectionOperator.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.jdbc.test;
 
+import java.util.List;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.jdbc.operators.JdbcFilterOperator;
 import org.apache.wayang.jdbc.operators.JdbcProjectionOperator;
 
-import java.util.List;
-
 /**
  * Test implementation of {@link JdbcFilterOperator}.
  */
diff --git a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbTableSource.java b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbTableSource.java
index 72f9fe5..312b82b 100644
--- a/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbTableSource.java
+++ b/wayang-platforms/wayang-jdbc-template/src/test/java/org/apache/wayang/jdbc/test/HsqldbTableSource.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.jdbc.test;
 
+import java.util.List;
 import org.apache.wayang.basic.operators.TableSource;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.jdbc.operators.JdbcFilterOperator;
 import org.apache.wayang.jdbc.operators.JdbcTableSource;
 
-import java.util.List;
-
 /**
  * Test implementation of {@link JdbcFilterOperator}.
  */
diff --git a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/channels/ChannelConversions.java b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/channels/ChannelConversions.java
index 8134b6c..af0077c 100644
--- a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/channels/ChannelConversions.java
+++ b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/channels/ChannelConversions.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.postgres.channels;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
 import org.apache.wayang.core.optimizer.channels.DefaultChannelConversion;
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.jdbc.operators.SqlToStreamOperator;
 import org.apache.wayang.postgres.platform.PostgresPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Register for the {@link ChannelConversion}s supported for this platform.
  */
diff --git a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/FilterMapping.java b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/FilterMapping.java
index 7a38724..16a4c42 100644
--- a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/FilterMapping.java
+++ b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/FilterMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.postgres.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.operators.FilterOperator;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.postgres.operators.PostgresFilterOperator;
 import org.apache.wayang.postgres.platform.PostgresPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 
 /**
  * Mapping from {@link FilterOperator} to {@link PostgresFilterOperator}.
diff --git a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/Mappings.java b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/Mappings.java
index 56e8ff6..a20855a 100644
--- a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/Mappings.java
+++ b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/Mappings.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.postgres.mapping;
 
-import org.apache.wayang.core.mapping.Mapping;
-
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.core.mapping.Mapping;
 
 /**
  * Register for the {@link Mapping}s supported for this platform.
diff --git a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/ProjectionMapping.java b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/ProjectionMapping.java
index 0fae1a8..1ebe48b 100644
--- a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/ProjectionMapping.java
+++ b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/mapping/ProjectionMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.postgres.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.function.ProjectionDescriptor;
 import org.apache.wayang.basic.operators.MapOperator;
@@ -30,9 +32,6 @@
 import org.apache.wayang.postgres.operators.PostgresProjectionOperator;
 import org.apache.wayang.postgres.platform.PostgresPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * /**
  * Mapping from {@link MapOperator} to {@link PostgresProjectionOperator}.
diff --git a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/operators/PostgresTableSource.java b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/operators/PostgresTableSource.java
index 15e8332..5090080 100644
--- a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/operators/PostgresTableSource.java
+++ b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/operators/PostgresTableSource.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.postgres.operators;
 
+import java.util.List;
 import org.apache.wayang.basic.operators.TableSource;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.jdbc.operators.JdbcTableSource;
 
-import java.util.List;
-
 /**
  * PostgreSQL implementation for the {@link TableSource}.
  */
diff --git a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/plugin/PostgresConversionsPlugin.java b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/plugin/PostgresConversionsPlugin.java
index 3c169a6..8e5f580 100644
--- a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/plugin/PostgresConversionsPlugin.java
+++ b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/plugin/PostgresConversionsPlugin.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.postgres.plugin;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -28,10 +31,6 @@
 import org.apache.wayang.postgres.channels.ChannelConversions;
 import org.apache.wayang.postgres.platform.PostgresPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} enables to use some basic Wayang {@link Operator}s on the {@link PostgresPlatform}.
  */
diff --git a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/plugin/PostgresPlugin.java b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/plugin/PostgresPlugin.java
index edc5c3a..bc61767 100644
--- a/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/plugin/PostgresPlugin.java
+++ b/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/plugin/PostgresPlugin.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.postgres.plugin;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -29,9 +31,6 @@
 import org.apache.wayang.postgres.mapping.Mappings;
 import org.apache.wayang.postgres.platform.PostgresPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-
 /**
  * This {@link Plugin} enables to use some basic Wayang {@link Operator}s on the {@link PostgresPlatform}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/ChannelConversions.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/ChannelConversions.java
index 9f8fca1..7d14c18 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/ChannelConversions.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/ChannelConversions.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.channels;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -34,9 +36,6 @@
 import org.apache.wayang.spark.operators.SparkTsvFileSink;
 import org.apache.wayang.spark.operators.SparkTsvFileSource;
 
-import java.util.Arrays;
-import java.util.Collection;
-
 /**
  * {@link ChannelConversion}s used by the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/RddChannel.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/RddChannel.java
index 7f4f360..01f961b 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/RddChannel.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/RddChannel.java
@@ -18,7 +18,7 @@
 
 package org.apache.wayang.spark.channels;
 
-import org.apache.spark.util.AccumulatorV2;
+import java.util.OptionalLong;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.util.LongAccumulator;
 import org.apache.wayang.core.api.exception.WayangException;
@@ -32,8 +32,6 @@
 import org.apache.wayang.core.util.Actions;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.OptionalLong;
-
 /**
  * Describes the situation where one {@link JavaRDD} is operated on, producing a further {@link JavaRDD}.
  * <p><i>NB: We might be more specific: Distinguish between cached/uncached and pipelined/aggregated.</i></p>
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/BinaryOperatorAdapter.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/BinaryOperatorAdapter.java
index 5ffffda..9dba4cf 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/BinaryOperatorAdapter.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/BinaryOperatorAdapter.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.spark.compiler;
 
-import org.apache.spark.api.java.function.Function2;
-
 import java.util.function.BinaryOperator;
+import org.apache.spark.api.java.function.Function2;
 
 /**
  * Wraps a {@link java.util.function.BinaryOperator} as a {@link Function2}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/ExtendedFlatMapFunctionAdapter.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/ExtendedFlatMapFunctionAdapter.java
index 7040f16..d274f31 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/ExtendedFlatMapFunctionAdapter.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/ExtendedFlatMapFunctionAdapter.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.spark.compiler;
 
+import java.util.Iterator;
 import org.apache.spark.api.java.function.FlatMapFunction;
 import org.apache.spark.api.java.function.Function;
 import org.apache.wayang.core.function.ExecutionContext;
 import org.apache.wayang.core.function.FunctionDescriptor;
 import org.apache.wayang.spark.execution.SparkExecutionContext;
 
-import java.util.Iterator;
-
 /**
  * Implements a {@link FlatMapFunction} that calls {@link org.apache.wayang.core.function.ExtendedFunction#open(ExecutionContext)}
  * of its implementation before delegating the very first {@link Function#call(Object)}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/ExtendedMapPartitionsFunctionAdapter.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/ExtendedMapPartitionsFunctionAdapter.java
index 18871ed..096bf99 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/ExtendedMapPartitionsFunctionAdapter.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/ExtendedMapPartitionsFunctionAdapter.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.spark.compiler;
 
-import org.apache.spark.api.java.function.FlatMapFunction;
-import org.apache.wayang.core.function.FunctionDescriptor;
-import org.apache.wayang.core.util.Iterators;
-import org.apache.wayang.spark.execution.SparkExecutionContext;
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.function.Function;
+import org.apache.spark.api.java.function.FlatMapFunction;
+import org.apache.wayang.core.function.FunctionDescriptor;
+import org.apache.wayang.core.util.Iterators;
+import org.apache.wayang.spark.execution.SparkExecutionContext;
 
 /**
  * Wraps a {@link Function} as a {@link FlatMapFunction}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/FlatMapFunctionAdapter.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/FlatMapFunctionAdapter.java
index 9216fcc..515f782 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/FlatMapFunctionAdapter.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/FlatMapFunctionAdapter.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.spark.compiler;
 
-import org.apache.spark.api.java.function.FlatMapFunction;
-
 import java.util.Iterator;
+import org.apache.spark.api.java.function.FlatMapFunction;
 
 /**
  * Wraps a {@link java.util.function.Function} as a {@link FlatMapFunction}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/FunctionCompiler.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/FunctionCompiler.java
index 2ced813..d0f667d 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/FunctionCompiler.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/FunctionCompiler.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.spark.compiler;
 
+import java.util.Iterator;
+import java.util.function.BinaryOperator;
+import java.util.function.Predicate;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.FlatMapFunction;
 import org.apache.spark.api.java.function.Function;
@@ -34,10 +37,6 @@
 import org.apache.wayang.spark.execution.SparkExecutionContext;
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 
-import java.util.Iterator;
-import java.util.function.BinaryOperator;
-import java.util.function.Predicate;
-
 /**
  * A compiler translates Wayang functions into executable Java functions.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/MapPartitionsFunctionAdapter.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/MapPartitionsFunctionAdapter.java
index 3fb7683..5f2cf3c 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/MapPartitionsFunctionAdapter.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/MapPartitionsFunctionAdapter.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.spark.compiler;
 
-import org.apache.spark.api.java.function.FlatMapFunction;
-import org.apache.wayang.core.util.Iterators;
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.function.Function;
+import org.apache.spark.api.java.function.FlatMapFunction;
+import org.apache.wayang.core.util.Iterators;
 
 /**
  * Wraps a {@link Function} as a {@link FlatMapFunction}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/PredicateAdapter.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/PredicateAdapter.java
index 931d47e..c3f2c5f 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/PredicateAdapter.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/compiler/PredicateAdapter.java
@@ -18,9 +18,8 @@
 
 package org.apache.wayang.spark.compiler;
 
-import org.apache.spark.api.java.function.Function;
-
 import java.util.function.Predicate;
+import org.apache.spark.api.java.function.Function;
 
 /**
  * Wraps a {@link Predicate} as a {@link Function}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutionContext.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutionContext.java
index ab11e05..439dfbe 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutionContext.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutionContext.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.execution;
 
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
 import org.apache.spark.broadcast.Broadcast;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.function.ExecutionContext;
@@ -27,11 +31,6 @@
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * {@link ExecutionContext} implementation for the {@link SparkPlatform}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutor.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutor.java
index 9aab425..5ebcbf8 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutor.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutor.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.spark.execution;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.spark.api.java.JavaSparkContext;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.api.exception.WayangException;
@@ -36,10 +39,6 @@
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * {@link Executor} implementation for the {@link SparkPlatform}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CartesianMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CartesianMapping.java
index 203de34..a755536 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CartesianMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CartesianMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CartesianOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkCartesianOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CartesianOperator} to {@link SparkCartesianOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CoGroupMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CoGroupMapping.java
index 2eabfb4..cf56953 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CoGroupMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CoGroupMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CoGroupOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkCoGroupOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CoGroupOperator} to {@link SparkCoGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CollectionSourceMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CollectionSourceMapping.java
index b648e81..3cb7bb9 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CollectionSourceMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CollectionSourceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkCollectionSource;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CollectionSource} to {@link SparkCollectionSource}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CountMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CountMapping.java
index 2ae19e9..8e4c561 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CountMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/CountMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CountOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkCountOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CountOperator} to {@link SparkCountOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/DistinctMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/DistinctMapping.java
index aa8773d..fe80369 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/DistinctMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/DistinctMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.DistinctOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkDistinctOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link DistinctOperator} to {@link SparkDistinctOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/DoWhileMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/DoWhileMapping.java
index 924c814..41a1982 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/DoWhileMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/DoWhileMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.DoWhileOperator;
 import org.apache.wayang.basic.operators.LoopOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
@@ -31,9 +33,6 @@
 import org.apache.wayang.spark.operators.SparkLoopOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link LoopOperator} to {@link SparkLoopOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/FilterMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/FilterMapping.java
index eeac994..137c576 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/FilterMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/FilterMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.FilterOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.spark.operators.SparkFilterOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link FilterOperator} to {@link SparkFilterOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/FlatMapMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/FlatMapMapping.java
index 1b88b61..2d2d1c2 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/FlatMapMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/FlatMapMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.FlatMapOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkFlatMapOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link FlatMapOperator} to {@link SparkFlatMapOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/GlobalMaterializedGroupMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/GlobalMaterializedGroupMapping.java
index 3c79d70..b4ffff4 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/GlobalMaterializedGroupMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/GlobalMaterializedGroupMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GlobalMaterializedGroupOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkGlobalMaterializedGroupOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link GlobalMaterializedGroupOperator} to {@link SparkGlobalMaterializedGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/GlobalReduceMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/GlobalReduceMapping.java
index 30ea8ba..b08cfd1 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/GlobalReduceMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/GlobalReduceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.GlobalReduceOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkGlobalReduceOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link GlobalReduceOperator} to {@link SparkGlobalReduceOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/IntersectMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/IntersectMapping.java
index 8f5e4da..9c95668 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/IntersectMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/IntersectMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.IntersectOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkIntersectOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link IntersectOperator} to {@link SparkIntersectOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/JoinMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/JoinMapping.java
index a2bbc94..28447f1 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/JoinMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/JoinMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.JoinOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkJoinOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link JoinOperator} to {@link SparkJoinOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/LocalCallbackSinkMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/LocalCallbackSinkMapping.java
index 301246b..ff70576 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/LocalCallbackSinkMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/LocalCallbackSinkMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.LocalCallbackSink;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkLocalCallbackSink;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link LocalCallbackSink} to {@link SparkLocalCallbackSink}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/LoopMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/LoopMapping.java
index d4f3d09..1c236e5 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/LoopMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/LoopMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.LoopOperator;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.spark.operators.SparkLoopOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link LoopOperator} to {@link SparkLoopOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MapMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MapMapping.java
index 6d88bef..f6e267f 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MapMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MapMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MapOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkMapOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MapOperator} to {@link SparkMapOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MapPartitionsMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MapPartitionsMapping.java
index fd33b52..1d4b027 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MapPartitionsMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MapPartitionsMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MapPartitionsOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkMapPartitionsOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MapPartitionsOperator} to {@link SparkMapPartitionsOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/Mappings.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/Mappings.java
index 70ec802..5c455e9 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/Mappings.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/Mappings.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.spark.mapping;
 
-import org.apache.wayang.core.mapping.Mapping;
-import org.apache.wayang.spark.mapping.graph.PageRankMapping;
-
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.spark.mapping.graph.PageRankMapping;
 
 /**
  * Register for {@link Mapping}s for this platform.
@@ -32,6 +31,8 @@
     public static Collection<Mapping> BASIC_MAPPINGS = Arrays.asList(
             new TextFileSourceMapping(),
             new TextFileSinkMapping(),
+            new ObjectFileSinkMapping(),
+            new ObjectFileSourceMapping(),
             new MapMapping(),
             new MapPartitionsMapping(),
             new ReduceByMapping(),
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MaterializedGroupByMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MaterializedGroupByMapping.java
index beca291..f30dad8 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MaterializedGroupByMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/MaterializedGroupByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.MaterializedGroupByOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkMaterializedGroupByOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MaterializedGroupByOperator} to {@link SparkMaterializedGroupByOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ObjectFileSinkMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ObjectFileSinkMapping.java
new file mode 100644
index 0000000..36eab65
--- /dev/null
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ObjectFileSinkMapping.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.spark.mapping;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.apache.wayang.basic.operators.ObjectFileSink;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.core.mapping.OperatorPattern;
+import org.apache.wayang.core.mapping.PlanTransformation;
+import org.apache.wayang.core.mapping.ReplacementSubplanFactory;
+import org.apache.wayang.core.mapping.SubplanPattern;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.spark.operators.SparkObjectFileSink;
+import org.apache.wayang.spark.platform.SparkPlatform;
+
+/**
+ * Mapping from {@link ObjectFileSink} to {@link SparkObjectFileSink}.
+ */
+public class ObjectFileSinkMapping implements Mapping {
+
+    @Override
+    public Collection<PlanTransformation> getTransformations() {
+        return Collections.singleton(new PlanTransformation(
+                this.createSubplanPattern(),
+                this.createReplacementSubplanFactory(),
+                SparkPlatform.getInstance()
+        ));
+    }
+
+    private SubplanPattern createSubplanPattern() {
+        final OperatorPattern operatorPattern = new OperatorPattern<>(
+            "sink",
+            new ObjectFileSink<>(
+                null,
+                DataSetType.none().getDataUnitType().getTypeClass()
+            ),
+            false
+        );
+        return SubplanPattern.createSingleton(operatorPattern);
+    }
+
+    private ReplacementSubplanFactory createReplacementSubplanFactory() {
+        return new ReplacementSubplanFactory.OfSingleOperators<ObjectFileSink<?>>(
+                (matchedOperator, epoch) -> new SparkObjectFileSink<>(matchedOperator).at(epoch)
+        );
+    }
+}
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ObjectFileSourceMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ObjectFileSourceMapping.java
new file mode 100644
index 0000000..f84006f
--- /dev/null
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ObjectFileSourceMapping.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.wayang.spark.mapping;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.apache.wayang.basic.operators.ObjectFileSource;
+import org.apache.wayang.core.mapping.Mapping;
+import org.apache.wayang.core.mapping.OperatorPattern;
+import org.apache.wayang.core.mapping.PlanTransformation;
+import org.apache.wayang.core.mapping.ReplacementSubplanFactory;
+import org.apache.wayang.core.mapping.SubplanPattern;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.spark.operators.SparkObjectFileSource;
+import org.apache.wayang.spark.platform.SparkPlatform;
+
+/**
+ * Mapping from {@link ObjectFileSource} to {@link SparkObjectFileSource}.
+ */
+public class ObjectFileSourceMapping implements Mapping {
+
+    @Override
+    public Collection<PlanTransformation> getTransformations() {
+        return Collections.singleton(new PlanTransformation(
+                this.createSubplanPattern(),
+                this.createReplacementSubplanFactory(),
+                SparkPlatform.getInstance()
+        ));
+    }
+
+    private SubplanPattern createSubplanPattern() {
+        final OperatorPattern operatorPattern = new OperatorPattern(
+            "source",
+            new ObjectFileSource(
+                null,
+                DataSetType.none().getDataUnitType().getTypeClass()
+            ),
+            false
+        );
+        return SubplanPattern.createSingleton(operatorPattern);
+    }
+
+    private ReplacementSubplanFactory createReplacementSubplanFactory() {
+        return new ReplacementSubplanFactory.OfSingleOperators<ObjectFileSource>(
+                (matchedOperator, epoch) -> new SparkObjectFileSource(matchedOperator).at(epoch)
+        );
+    }
+}
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ReduceByMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ReduceByMapping.java
index 6279e4d..66bb249 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ReduceByMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ReduceByMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.ReduceByOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkReduceByOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link ReduceByOperator} to {@link SparkReduceByOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/RepeatMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/RepeatMapping.java
index d36587e..eda7179 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/RepeatMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/RepeatMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.RepeatOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkRepeatOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link RepeatOperator} to {@link SparkRepeatOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SampleMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SampleMapping.java
index fb2d7a1..0d84168 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SampleMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SampleMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.SampleOperator;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.mapping.Mapping;
@@ -31,9 +33,6 @@
 import org.apache.wayang.spark.operators.SparkShufflePartitionSampleOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link SampleOperator} to {@link SparkRandomPartitionSampleOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SortMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SortMapping.java
index 7938c09..0ac9243 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SortMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SortMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.SortOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkSortOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link SortOperator} to {@link SparkSortOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/TextFileSinkMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/TextFileSinkMapping.java
index d43a2b4..2a97fe0 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/TextFileSinkMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/TextFileSinkMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.basic.operators.TextFileSink;
 import org.apache.wayang.core.mapping.Mapping;
@@ -30,9 +32,6 @@
 import org.apache.wayang.spark.operators.SparkTextFileSink;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CollectionSource} to {@link SparkCollectionSource}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/TextFileSourceMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/TextFileSourceMapping.java
index 09063e1..cceec72 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/TextFileSourceMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/TextFileSourceMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.mapping.Mapping;
@@ -29,9 +31,6 @@
 import org.apache.wayang.spark.operators.SparkTextFileSource;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link CollectionSource} to {@link SparkCollectionSource}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/UnionAllMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/UnionAllMapping.java
index e5b5a44..953b555 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/UnionAllMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/UnionAllMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.UnionAllOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkUnionAllOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link UnionAllOperator} to {@link SparkUnionAllOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ZipWithIdMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ZipWithIdMapping.java
index 6ac4f54..90fc928 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ZipWithIdMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/ZipWithIdMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.ZipWithIdOperator;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.operators.SparkZipWithIdOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link ZipWithIdOperator} to {@link SparkZipWithIdOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/graph/PageRankMapping.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/graph/PageRankMapping.java
index a9bc1bb..c78f460 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/graph/PageRankMapping.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/graph/PageRankMapping.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.spark.mapping.graph;
 
+import java.lang.reflect.Constructor;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.operators.PageRankOperator;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.mapping.Mapping;
@@ -28,10 +31,6 @@
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.lang.reflect.Constructor;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link PageRankOperator} to org.apache.wayang.spark.operators.graph.SparkPageRankOperator .
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkBernoulliSampleOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkBernoulliSampleOperator.java
index be041ae..eddb9bb 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkBernoulliSampleOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkBernoulliSampleOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.function.IntUnaryOperator;
+import java.util.function.LongUnaryOperator;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.SampleOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -31,13 +37,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.function.IntUnaryOperator;
-import java.util.function.LongUnaryOperator;
-
 
 /**
  * Spark implementation of the {@link SparkBernoulliSampleOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkBroadcastOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkBroadcastOperator.java
index ce90108..724378c 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkBroadcastOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkBroadcastOperator.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.broadcast.Broadcast;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -31,10 +34,6 @@
 import org.apache.wayang.spark.channels.BroadcastChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Takes care of creating a {@link Broadcast} that can be used later on.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCacheOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCacheOperator.java
index cbf62e2..c3c35e9 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCacheOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCacheOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.core.api.Configuration;
@@ -34,11 +38,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Converts an uncached {@link RddChannel} into a cached {@link RddChannel}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCartesianOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCartesianOperator.java
index 25d8b5b..c56cbec 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCartesianOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCartesianOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.data.Tuple2;
@@ -32,11 +36,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 
 /**
  * Spark implementation of the {@link CartesianOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCoGroupOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCoGroupOperator.java
index 162546b..3038a99 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCoGroupOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCoGroupOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
@@ -38,11 +42,6 @@
 import org.apache.wayang.spark.compiler.FunctionCompiler;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Spark implementation of the {@link JoinOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCollectOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCollectOperator.java
index c237eae..d1e2aad 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCollectOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCollectOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -35,12 +40,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Converts a {@link RddChannel} into a {@link CollectionChannel} of the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCollectionSource.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCollectionSource.java
index 5258733..4d667c1 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCollectionSource.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCollectionSource.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.CollectionSource;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -27,18 +31,13 @@
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
 import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.java.platform.JavaPlatform;
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Provides a {@link Collection} to a Spark job. Can also be used to convert {@link CollectionChannel}s of the
  * {@link JavaPlatform} into {@link RddChannel}s.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCountOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCountOperator.java
index 6356b50..6a8d7dd 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCountOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCountOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.operators.CountOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -30,11 +34,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 
 /**
  * Spark implementation of the {@link CountOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDistinctOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDistinctOperator.java
index b7a870c..01e79b8 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDistinctOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDistinctOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.DistinctOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -30,11 +34,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 
 /**
  * Spark implementation of the {@link DistinctOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDoWhileOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDoWhileOperator.java
index 498daed..351650e 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDoWhileOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDoWhileOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.function.Function;
 import org.apache.wayang.basic.operators.DoWhileOperator;
 import org.apache.wayang.core.api.Configuration;
@@ -36,12 +41,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Spark implementation of the {@link DoWhileOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkExecutionOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkExecutionOperator.java
index 80fb5ab..d5ad4a1 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkExecutionOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkExecutionOperator.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Collection;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -28,8 +29,6 @@
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-
 /**
  * Execution operator for the {@link SparkPlatform}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkFilterOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkFilterOperator.java
index 737061e..94e25fb 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkFilterOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkFilterOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
 import org.apache.wayang.basic.operators.FilterOperator;
@@ -36,12 +41,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Spark implementation of the {@link FilterOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkFlatMapOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkFlatMapOperator.java
index 2a1a28d..3ca612a 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkFlatMapOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkFlatMapOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.FlatMapFunction;
 import org.apache.wayang.basic.operators.FlatMapOperator;
@@ -36,12 +41,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 
 /**
  * Spark implementation of the {@link FlatMapOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkGlobalMaterializedGroupOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkGlobalMaterializedGroupOperator.java
index 75c3620..8b3b92b 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkGlobalMaterializedGroupOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkGlobalMaterializedGroupOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.GlobalMaterializedGroupOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -31,13 +37,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  * Spark implementation of the {@link GlobalMaterializedGroupOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkGlobalReduceOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkGlobalReduceOperator.java
index cf87b5a..c3f9377 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkGlobalReduceOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkGlobalReduceOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function2;
 import org.apache.wayang.basic.operators.GlobalReduceOperator;
@@ -37,12 +42,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Spark implementation of the {@link GlobalReduceOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkIntersectOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkIntersectOperator.java
index 931fc1b..f3444cf 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkIntersectOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkIntersectOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.IntersectOperator;
 import org.apache.wayang.basic.operators.JoinOperator;
@@ -31,11 +35,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Spark implementation of the {@link JoinOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkJoinOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkJoinOperator.java
index cbba24b..4b91f30 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkJoinOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkJoinOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
@@ -39,12 +44,6 @@
 import org.apache.wayang.spark.compiler.FunctionCompiler;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Spark implementation of the {@link JoinOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLocalCallbackSink.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLocalCallbackSink.java
index c909d29..a0ca27d 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLocalCallbackSink.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLocalCallbackSink.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.function.Consumer;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.LocalCallbackSink;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -30,12 +35,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.io.Serializable;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.function.Consumer;
-
 /**
  * Implementation of the {@link LocalCallbackSink} operator for the Spark platform.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLoopOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLoopOperator.java
index b72b3a7..e02b780 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLoopOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLoopOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.function.Function;
 import org.apache.wayang.basic.operators.LoopOperator;
 import org.apache.wayang.core.api.Configuration;
@@ -37,12 +42,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Spark implementation of the {@link LoopOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMapOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMapOperator.java
index 25e6bda..a33c257 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMapOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMapOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
 import org.apache.wayang.basic.operators.MapOperator;
@@ -36,12 +41,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 
 /**
  * Spark implementation of the {@link org.apache.wayang.basic.operators.MapOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMapPartitionsOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMapPartitionsOperator.java
index f13403d..c08d918 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMapPartitionsOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMapPartitionsOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.FlatMapFunction;
 import org.apache.wayang.basic.operators.MapPartitionsOperator;
@@ -36,13 +42,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Optional;
-
 
 /**
  * Spark implementation of the {@link MapPartitionsOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMaterializedGroupByOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMaterializedGroupByOperator.java
index 9c83160..08cb718 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMaterializedGroupByOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkMaterializedGroupByOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
@@ -37,12 +42,6 @@
 import org.apache.wayang.spark.execution.SparkExecutor;
 import scala.Tuple2;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 
 /**
  * Spark implementation of the {@link MaterializedGroupByOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSink.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSink.java
index 7115500..42b1ebb 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSink.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSink.java
@@ -18,11 +18,15 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.basic.channels.FileChannel;
+import org.apache.wayang.basic.operators.ObjectFileSink;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.UnarySink;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
@@ -31,28 +35,24 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.platform.SparkPlatform;
-import org.apache.logging.log4j.LogManager;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
 
 /**
  * {@link Operator} for the {@link SparkPlatform} that creates a sequence file.
  *
  * @see SparkObjectFileSource
  */
-public class SparkObjectFileSink<T> extends UnarySink<T> implements SparkExecutionOperator {
+public class SparkObjectFileSink<T> extends ObjectFileSink<T> implements SparkExecutionOperator {
 
-    private final String targetPath;
+    public SparkObjectFileSink(ObjectFileSink<T> that) {
+        super(that);
+    }
 
     public SparkObjectFileSink(DataSetType<T> type) {
         this(null, type);
     }
 
     public SparkObjectFileSink(String targetPath, DataSetType<T> type) {
-        super(type);
-        this.targetPath = targetPath;
+        super(targetPath, type);
     }
 
     @Override
@@ -64,8 +64,14 @@
         assert inputs.length == this.getNumInputs();
         assert outputs.length <= 1;
 
-        final FileChannel.Instance output = (FileChannel.Instance) outputs[0];
-        final String targetPath = output.addGivenOrTempPath(this.targetPath, sparkExecutor.getConfiguration());
+        final String targetPath;
+        if(outputs.length > 0) {
+            final FileChannel.Instance output = (FileChannel.Instance) outputs[0];
+            targetPath = output.addGivenOrTempPath(this.textFileUrl, sparkExecutor.getConfiguration());
+        }else{
+            targetPath = this.textFileUrl;
+        }
+
         RddChannel.Instance input = (RddChannel.Instance) inputs[0];
 
         input.provideRdd()
@@ -78,7 +84,7 @@
 
     @Override
     protected ExecutionOperator createCopy() {
-        return new SparkObjectFileSink<>(targetPath, this.getType());
+        return new SparkObjectFileSink<>(this.textFileUrl, this.getType());
     }
 
     @Override
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSource.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSource.java
index 55820f3..839903b 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSource.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSource.java
@@ -18,12 +18,17 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.channels.FileChannel;
+import org.apache.wayang.basic.operators.ObjectFileSource;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
 import org.apache.wayang.core.plan.wayangplan.Operator;
-import org.apache.wayang.core.plan.wayangplan.UnarySource;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.platform.lineage.ExecutionLineageNode;
@@ -33,31 +38,26 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.platform.SparkPlatform;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
 
 /**
  * {@link Operator} for the {@link SparkPlatform} that creates a sequence file.
  *
  * @see SparkObjectFileSink
  */
-public class SparkObjectFileSource<T> extends UnarySource<T> implements SparkExecutionOperator {
+public class SparkObjectFileSource<T> extends ObjectFileSource<T> implements SparkExecutionOperator {
 
     private final Logger logger = LogManager.getLogger(this.getClass());
 
-    private final String sourcePath;
+    public SparkObjectFileSource(ObjectFileSource that) {
+        super(that);
+    }
 
     public SparkObjectFileSource(DataSetType<T> type) {
         this(null, type);
     }
 
     public SparkObjectFileSource(String sourcePath, DataSetType<T> type) {
-        super(type);
-        this.sourcePath = sourcePath;
+        super(sourcePath, type);
     }
 
     @Override
@@ -67,9 +67,9 @@
             SparkExecutor sparkExecutor,
             OptimizationContext.OperatorContext operatorContext) {
         final String sourcePath;
-        if (this.sourcePath != null) {
+        if (this.getInputUrl() != null) {
             assert inputs.length == 0;
-            sourcePath = this.sourcePath;
+            sourcePath = this.getInputUrl();
         } else {
             FileChannel.Instance input = (FileChannel.Instance) inputs[0];
             sourcePath = input.getSinglePath();
@@ -86,7 +86,7 @@
 
     @Override
     protected ExecutionOperator createCopy() {
-        return new SparkObjectFileSource<>(this.sourcePath, this.getType());
+        return new SparkObjectFileSource<>(this.getInputUrl(), this.getType());
     }
 
     @Override
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperator.java
index 8333a17..3d0c09c 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperator.java
@@ -18,6 +18,21 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.function.IntUnaryOperator;
+import java.util.function.LongUnaryOperator;
 import org.apache.spark.SparkContext;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.SampleOperator;
@@ -35,22 +50,6 @@
 import scala.collection.JavaConversions;
 import scala.runtime.AbstractFunction1;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Random;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.function.IntUnaryOperator;
-import java.util.function.LongUnaryOperator;
-
 
 /**
  * Spark implementation of the {@link SampleOperator}. Sampling with replacement (i.e., the sample may contain duplicates)
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkReduceByOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkReduceByOperator.java
index 8bf3f33..01dc697 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkReduceByOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkReduceByOperator.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
@@ -40,12 +45,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Spark implementation of the {@link ReduceByOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRepeatOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRepeatOperator.java
index 916f1c0..6e6f96f 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRepeatOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRepeatOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.operators.RepeatOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -29,11 +33,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Spark implementation of the {@link RepeatOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkShufflePartitionSampleOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkShufflePartitionSampleOperator.java
index ca1c36b..8f77106 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkShufflePartitionSampleOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkShufflePartitionSampleOperator.java
@@ -18,6 +18,15 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+import java.util.function.IntUnaryOperator;
+import java.util.function.LongUnaryOperator;
 import org.apache.spark.SparkContext;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function2;
@@ -36,16 +45,6 @@
 import scala.collection.convert.Wrappers;
 import scala.runtime.AbstractFunction1;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Random;
-import java.util.function.IntUnaryOperator;
-import java.util.function.LongUnaryOperator;
-
 
 /**
  * Spark implementation of the {@link SparkShufflePartitionSampleOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkSortOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkSortOperator.java
index 8605541..0de03dd 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkSortOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkSortOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.PairFunction;
@@ -34,11 +38,6 @@
 import org.apache.wayang.spark.compiler.FunctionCompiler;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Spark implementation of the {@link SortOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTextFileSink.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTextFileSink.java
index c20bb01..f3d4559 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTextFileSink.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTextFileSink.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
 import org.apache.wayang.basic.operators.TextFileSink;
@@ -34,11 +38,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-
 /**
  * Implementation of the {@link TextFileSink} operator for the Spark platform.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTextFileSource.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTextFileSource.java
index acf9f1d..fae70c2 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTextFileSource.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTextFileSource.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.TextFileSource;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -30,11 +34,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Provides a {@link Collection} to a Spark job.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSink.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSink.java
index 076fd1b..01cf956 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSink.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSink.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Tuple2;
@@ -34,11 +38,6 @@
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * {@link Operator} for the {@link SparkPlatform} that creates a TSV file.
  * Only applicable to tuples with standard datatypes.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSource.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSource.java
index e611798..f4fe298 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSource.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSource.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.channels.FileChannel;
 import org.apache.wayang.basic.data.Tuple2;
@@ -35,10 +38,6 @@
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * {@link Operator} for the {@link SparkPlatform} that creates a sequence file. Consistent with Spark's object files.
  *
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkUnionAllOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkUnionAllOperator.java
index 7ca4a0d..2b8a192 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkUnionAllOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkUnionAllOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.operators.UnionAllOperator;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -30,11 +34,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 /**
  * Spark implementation of the {@link UnionAllOperator}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkZipWithIdOperator.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkZipWithIdOperator.java
index a5a3f22..43a346c 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkZipWithIdOperator.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkZipWithIdOperator.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.operators;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.basic.data.Tuple2;
@@ -34,11 +38,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
 
 /**
  * Spark implementation of the {@link MapOperator}.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/platform/SparkPlatform.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/platform/SparkPlatform.java
index 9b574af..495b4de 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/platform/SparkPlatform.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/platform/SparkPlatform.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.spark.platform;
 
+import java.util.Collections;
+import java.util.Set;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.spark.SparkConf;
 import org.apache.spark.api.java.JavaSparkContext;
 import org.apache.wayang.basic.plugin.WayangBasic;
@@ -37,11 +41,6 @@
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.operators.SparkCollectionSource;
 import org.apache.wayang.spark.operators.SparkLocalCallbackSink;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Collections;
-import java.util.Set;
 
 /**
  * {@link Platform} for Apache Spark.
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkBasicPlugin.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkBasicPlugin.java
index f4dfae1..9fa5da9 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkBasicPlugin.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkBasicPlugin.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.plugin;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -29,9 +31,6 @@
 import org.apache.wayang.spark.mapping.Mappings;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-
 /**
  * This {@link Plugin} enables to use the basic Wayang {@link Operator}s on the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkConversionPlugin.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkConversionPlugin.java
index f6c4c51..fbf07f2 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkConversionPlugin.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkConversionPlugin.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.spark.plugin;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -27,10 +30,6 @@
 import org.apache.wayang.spark.channels.ChannelConversions;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} enables to create {@link org.apache.spark.rdd.RDD}s.
  */
diff --git a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkGraphPlugin.java b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkGraphPlugin.java
index 2b6514b..d6bb5f0 100644
--- a/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkGraphPlugin.java
+++ b/wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/plugin/SparkGraphPlugin.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.spark.plugin;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -28,9 +30,6 @@
 import org.apache.wayang.spark.mapping.Mappings;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} enables to use the basic Wayang {@link Operator}s on the {@link JavaPlatform}.
  */
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkBernoulliSampleOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkBernoulliSampleOperatorTest.java
index 4de83a0..3ecc2c2 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkBernoulliSampleOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkBernoulliSampleOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.basic.operators.SampleOperator;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkBernoulliSampleOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCartesianOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCartesianOperatorTest.java
index 9d6c4b2..03cb0d7 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCartesianOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCartesianOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkCartesianOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCoGroupOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCoGroupOperatorTest.java
index 5ff68c4..a3e2dc5 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCoGroupOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCoGroupOperatorTest.java
@@ -18,23 +18,22 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.basic.function.ProjectionDescriptor;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.core.types.DataUnitType;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.wayang.core.util.Tuple;
-import org.apache.wayang.spark.channels.RddChannel;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.basic.function.ProjectionDescriptor;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.core.types.DataUnitType;
+import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangCollections;
+import org.apache.wayang.spark.channels.RddChannel;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkJoinOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCollectionSourceTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCollectionSourceTest.java
index 52205cb..a10bde9 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCollectionSourceTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCollectionSourceTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.spark.channels.RddChannel;
-
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.spark.channels.RddChannel;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for the {@link SparkCollectionSource}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCountOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCountOperatorTest.java
index 9d1317c..5f30f75 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCountOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkCountOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.Collection;
+import org.junit.Assert;
+import org.junit.Test;
 
 
 /**
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkDistinctOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkDistinctOperatorTest.java
index 157490a..10a0e6c 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkDistinctOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkDistinctOperatorTest.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkDistinctOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkFilterOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkFilterOperatorTest.java
index 8aacc54..72b84bb 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkFilterOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkFilterOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.core.function.PredicateDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkFilterOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkFlatMapOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkFlatMapOperatorTest.java
index 246a24f..854d73b 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkFlatMapOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkFlatMapOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.core.function.FlatMapDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkFilterOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkGlobalMaterializedGroupOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkGlobalMaterializedGroupOperatorTest.java
index 4cfcbbd..ec6b1bd 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkGlobalMaterializedGroupOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkGlobalMaterializedGroupOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkGlobalMaterializedGroupOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkGlobalReduceOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkGlobalReduceOperatorTest.java
index 9f0e72e..69c38b7 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkGlobalReduceOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkGlobalReduceOperatorTest.java
@@ -18,9 +18,9 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.function.ReduceDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
@@ -29,10 +29,9 @@
 import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkGlobalReduceOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkJoinOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkJoinOperatorTest.java
index ab65150..c9794d5 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkJoinOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkJoinOperatorTest.java
@@ -18,17 +18,16 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.function.ProjectionDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkJoinOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkMapPartitionsOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkMapPartitionsOperatorTest.java
index dee490c..a8611a6 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkMapPartitionsOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkMapPartitionsOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.function.MapPartitionsDescriptor;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.spark.channels.RddChannel;
-
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
+import org.apache.wayang.core.function.MapPartitionsDescriptor;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.spark.channels.RddChannel;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkFilterOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkMaterializedGroupByOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkMaterializedGroupByOperatorTest.java
index 8886cb7..0e73d3b 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkMaterializedGroupByOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkMaterializedGroupByOperatorTest.java
@@ -18,21 +18,20 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.basic.function.ProjectionDescriptor;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.core.types.DataUnitType;
-import org.apache.wayang.spark.channels.RddChannel;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.basic.function.ProjectionDescriptor;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.core.types.DataUnitType;
+import org.apache.wayang.spark.channels.RddChannel;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkMaterializedGroupByOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkObjectFileSinkTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkObjectFileSinkTest.java
index c9a8e2f..75e8491 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkObjectFileSinkTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkObjectFileSinkTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.apache.commons.lang3.Validate;
-import org.junit.Test;
-import org.apache.wayang.basic.channels.FileChannel;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.spark.channels.RddChannel;
-import org.apache.wayang.spark.execution.SparkExecutor;
-
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.basic.channels.FileChannel;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.spark.channels.RddChannel;
+import org.apache.wayang.spark.execution.SparkExecutor;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkObjectFileSink}.
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 20b7dba..0d853ab 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
@@ -18,20 +18,19 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.apache.commons.lang3.Validate;
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.spark.channels.RddChannel;
-import org.apache.wayang.spark.execution.SparkExecutor;
-
 import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.spark.channels.RddChannel;
+import org.apache.wayang.spark.execution.SparkExecutor;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkObjectFileSource}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkOperatorTestBase.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkOperatorTestBase.java
index 7265ccc..a3a8615 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkOperatorTestBase.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkOperatorTestBase.java
@@ -18,8 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collection;
 import org.apache.spark.api.java.JavaSparkContext;
-import org.junit.Before;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -33,11 +36,7 @@
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.platform.SparkPlatform;
 import org.apache.wayang.spark.test.ChannelFactory;
-
-import java.util.Collection;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.Before;
 
 /**
  * Test base for {@link SparkExecutionOperator} tests.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperatorTest.java
index 8e4da05..7f2613c 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkRandomPartitionSampleOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkReduceByOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkReduceByOperatorTest.java
index ff97e7d..6cef162 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkReduceByOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkReduceByOperatorTest.java
@@ -18,8 +18,11 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.function.ProjectionDescriptor;
 import org.apache.wayang.core.function.ReduceDescriptor;
@@ -27,12 +30,8 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkReduceByOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkShufflePartitionSampleOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkShufflePartitionSampleOperatorTest.java
index ee0ec52..f5b16c7 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkShufflePartitionSampleOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkShufflePartitionSampleOperatorTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkShufflePartitionSampleOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkSortOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkSortOperatorTest.java
index 6109fe7..d685960 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkSortOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkSortOperatorTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.core.function.TransformationDescriptor;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkSortOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkTextFileSinkTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkTextFileSinkTest.java
index 57523ba..f164195 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkTextFileSinkTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkTextFileSinkTest.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Test;
-import org.apache.wayang.core.function.TransformationDescriptor;
-import org.apache.wayang.core.platform.ChannelInstance;
-import org.apache.wayang.spark.channels.RddChannel;
-
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Arrays;
+import org.apache.wayang.core.function.TransformationDescriptor;
+import org.apache.wayang.core.platform.ChannelInstance;
+import org.apache.wayang.spark.channels.RddChannel;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkTextFileSink}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkUnionAllOperatorTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkUnionAllOperatorTest.java
index d94059b..90df6cb 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkUnionAllOperatorTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkUnionAllOperatorTest.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.spark.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkUnionAllOperator}.
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/test/ChannelFactory.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/test/ChannelFactory.java
index e83c44f..a7bd9c4 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/test/ChannelFactory.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/test/ChannelFactory.java
@@ -18,7 +18,9 @@
 
 package org.apache.wayang.spark.test;
 
-import org.junit.Before;
+import static org.mockito.Mockito.mock;
+
+import java.util.Collection;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.platform.ChannelDescriptor;
@@ -26,10 +28,7 @@
 import org.apache.wayang.java.channels.CollectionChannel;
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
-
-import java.util.Collection;
-
-import static org.mockito.Mockito.mock;
+import org.junit.Before;
 
 /**
  * Utility to create {@link Channel}s in tests.
diff --git a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/channels/ChannelConversions.java b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/channels/ChannelConversions.java
index ae9fbdf..576c660 100644
--- a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/channels/ChannelConversions.java
+++ b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/channels/ChannelConversions.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.sqlite3.channels;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
 import org.apache.wayang.core.optimizer.channels.DefaultChannelConversion;
 import org.apache.wayang.java.channels.StreamChannel;
 import org.apache.wayang.jdbc.operators.SqlToStreamOperator;
 import org.apache.wayang.sqlite3.platform.Sqlite3Platform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Register for the {@link ChannelConversion}s supported for this platform.
  */
diff --git a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/FilterMapping.java b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/FilterMapping.java
index eeb0ac9..7407110 100644
--- a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/FilterMapping.java
+++ b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/FilterMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.sqlite3.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.operators.FilterOperator;
 import org.apache.wayang.core.mapping.Mapping;
@@ -28,9 +30,6 @@
 import org.apache.wayang.sqlite3.operators.Sqlite3FilterOperator;
 import org.apache.wayang.sqlite3.platform.Sqlite3Platform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link FilterOperator} to {@link Sqlite3FilterOperator}.
  */
diff --git a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/Mappings.java b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/Mappings.java
index 42bfc94..879620e 100644
--- a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/Mappings.java
+++ b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/Mappings.java
@@ -18,10 +18,9 @@
 
 package org.apache.wayang.sqlite3.mapping;
 
-import org.apache.wayang.core.mapping.Mapping;
-
 import java.util.Arrays;
 import java.util.Collection;
+import org.apache.wayang.core.mapping.Mapping;
 
 /**
  * Register for the {@link Mapping}s supported for this platform.
diff --git a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/ProjectionMapping.java b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/ProjectionMapping.java
index 7fc8eee..6085adf 100644
--- a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/ProjectionMapping.java
+++ b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/mapping/ProjectionMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.sqlite3.mapping;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.function.ProjectionDescriptor;
 import org.apache.wayang.basic.operators.MapOperator;
@@ -29,9 +31,6 @@
 import org.apache.wayang.sqlite3.operators.Sqlite3ProjectionOperator;
 import org.apache.wayang.sqlite3.platform.Sqlite3Platform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link MapOperator} to {@link Sqlite3ProjectionOperator}.
  */
diff --git a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/operators/Sqlite3TableSource.java b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/operators/Sqlite3TableSource.java
index cce4163..0703657 100644
--- a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/operators/Sqlite3TableSource.java
+++ b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/operators/Sqlite3TableSource.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.sqlite3.operators;
 
+import java.util.List;
 import org.apache.wayang.basic.operators.TableSource;
 import org.apache.wayang.core.platform.ChannelDescriptor;
 import org.apache.wayang.jdbc.operators.JdbcTableSource;
 import org.apache.wayang.sqlite3.platform.Sqlite3Platform;
 
-import java.util.List;
-
 /**
  * Implementation of the {@link TableSource} for the {@link Sqlite3Platform}.
  */
diff --git a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/plugin/Sqlite3ConversionPlugin.java b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/plugin/Sqlite3ConversionPlugin.java
index 4617c1f..de8aed7 100644
--- a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/plugin/Sqlite3ConversionPlugin.java
+++ b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/plugin/Sqlite3ConversionPlugin.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.sqlite3.plugin;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -27,10 +30,6 @@
 import org.apache.wayang.sqlite3.channels.ChannelConversions;
 import org.apache.wayang.sqlite3.platform.Sqlite3Platform;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * This {@link Plugin} provides {@link ChannelConversion}s from the  {@link Sqlite3Platform}.
  */
diff --git a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/plugin/Sqlite3Plugin.java b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/plugin/Sqlite3Plugin.java
index a3189aa..236837c 100644
--- a/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/plugin/Sqlite3Plugin.java
+++ b/wayang-platforms/wayang-sqlite3/src/main/java/org/apache/wayang/sqlite3/plugin/Sqlite3Plugin.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.sqlite3.plugin;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -29,9 +31,6 @@
 import org.apache.wayang.sqlite3.mapping.Mappings;
 import org.apache.wayang.sqlite3.platform.Sqlite3Platform;
 
-import java.util.Arrays;
-import java.util.Collection;
-
 /**
  * This {@link Plugin} enables to use some basic Wayang {@link Operator}s on the {@link Sqlite3Platform}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/IEJoin.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/IEJoin.java
index 4ea2ee2..1d84bee 100644
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/IEJoin.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/IEJoin.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.iejoin;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -31,11 +35,6 @@
 import org.apache.wayang.spark.Spark;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Provides {@link Plugin}s that enable usage of the {@link IEJoinOperator} and the {@link IESelfJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/Mappings.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/Mappings.java
index 0257599..505396d 100644
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/Mappings.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/Mappings.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.iejoin.mapping;
 
+import java.util.Arrays;
+import java.util.Collection;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.iejoin.mapping.spark.IEJoinMapping;
 import org.apache.wayang.iejoin.mapping.spark.IESelfJoinMapping;
@@ -25,9 +27,6 @@
 import org.apache.wayang.java.platform.JavaPlatform;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Arrays;
-import java.util.Collection;
-
 /**
  * {@link Mapping}s for the {@link IEJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/java/IEJoinMapping.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/java/IEJoinMapping.java
index 4e2791f..300d4fa 100644
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/java/IEJoinMapping.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/java/IEJoinMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.iejoin.mapping.java;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
 import org.apache.wayang.core.mapping.PlanTransformation;
@@ -29,9 +31,6 @@
 import org.apache.wayang.iejoin.operators.JavaIEJoinOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link IEJoinOperator} to {@link JavaIEJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/java/IESelfJoinMapping.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/java/IESelfJoinMapping.java
index 6f4a719..e71d4c2 100644
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/java/IESelfJoinMapping.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/java/IESelfJoinMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.iejoin.mapping.java;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
 import org.apache.wayang.core.mapping.PlanTransformation;
@@ -29,9 +31,6 @@
 import org.apache.wayang.iejoin.operators.JavaIESelfJoinOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link IESelfJoinOperator} to {@link JavaIESelfJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/spark/IEJoinMapping.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/spark/IEJoinMapping.java
index dd8546f..f3ea599 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/spark/IEJoinMapping.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/spark/IEJoinMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.iejoin.mapping.spark;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -32,9 +34,6 @@
 import org.apache.wayang.iejoin.operators.SparkIEJoinOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link IEJoinOperator} to {@link SparkIEJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/spark/IESelfJoinMapping.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/spark/IESelfJoinMapping.java
index 923f3d9..36ec91f 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/spark/IESelfJoinMapping.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/mapping/spark/IESelfJoinMapping.java
@@ -18,6 +18,8 @@
 
 package org.apache.wayang.iejoin.mapping.spark;
 
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.mapping.OperatorPattern;
@@ -32,9 +34,6 @@
 import org.apache.wayang.iejoin.operators.SparkIESelfJoinOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.Collection;
-import java.util.Collections;
-
 /**
  * Mapping from {@link IESelfJoinOperator} to {@link SparkIESelfJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/JavaIEJoinOperator.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/JavaIEJoinOperator.java
index 31a5aad..590a28a 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/JavaIEJoinOperator.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/JavaIEJoinOperator.java
@@ -18,6 +18,14 @@
 
 package org.apache.wayang.iejoin.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.core.function.TransformationDescriptor;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -37,15 +45,6 @@
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 import scala.Tuple2;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
 /**
  * Java implementation of the {@link IEJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/JavaIESelfJoinOperator.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/JavaIESelfJoinOperator.java
index ca5d5fa..a473b53 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/JavaIESelfJoinOperator.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/JavaIESelfJoinOperator.java
@@ -18,6 +18,14 @@
 
 package org.apache.wayang.iejoin.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.core.function.TransformationDescriptor;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
@@ -37,15 +45,6 @@
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 import scala.Tuple2;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
 /**
  * Java implementation of the {@link IESelfJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperator.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperator.java
index 7b719a0..66225a4 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperator.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.iejoin.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
@@ -43,13 +49,6 @@
 import scala.Tuple2;
 import scala.Tuple5;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  * Spark implementation of the {@link   IEJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperator.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperator.java
index 551a624..8599822 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperator.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.iejoin.operators;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.Function;
@@ -43,13 +49,6 @@
 import scala.Tuple2;
 import scala.Tuple5;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  * Spark implementation of the {@link   IESelfJoinOperator}.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/BitSetJoin.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/BitSetJoin.java
index 4c07294..094fbb6 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/BitSetJoin.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/BitSetJoin.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.iejoin.operators.java_helpers;
 
+import java.util.ArrayList;
+import java.util.BitSet;
 import org.apache.wayang.iejoin.data.Data;
 import org.apache.wayang.iejoin.operators.IEJoinMasterOperator;
 import scala.Tuple2;
 
-import java.util.ArrayList;
-import java.util.BitSet;
-
 /**
  * Created by khayyzy on 5/28/16.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/DataComparator.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/DataComparator.java
index b753c5a..48e23b1 100644
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/DataComparator.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/DataComparator.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.iejoin.operators.java_helpers;
 
-import org.apache.wayang.iejoin.data.Data;
-import scala.Tuple2;
-
 import java.io.Serializable;
 import java.util.Comparator;
+import org.apache.wayang.iejoin.data.Data;
+import scala.Tuple2;
 
 /**
  * Created by khayyzy on 5/28/16.
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/extractData.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/extractData.java
index 5db0056..8ecd70f 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/extractData.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/extractData.java
@@ -19,9 +19,8 @@
 package org.apache.wayang.iejoin.operators.java_helpers;
 
 
-import org.apache.wayang.iejoin.data.Data;
-
 import java.util.function.Function;
+import org.apache.wayang.iejoin.data.Data;
 
 /**
  * Created by khayyzy on 5/28/16.
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/myMergeSort.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/myMergeSort.java
index 6834e57..c00603f 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/myMergeSort.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/myMergeSort.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.iejoin.operators.java_helpers;
 
-import org.apache.wayang.iejoin.data.Data;
-import scala.Tuple2;
-
 import java.util.ArrayList;
 import java.util.Comparator;
+import org.apache.wayang.iejoin.data.Data;
+import scala.Tuple2;
 
 /**
  * Created by khayyzy on 5/28/16.
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/revDataComparator.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/revDataComparator.java
index 7e3ed72..ffd6dd8 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/revDataComparator.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/java_helpers/revDataComparator.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.iejoin.operators.java_helpers;
 
-import org.apache.wayang.iejoin.data.Data;
-import scala.Tuple2;
-
 import java.io.Serializable;
 import java.util.Comparator;
+import org.apache.wayang.iejoin.data.Data;
+import scala.Tuple2;
 
 public class revDataComparator<Type0 extends Comparable<Type0>, Type1 extends Comparable<Type1>, Input>
         implements Serializable, Comparator<Tuple2<Data<Type0, Type1>, Input>> {
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/BitSetJoin.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/BitSetJoin.java
index 41e251c..d48778a 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/BitSetJoin.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/BitSetJoin.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.iejoin.operators.spark_helpers;
 
+import java.util.ArrayList;
+import java.util.BitSet;
+import java.util.Iterator;
 import org.apache.spark.api.java.function.PairFlatMapFunction;
 import org.apache.wayang.iejoin.data.Data;
 import org.apache.wayang.iejoin.operators.IEJoinMasterOperator;
 import scala.Tuple2;
 
-import java.util.ArrayList;
-import java.util.BitSet;
-import java.util.Iterator;
-
 /**
  * Created by khayyzy on 5/28/16.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/List2AttributesObjectSkinny.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/List2AttributesObjectSkinny.java
index df3c0f0..5e99740 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/List2AttributesObjectSkinny.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/List2AttributesObjectSkinny.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.iejoin.operators.spark_helpers;
 
+import java.io.Serializable;
 import org.apache.wayang.iejoin.data.Data;
 import scala.Tuple2;
 
-import java.io.Serializable;
-
 /**
  * Created by khayyzy on 5/28/16.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/addUniqueID.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/addUniqueID.java
index 8753b27..6880a47 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/addUniqueID.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/addUniqueID.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.iejoin.operators.spark_helpers;
 
+import java.util.ArrayList;
+import java.util.Iterator;
 import org.apache.spark.api.java.function.Function2;
 import org.apache.wayang.core.util.Copyable;
 import scala.Tuple2;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-
 /**
  * Created by khayyzy on 5/28/16.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/build2ListObject.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/build2ListObject.java
index 5faa693..20d0502 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/build2ListObject.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/build2ListObject.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.iejoin.operators.spark_helpers;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
 import org.apache.spark.api.java.function.Function2;
 import org.apache.wayang.core.util.Copyable;
 import org.apache.wayang.iejoin.data.Data;
 import scala.Tuple2;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-
 /**
  * Created by khayyzy on 5/28/16.
  */
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/myMergeSort.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/myMergeSort.java
index 72cd4ed..bfa02d0 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/myMergeSort.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/myMergeSort.java
@@ -19,9 +19,8 @@
 package org.apache.wayang.iejoin.operators.spark_helpers;
 
 
-import org.apache.wayang.iejoin.data.Data;
-
 import java.util.Comparator;
+import org.apache.wayang.iejoin.data.Data;
 
 /**
  * Created by khayyzy on 5/28/16.
diff --git a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/revDataComparator.java b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/revDataComparator.java
index e5f2fbc..a0c8bb8 100755
--- a/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/revDataComparator.java
+++ b/wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/spark_helpers/revDataComparator.java
@@ -19,10 +19,9 @@
 package org.apache.wayang.iejoin.operators.spark_helpers;
 
 
-import org.apache.wayang.iejoin.data.Data;
-
 import java.io.Serializable;
 import java.util.Comparator;
+import org.apache.wayang.iejoin.data.Data;
 
 public class revDataComparator implements Serializable, Comparator<Data> {
 
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/JavaExecutionOperatorTestBase.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/JavaExecutionOperatorTestBase.java
index 6266505..9f611c5 100644
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/JavaExecutionOperatorTestBase.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/JavaExecutionOperatorTestBase.java
@@ -18,7 +18,11 @@
 
 package org.apache.wayang.iejoin.operators;
 
-import org.junit.BeforeClass;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collection;
+import java.util.stream.Stream;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -31,12 +35,7 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 import org.apache.wayang.java.platform.JavaPlatform;
-
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.BeforeClass;
 
 /**
  * Superclass for tests of {@link JavaExecutionOperator}s.
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/JavaIEJoinOperatorTest.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/JavaIEJoinOperatorTest.java
index 137084a..4f95e5d 100755
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/JavaIEJoinOperatorTest.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/JavaIEJoinOperatorTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.iejoin.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.function.TransformationDescriptor;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.java.channels.JavaChannelInstance;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link JavaIEJoinOperator}.
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest.java
index 503798a..89b0339 100755
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest.java
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.iejoin.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.function.TransformationDescriptor;
@@ -27,9 +27,8 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkIEJoinOperator}.
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest2.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest2.java
index 5c63d86..72a42ab 100755
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest2.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest2.java
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.iejoin.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.function.TransformationDescriptor;
@@ -27,9 +27,8 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkIEJoinOperator}.
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest3.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest3.java
index 2083d25..023d1a0 100755
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest3.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest3.java
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.iejoin.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.function.TransformationDescriptor;
@@ -27,9 +27,8 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkIEJoinOperator}.
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest4.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest4.java
index 9840b51..0d1ff2a 100755
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest4.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperatorTest4.java
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.iejoin.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.function.TransformationDescriptor;
@@ -27,9 +27,8 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkIEJoinOperator}.
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperatorTest.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperatorTest.java
index 8029737..b723b6b 100755
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperatorTest.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperatorTest.java
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.iejoin.operators;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.core.function.TransformationDescriptor;
@@ -27,9 +27,8 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.spark.channels.RddChannel;
-
-import java.util.Arrays;
-import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test suite for {@link SparkIEJoinOperator}.
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkOperatorTestBase.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkOperatorTestBase.java
index aa33376..3fbded0 100644
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkOperatorTestBase.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/operators/SparkOperatorTestBase.java
@@ -18,8 +18,11 @@
 
 package org.apache.wayang.iejoin.operators;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collection;
 import org.apache.spark.api.java.JavaSparkContext;
-import org.junit.Before;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -33,11 +36,7 @@
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 import org.apache.wayang.spark.platform.SparkPlatform;
-
-import java.util.Collection;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import org.junit.Before;
 
 /**
  * Test base for {@link SparkExecutionOperator} tests.
diff --git a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/test/ChannelFactory.java b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/test/ChannelFactory.java
index 424b78d..e068e58 100644
--- a/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/test/ChannelFactory.java
+++ b/wayang-plugins/wayang-iejoin/src/test/java/org/apache/wayang/iejoin/test/ChannelFactory.java
@@ -18,7 +18,10 @@
 
 package org.apache.wayang.iejoin.test;
 
-import org.junit.Before;
+import static org.mockito.Mockito.mock;
+
+import java.util.Collection;
+import java.util.stream.Stream;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.plan.executionplan.Channel;
 import org.apache.wayang.core.platform.ChannelDescriptor;
@@ -28,11 +31,7 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.execution.SparkExecutor;
-
-import java.util.Collection;
-import java.util.stream.Stream;
-
-import static org.mockito.Mockito.mock;
+import org.junit.Before;
 
 /**
  * Utility to create {@link Channel}s in tests.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/data/DataGenerators.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/data/DataGenerators.java
index 034f5ad..237faf2 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/data/DataGenerators.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/data/DataGenerators.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.profiler.data;
 
-import org.apache.commons.lang3.Validate;
-
 import java.io.Serializable;
 import java.util.List;
 import java.util.Random;
 import java.util.function.Supplier;
+import org.apache.commons.lang3.Validate;
 
 /**
  * Utility to create common data generators.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/hardware/DiskProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/hardware/DiskProfiler.java
index f72b37d..9ef965d 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/hardware/DiskProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/hardware/DiskProfiler.java
@@ -18,18 +18,17 @@
 
 package org.apache.wayang.profiler.hardware;
 
-import org.apache.commons.lang.Validate;
-import org.apache.wayang.core.util.Formats;
-import org.apache.wayang.core.util.fs.FileSystem;
-import org.apache.wayang.core.util.fs.FileSystems;
-import org.apache.wayang.profiler.util.ProfilingUtils;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Random;
+import org.apache.commons.lang.Validate;
+import org.apache.wayang.core.util.Formats;
+import org.apache.wayang.core.util.fs.FileSystem;
+import org.apache.wayang.core.util.fs.FileSystems;
+import org.apache.wayang.profiler.util.ProfilingUtils;
 
 /**
  * Profiles the reading and writing speed to some directory.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/BinaryOperatorProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/BinaryOperatorProfiler.java
index c873cb6..1e4274d 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/BinaryOperatorProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/BinaryOperatorProfiler.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.profiler.java;
 
-import org.apache.wayang.core.plan.wayangplan.InputSlot;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-import org.apache.wayang.java.operators.JavaExecutionOperator;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.function.Supplier;
+import org.apache.wayang.core.plan.wayangplan.InputSlot;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.apache.wayang.java.operators.JavaExecutionOperator;
 
 /**
  * {@link OperatorProfiler} specifically for {@link JavaExecutionOperator}s with a single {@link InputSlot}.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/JavaCollectionSourceProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/JavaCollectionSourceProfiler.java
index c8506fb..cc68520 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/JavaCollectionSourceProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/JavaCollectionSourceProfiler.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.profiler.java;
 
-import org.apache.wayang.core.types.DataSetType;
-import org.apache.wayang.java.operators.JavaCollectionSource;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.function.Supplier;
+import org.apache.wayang.core.types.DataSetType;
+import org.apache.wayang.java.operators.JavaCollectionSource;
 
 /**
  * {@link OperatorProfiler} for {@link JavaCollectionSource}s.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/JavaTextFileSourceProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/JavaTextFileSourceProfiler.java
index 0a73a8c..2117752 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/JavaTextFileSourceProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/JavaTextFileSourceProfiler.java
@@ -18,12 +18,11 @@
 
 package org.apache.wayang.profiler.java;
 
-import org.apache.wayang.java.operators.JavaTextFileSource;
-
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
 import java.util.function.Supplier;
+import org.apache.wayang.java.operators.JavaTextFileSource;
 
 /**
  * {@link OperatorProfiler} for sources.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/OperatorProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/OperatorProfiler.java
index c17e6f1..cc4a998 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/OperatorProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/OperatorProfiler.java
@@ -18,6 +18,14 @@
 
 package org.apache.wayang.profiler.java;
 
+import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadMXBean;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.function.Supplier;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
 import org.apache.wayang.core.optimizer.OptimizationContext;
@@ -30,15 +38,6 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 import org.apache.wayang.profiler.util.ProfilingUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.lang.management.ManagementFactory;
-import java.lang.management.ThreadMXBean;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.function.Supplier;
 
 /**
  * Allows to instrument an {@link JavaExecutionOperator}.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/OperatorProfilers.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/OperatorProfilers.java
index d8f9ba3..0dfb9c7 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/OperatorProfilers.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/OperatorProfilers.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.profiler.java;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Random;
+import java.util.function.Supplier;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FlatMapDescriptor;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -41,13 +47,6 @@
 import org.apache.wayang.java.operators.JavaUnionAllOperator;
 import org.apache.wayang.profiler.data.DataGenerators;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Random;
-import java.util.function.Supplier;
-
 /**
  * Utilities to create {@link OperatorProfiler} instances.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/Profiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/Profiler.java
index 1862ec1..535b905 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/Profiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/Profiler.java
@@ -19,6 +19,13 @@
 package org.apache.wayang.profiler.java;
 
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Random;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.commons.util.profiledb.instrumentation.StopWatch;
 import org.apache.wayang.commons.util.profiledb.model.Experiment;
@@ -30,14 +37,6 @@
 import org.apache.wayang.profiler.data.DataGenerators;
 import org.apache.wayang.profiler.util.ProfilingUtils;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Random;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-
 /**
  * Utility to support finding reasonable {@link LoadProfileEstimator}s for {@link JavaExecutionOperator}s.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/SinkProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/SinkProfiler.java
index f162974..8dbce09 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/SinkProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/SinkProfiler.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.profiler.java;
 
-import org.apache.commons.lang3.Validate;
-import org.apache.wayang.java.channels.JavaChannelInstance;
-import org.apache.wayang.java.operators.JavaExecutionOperator;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.function.Supplier;
+import org.apache.commons.lang3.Validate;
+import org.apache.wayang.java.channels.JavaChannelInstance;
+import org.apache.wayang.java.operators.JavaExecutionOperator;
 
 /**
  * {@link OperatorProfiler} implementation for sinks.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/SourceProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/SourceProfiler.java
index d4237bb..2b2548f 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/SourceProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/SourceProfiler.java
@@ -18,13 +18,11 @@
 
 package org.apache.wayang.profiler.java;
 
+import java.util.function.Supplier;
 import org.apache.commons.lang3.Validate;
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.java.channels.JavaChannelInstance;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.function.Supplier;
 
 /**
  * {@link OperatorProfiler} implementation for sinks.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/UnaryOperatorProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/UnaryOperatorProfiler.java
index 09ccb8e..af19c70 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/UnaryOperatorProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/java/UnaryOperatorProfiler.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.profiler.java;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.function.Supplier;
 import org.apache.commons.lang3.Validate;
 import org.apache.wayang.core.plan.wayangplan.InputSlot;
 import org.apache.wayang.java.channels.JavaChannelInstance;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.function.Supplier;
-
 /**
  * {@link OperatorProfiler} specifically for {@link JavaExecutionOperator}s with a single {@link InputSlot}.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicEstimationContext.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicEstimationContext.java
index 5de2354..23c4362 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicEstimationContext.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicEstimationContext.java
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.profiler.log;
 
+import java.util.Collection;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.optimizer.costs.EstimationContext;
 
-import java.util.Collection;
-
 /**
  * {@link EstimationContext} implementation for {@link DynamicLoadEstimator}s.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadEstimator.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadEstimator.java
index 5f77fd0..cf96888 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadEstimator.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadEstimator.java
@@ -18,6 +18,12 @@
 
 package org.apache.wayang.profiler.log;
 
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.function.Function;
+import java.util.function.ToDoubleFunction;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.optimizer.costs.EstimationContext;
 import org.apache.wayang.core.optimizer.costs.LoadEstimate;
@@ -30,13 +36,6 @@
 import org.apache.wayang.core.util.mathex.ExpressionBuilder;
 import org.apache.wayang.core.util.mathex.exceptions.EvaluationException;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.function.Function;
-import java.util.function.ToDoubleFunction;
-
 /**
  * Adjustable {@link LoadProfileEstimator} implementation.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadProfileEstimator.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadProfileEstimator.java
index c45a75e..0024b78 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadProfileEstimator.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadProfileEstimator.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.profiler.log;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
 import org.apache.wayang.core.optimizer.costs.EstimationContext;
 import org.apache.wayang.core.optimizer.costs.LoadProfile;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-
 /**
  * Adjustable {@link LoadProfileEstimator} implementation.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadProfileEstimators.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadProfileEstimators.java
index c487766..0fdca90 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadProfileEstimators.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/DynamicLoadProfileEstimators.java
@@ -20,6 +20,10 @@
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import java.util.Collection;
+import java.util.Collections;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.costs.EstimationContext;
@@ -28,11 +32,6 @@
 import org.apache.wayang.core.optimizer.costs.LoadProfile;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.util.Collection;
-import java.util.Collections;
 
 /**
  * Utility to create {@link DynamicLoadProfileEstimator}s.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizer.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizer.java
index 03645f9..728bc0e 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizer.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizer.java
@@ -18,7 +18,14 @@
 
 package org.apache.wayang.profiler.log;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.function.ToDoubleFunction;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.platform.AtomicExecution;
@@ -29,14 +36,6 @@
 import org.apache.wayang.profiler.log.sampling.Sampler;
 import org.apache.wayang.profiler.log.sampling.TournamentSampler;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.function.ToDoubleFunction;
-
 /**
  * Implementation of the genetic optimization technique for finding good {@link LoadProfileEstimator}s.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizerApp.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizerApp.java
index f091ad8..0918bc3 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizerApp.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizerApp.java
@@ -18,28 +18,6 @@
 
 package org.apache.wayang.profiler.log;
 
-import org.apache.wayang.core.api.Configuration;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
-import org.apache.wayang.core.optimizer.costs.EstimationContext;
-import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
-import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
-import org.apache.wayang.core.platform.AtomicExecution;
-import org.apache.wayang.core.platform.AtomicExecutionGroup;
-import org.apache.wayang.core.platform.PartialExecution;
-import org.apache.wayang.core.platform.Platform;
-import org.apache.wayang.core.profiling.ExecutionLog;
-import org.apache.wayang.core.util.Bitmask;
-import org.apache.wayang.core.util.Formats;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.wayang.core.util.Tuple;
-import org.apache.wayang.java.Java;
-import org.apache.wayang.postgres.Postgres;
-import org.apache.wayang.spark.Spark;
-import org.apache.wayang.sqlite3.Sqlite3;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.PrintStream;
@@ -56,6 +34,27 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.wayang.core.api.Configuration;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimate;
+import org.apache.wayang.core.optimizer.costs.EstimationContext;
+import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
+import org.apache.wayang.core.plan.wayangplan.ExecutionOperator;
+import org.apache.wayang.core.platform.AtomicExecution;
+import org.apache.wayang.core.platform.AtomicExecutionGroup;
+import org.apache.wayang.core.platform.PartialExecution;
+import org.apache.wayang.core.platform.Platform;
+import org.apache.wayang.core.profiling.ExecutionLog;
+import org.apache.wayang.core.util.Bitmask;
+import org.apache.wayang.core.util.Formats;
+import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangCollections;
+import org.apache.wayang.java.Java;
+import org.apache.wayang.postgres.Postgres;
+import org.apache.wayang.spark.Spark;
+import org.apache.wayang.sqlite3.Sqlite3;
 
 /**
  * This app tries to infer good {@link LoadProfileEstimator}s for {@link ExecutionOperator}s using data from an
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/Individual.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/Individual.java
index 4cf8160..2e5ee5f 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/Individual.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/Individual.java
@@ -18,6 +18,11 @@
 
 package org.apache.wayang.profiler.log;
 
+import java.util.Comparator;
+import java.util.Map;
+import java.util.Random;
+import java.util.function.ToDoubleFunction;
+import java.util.stream.DoubleStream;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.costs.EstimationContext;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
@@ -27,12 +32,6 @@
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.util.Bitmask;
 
-import java.util.Comparator;
-import java.util.Map;
-import java.util.Random;
-import java.util.function.ToDoubleFunction;
-import java.util.stream.DoubleStream;
-
 /**
  * Context for the optimization of {@link LoadProfileEstimator}s.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/LogEvaluator.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/LogEvaluator.java
index 05f23fa..8610ef1 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/LogEvaluator.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/LogEvaluator.java
@@ -18,6 +18,17 @@
 
 package org.apache.wayang.profiler.log;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.LinkedList;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.optimizer.ProbabilisticIntervalEstimate;
@@ -28,18 +39,6 @@
 import org.apache.wayang.core.util.Formats;
 import org.apache.wayang.java.platform.JavaPlatform;
 import org.apache.wayang.spark.platform.SparkPlatform;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.LinkedList;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Evaluates a {@link Configuration} on a {@link ExecutionLog}.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/OptimizationSpace.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/OptimizationSpace.java
index 23d6ae4..6ccccdd 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/OptimizationSpace.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/log/OptimizationSpace.java
@@ -18,13 +18,12 @@
 
 package org.apache.wayang.profiler.log;
 
-import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
+import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 
 /**
  * Context for the optimization of {@link LoadProfileEstimator}s.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/BinaryOperatorProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/BinaryOperatorProfiler.java
index e63a177..72bc110 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/BinaryOperatorProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/BinaryOperatorProfiler.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.profiler.spark;
 
+import java.util.function.Supplier;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.platform.ChannelInstance;
@@ -25,8 +26,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 
-import java.util.function.Supplier;
-
 /**
  * {@link SparkOperatorProfiler} implementation for {@link SparkExecutionOperator}s with two inputs and one output.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/Main.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/Main.java
index 8a0d3a7..9e37375 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/Main.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/Main.java
@@ -19,6 +19,13 @@
 package org.apache.wayang.profiler.spark;
 
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Random;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
 import org.apache.wayang.commons.util.profiledb.instrumentation.StopWatch;
 import org.apache.wayang.commons.util.profiledb.model.Experiment;
 import org.apache.wayang.commons.util.profiledb.model.Subject;
@@ -29,14 +36,6 @@
 import org.apache.wayang.profiler.data.DataGenerators;
 import org.apache.wayang.spark.platform.SparkPlatform;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Random;
-import java.util.stream.Collectors;
-import java.util.stream.StreamSupport;
-
 /**
  * Starts a profiling run of Spark.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/OperatorProfilers.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/OperatorProfilers.java
index 384c3a8..a2e9244 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/OperatorProfilers.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/OperatorProfilers.java
@@ -18,6 +18,9 @@
 
 package org.apache.wayang.profiler.spark;
 
+import java.util.ArrayList;
+import java.util.Random;
+import java.util.function.Supplier;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.function.FlatMapDescriptor;
 import org.apache.wayang.core.function.FunctionDescriptor;
@@ -43,10 +46,6 @@
 import org.apache.wayang.spark.operators.SparkTextFileSource;
 import org.apache.wayang.spark.operators.SparkUnionAllOperator;
 
-import java.util.ArrayList;
-import java.util.Random;
-import java.util.function.Supplier;
-
 /**
  * Utilities to create {@link SparkOperatorProfiler} instances.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SinkProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SinkProfiler.java
index 351ce6b..d628368 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SinkProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SinkProfiler.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.profiler.spark;
 
+import java.util.function.Supplier;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.profiler.util.ProfilingUtils;
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 
-import java.util.function.Supplier;
-
 /**
  * {@link SparkOperatorProfiler} implementation for {@link SparkExecutionOperator}s with one input and no outputs.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkCollectionSourceProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkCollectionSourceProfiler.java
index 22368ff..4197c8b 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkCollectionSourceProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkCollectionSourceProfiler.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.profiler.spark;
 
+import java.util.ArrayList;
+import java.util.function.Supplier;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.spark.operators.SparkCollectionSource;
 import org.apache.wayang.spark.operators.SparkTextFileSource;
 
-import java.util.ArrayList;
-import java.util.function.Supplier;
-
 /**
  * {@link SparkOperatorProfiler} for the {@link SparkTextFileSource}.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkOperatorProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkOperatorProfiler.java
index d221deb..c98d092 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkOperatorProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkOperatorProfiler.java
@@ -18,6 +18,15 @@
 
 package org.apache.wayang.profiler.spark;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.function.Supplier;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.DefaultOptimizationContext;
@@ -34,16 +43,6 @@
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 import org.rrd4j.ConsolFun;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.function.Supplier;
 
 /**
  * Allows to instrument an {@link SparkExecutionOperator}.
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkSourceProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkSourceProfiler.java
index 7f35839..63563e6 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkSourceProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkSourceProfiler.java
@@ -18,14 +18,13 @@
 
 package org.apache.wayang.profiler.spark;
 
+import java.util.function.Supplier;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.platform.ChannelInstance;
 import org.apache.wayang.profiler.util.ProfilingUtils;
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 
-import java.util.function.Supplier;
-
 /**
  * {@link SparkOperatorProfiler} implementation for {@link SparkExecutionOperator}s with one input and one output.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkTextFileSourceProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkTextFileSourceProfiler.java
index 408c931..2f8920a 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkTextFileSourceProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkTextFileSourceProfiler.java
@@ -18,17 +18,16 @@
 
 package org.apache.wayang.profiler.spark;
 
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.util.function.Supplier;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.util.fs.FileSystem;
 import org.apache.wayang.core.util.fs.FileSystems;
 import org.apache.wayang.spark.operators.SparkTextFileSource;
 
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.util.function.Supplier;
-
 /**
  * {@link SparkOperatorProfiler} for the {@link SparkTextFileSource}.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkUnaryOperatorProfiler.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkUnaryOperatorProfiler.java
index f59a357..32eb8f0 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkUnaryOperatorProfiler.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/spark/SparkUnaryOperatorProfiler.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.profiler.spark;
 
+import java.util.function.Supplier;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.platform.ChannelInstance;
@@ -25,8 +26,6 @@
 import org.apache.wayang.spark.channels.RddChannel;
 import org.apache.wayang.spark.operators.SparkExecutionOperator;
 
-import java.util.function.Supplier;
-
 /**
  * {@link SparkOperatorProfiler} implementation for {@link SparkExecutionOperator}s with one input and one output.
  */
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/util/ProfilingUtils.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/util/ProfilingUtils.java
index 2d36876..572a696 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/util/ProfilingUtils.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/util/ProfilingUtils.java
@@ -18,6 +18,7 @@
 
 package org.apache.wayang.profiler.util;
 
+import org.apache.logging.log4j.LogManager;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.api.WayangContext;
 import org.apache.wayang.core.plan.wayangplan.WayangPlan;
@@ -27,7 +28,6 @@
 import org.apache.wayang.java.platform.JavaPlatform;
 import org.apache.wayang.spark.execution.SparkExecutor;
 import org.apache.wayang.spark.platform.SparkPlatform;
-import org.apache.logging.log4j.LogManager;
 
 /**
  * Utilities to fake Wayang internals etc..
diff --git a/wayang-profiler/src/main/java/org/apache/wayang/profiler/util/RrdAccessor.java b/wayang-profiler/src/main/java/org/apache/wayang/profiler/util/RrdAccessor.java
index bb5fb38..7e218bc 100644
--- a/wayang-profiler/src/main/java/org/apache/wayang/profiler/util/RrdAccessor.java
+++ b/wayang-profiler/src/main/java/org/apache/wayang/profiler/util/RrdAccessor.java
@@ -18,16 +18,15 @@
 
 package org.apache.wayang.profiler.util;
 
+import java.io.IOException;
+import java.util.Arrays;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.rrd4j.ConsolFun;
 import org.rrd4j.core.FetchData;
 import org.rrd4j.core.FetchRequest;
 import org.rrd4j.core.RrdBackendFactory;
 import org.rrd4j.core.RrdDb;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.io.IOException;
-import java.util.Arrays;
 
 /**
  * Utility to read from an RRD file.
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/FlinkIntegrationIT.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/FlinkIntegrationIT.java
index b5d964c..62ccf0f 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/FlinkIntegrationIT.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/FlinkIntegrationIT.java
@@ -18,20 +18,6 @@
 
 package org.apache.wayang.tests;
 
-import org.apache.wayang.java.plugin.JavaBasicPlugin;
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.core.api.Job;
-import org.apache.wayang.core.api.WayangContext;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
-import org.apache.wayang.core.plugin.Plugin;
-import org.apache.wayang.core.util.WayangCollections;
-import org.apache.wayang.flink.Flink;
-import org.apache.wayang.java.Java;
-import org.apache.wayang.tests.platform.MyMadeUpPlatform;
-
 import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -46,6 +32,17 @@
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.core.api.Job;
+import org.apache.wayang.core.api.WayangContext;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
+import org.apache.wayang.core.util.WayangCollections;
+import org.apache.wayang.flink.Flink;
+import org.apache.wayang.java.Java;
+import org.apache.wayang.tests.platform.MyMadeUpPlatform;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test the Spark integration with Wayang.
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/FullIntegrationIT.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/FullIntegrationIT.java
index 51cf036..fc7b707 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/FullIntegrationIT.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/FullIntegrationIT.java
@@ -18,9 +18,23 @@
 
 package org.apache.wayang.tests;
 
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
 import org.apache.wayang.basic.WayangBasics;
 import org.apache.wayang.basic.data.Record;
 import org.apache.wayang.basic.data.Tuple2;
@@ -43,24 +57,9 @@
 import org.apache.wayang.spark.Spark;
 import org.apache.wayang.sqlite3.Sqlite3;
 import org.apache.wayang.tests.platform.MyMadeUpPlatform;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test the Java integration with Wayang.
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/GiraphIntegrationIT.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/GiraphIntegrationIT.java
index 8921a26..ee87853 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/GiraphIntegrationIT.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/GiraphIntegrationIT.java
@@ -18,19 +18,18 @@
 
 package org.apache.wayang.tests;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.wayang.basic.data.Tuple2;
-import org.apache.wayang.core.api.WayangContext;
-import org.apache.wayang.core.plan.wayangplan.WayangPlan;
-import org.apache.wayang.giraph.Giraph;
-import org.apache.wayang.java.Java;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
+import org.apache.wayang.basic.data.Tuple2;
+import org.apache.wayang.core.api.WayangContext;
+import org.apache.wayang.core.plan.wayangplan.WayangPlan;
+import org.apache.wayang.giraph.Giraph;
+import org.apache.wayang.java.Java;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Integration tests for the integration of Giraph with Wayang.
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/JavaIntegrationIT.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/JavaIntegrationIT.java
index deafb00..e7a2515 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/JavaIntegrationIT.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/JavaIntegrationIT.java
@@ -18,8 +18,20 @@
 
 package org.apache.wayang.tests;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.WayangBasics;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.CollectionSource;
@@ -39,21 +51,8 @@
 import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.java.Java;
 import org.apache.wayang.tests.platform.MyMadeUpPlatform;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test the Java integration with Wayang.
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/PostgresIntegrationIT.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/PostgresIntegrationIT.java
index 721f27b..7fd9b75 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/PostgresIntegrationIT.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/PostgresIntegrationIT.java
@@ -18,15 +18,14 @@
 
 package org.apache.wayang.tests;
 
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.apache.wayang.core.api.exception.WayangException;
-import org.apache.wayang.postgres.platform.PostgresPlatform;
-
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.sql.Statement;
+import org.apache.wayang.core.api.exception.WayangException;
+import org.apache.wayang.postgres.platform.PostgresPlatform;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
 
 
 /**
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/RegressionIT.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/RegressionIT.java
index 59b48cd..e763f72 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/RegressionIT.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/RegressionIT.java
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.tests;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.util.ArrayList;
+import java.util.Arrays;
 import org.apache.wayang.api.JavaPlanBuilder;
 import org.apache.wayang.api.LoadCollectionDataQuantaBuilder;
 import org.apache.wayang.api.MapDataQuantaBuilder;
@@ -27,9 +27,8 @@
 import org.apache.wayang.core.util.WayangArrays;
 import org.apache.wayang.java.Java;
 import org.apache.wayang.spark.Spark;
-
-import java.util.ArrayList;
-import java.util.Arrays;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * This class hosts and documents some tests for bugs that we encountered. Ultimately, we want to avoid re-introducing
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/SparkIntegrationIT.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/SparkIntegrationIT.java
index 7323f8d..79ce88a 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/SparkIntegrationIT.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/SparkIntegrationIT.java
@@ -18,8 +18,20 @@
 
 package org.apache.wayang.tests;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.basic.WayangBasics;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.CollectionSource;
@@ -36,21 +48,8 @@
 import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.spark.Spark;
 import org.apache.wayang.tests.platform.MyMadeUpPlatform;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Test the Spark integration with Wayang.
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 c4a7567..5e302b5 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
@@ -18,6 +18,18 @@
 
 package org.apache.wayang.tests;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.wayang.api.DataQuantaBuilder;
 import org.apache.wayang.api.JavaPlanBuilder;
 import org.apache.wayang.basic.data.Record;
@@ -53,25 +65,12 @@
 import org.apache.wayang.core.types.DataSetType;
 import org.apache.wayang.core.types.DataUnitType;
 import org.apache.wayang.core.util.ReflectionUtils;
-import org.apache.wayang.core.util.WayangArrays;
 import org.apache.wayang.core.util.Tuple;
+import org.apache.wayang.core.util.WayangArrays;
 import org.apache.wayang.spark.operators.SparkShufflePartitionSampleOperator;
 import org.apache.wayang.sqlite3.Sqlite3;
 import org.apache.wayang.sqlite3.operators.Sqlite3TableSource;
 
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
 /**
  * Provides plans that can be used for integration testing.
  */
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WayangPlansOperators.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WayangPlansOperators.java
index 1dc5179..da6bcf3 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WayangPlansOperators.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WayangPlansOperators.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.tests;
 
+import java.net.URI;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.CartesianOperator;
 import org.apache.wayang.basic.operators.CoGroupOperator;
@@ -41,11 +45,6 @@
 import org.apache.wayang.core.util.ReflectionUtils;
 import org.apache.wayang.core.util.WayangArrays;
 
-import java.net.URI;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * Provides plans that can be used for integration testing..
  */
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WordCountIT.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WordCountIT.java
index 0175ae5..7f6d4fa 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WordCountIT.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WordCountIT.java
@@ -18,8 +18,16 @@
 
 package org.apache.wayang.tests;
 
-import org.junit.Assert;
-import org.junit.Test;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 import org.apache.wayang.basic.data.Tuple2;
 import org.apache.wayang.basic.operators.FlatMapOperator;
 import org.apache.wayang.basic.operators.LocalCallbackSink;
@@ -45,17 +53,8 @@
 import org.apache.wayang.spark.operators.SparkFlatMapOperator;
 import org.apache.wayang.spark.operators.SparkMapOperator;
 import org.apache.wayang.spark.operators.SparkTextFileSource;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * Word count integration test. Besides going through different {@link Platform} combinations, each test addresses a different
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/platform/MyMadeUpPlatform.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/platform/MyMadeUpPlatform.java
index bc93d30..5c388e2 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/platform/MyMadeUpPlatform.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/platform/MyMadeUpPlatform.java
@@ -18,6 +18,10 @@
 
 package org.apache.wayang.tests.platform;
 
+import static org.mockito.Mockito.mock;
+
+import java.util.Collection;
+import java.util.Collections;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.mapping.Mapping;
 import org.apache.wayang.core.optimizer.channels.ChannelConversion;
@@ -27,11 +31,6 @@
 import org.apache.wayang.core.platform.Platform;
 import org.apache.wayang.core.plugin.Plugin;
 
-import java.util.Collection;
-import java.util.Collections;
-
-import static org.mockito.Mockito.mock;
-
 /**
  * Dummy {@link Platform} that does not provide any {@link Mapping}s.
  */
