[WAYANG-33] add missing licence header StopWatch.java file

Signed-off-by: bertty <berttycontreras@gmail.com>
diff --git a/pom.xml b/pom.xml
index a4f30f5..5bad3e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -949,7 +949,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>2.10.4</version>
+                    <version>3.3.0</version>
                     <executions>
                         <execution>
                             <id>attach-javadocs</id>
@@ -959,6 +959,8 @@
                         </execution>
                     </executions>
                     <configuration>
+                        <detectLinks>false</detectLinks>
+                        <detectJavaApiLink>true</detectJavaApiLink>
                         <additionalparam>-Xdoclint:none</additionalparam>
                     </configuration>
                 </plugin>
@@ -1215,9 +1217,6 @@
                     <additionalOptions>
                         <additionalOption>-Xdoclint:none</additionalOption>
                     </additionalOptions>
-                    <links>
-                        <link>https://docs.oracle.com/javase/8/docs/api/</link>
-                    </links>
                 </configuration>
             </plugin>
 
diff --git a/wayang-api/pom.xml b/wayang-api/pom.xml
index 1fa98c2..4efaf11 100644
--- a/wayang-api/pom.xml
+++ b/wayang-api/pom.xml
@@ -42,4 +42,4 @@
         <module>wayang-api-python</module>
     </modules>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/wayang-api/wayang-api-scala-java/pom.xml b/wayang-api/wayang-api-scala-java/pom.xml
index 070d5cb..b7e9670 100644
--- a/wayang-api/wayang-api-scala-java/pom.xml
+++ b/wayang-api/wayang-api-scala-java/pom.xml
@@ -61,8 +61,14 @@
             <version>0.6.0-SNAPSHOT</version>
         </dependency>
         <dependency>
-            <groupId>de.hpi.isg</groupId>
-            <artifactId>profiledb-store</artifactId>
+            <groupId>org.apache.wayang</groupId>
+            <artifactId>wayang-utils-profile-db</artifactId>
+            <version>0.6.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.3.2</version>
         </dependency>
         <dependency>
             <groupId>org.apache.wayang</groupId>
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 89722cc..ed1f426 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
@@ -18,11 +18,10 @@
 
 package org.apache.wayang.api
 
+
 import _root_.java.lang.{Iterable => JavaIterable}
 import _root_.java.util.function.{Consumer, IntUnaryOperator, BiFunction => JavaBiFunction, Function => JavaFunction}
 import _root_.java.util.{Collection => JavaCollection}
-
-import de.hpi.isg.profiledb.store.model.Experiment
 import org.apache.commons.lang3.Validate
 import org.apache.wayang.basic.function.ProjectionDescriptor
 import org.apache.wayang.basic.operators._
@@ -35,6 +34,7 @@
 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._
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 a590795..29b4965 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,17 +21,16 @@
 
 import java.util.function.{Consumer, IntUnaryOperator, Function => JavaFunction}
 import java.util.{Collection => JavaCollection}
-
-import de.hpi.isg.profiledb.store.model.Experiment
 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}
 import org.apache.wayang.basic.operators.{GlobalReduceOperator, LocalCallbackSink, MapOperator, SampleOperator}
+import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.function.FunctionDescriptor.{SerializableBiFunction, SerializableBinaryOperator, SerializableFunction, SerializablePredicate}
 import org.apache.wayang.core.optimizer.ProbabilisticDoubleInterval
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator
 import org.apache.wayang.core.optimizer.costs.{LoadEstimator, LoadProfile, LoadProfileEstimator}
-import org.apache.wayang.core.plan.wayangplan.{Operator, OutputSlot, WayangPlan, UnarySource}
+import org.apache.wayang.core.plan.wayangplan.{Operator, OutputSlot, UnarySource, WayangPlan}
 import org.apache.wayang.core.platform.Platform
 import org.apache.wayang.core.types.DataSetType
 import org.apache.wayang.core.util.{Logging, ReflectionUtils, WayangCollections, Tuple => WayangTuple}
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 dc9f6be..d21870a 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,12 +19,11 @@
 package org.apache.wayang.api
 
 import java.util.{Collection => JavaCollection}
-
-import de.hpi.isg.profiledb.store.model.Experiment
 import org.apache.commons.lang3.Validate
 import org.apache.wayang.api.util.DataQuantaBuilderCache
 import org.apache.wayang.basic.data.Record
 import org.apache.wayang.basic.operators.{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._
 import org.apache.wayang.core.types.DataSetType
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 8600e23..3709f7f 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
@@ -18,11 +18,11 @@
 
 package org.apache.wayang.api
 
-import de.hpi.isg.profiledb.store.model.Experiment
 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.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.api.WayangContext
 import org.apache.wayang.core.plan.wayangplan._
 import org.apache.wayang.core.util.ReflectionUtils
diff --git a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/util/DataQuantaBuilderDecorator.scala b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/util/DataQuantaBuilderDecorator.scala
index 8ea3dd2..5f1a976 100644
--- a/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/util/DataQuantaBuilderDecorator.scala
+++ b/wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/util/DataQuantaBuilderDecorator.scala
@@ -18,8 +18,8 @@
 
 package org.apache.wayang.api.util
 
-import de.hpi.isg.profiledb.store.model.Experiment
 import org.apache.wayang.api.{DataQuanta, DataQuantaBuilder, JavaPlanBuilder}
+import org.apache.wayang.commons.util.profiledb.model.Experiment
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator
 import org.apache.wayang.core.platform.Platform
 import org.apache.wayang.core.types.DataSetType
diff --git a/wayang-commons/pom.xml b/wayang-commons/pom.xml
index 2caa960..e355bc9 100644
--- a/wayang-commons/pom.xml
+++ b/wayang-commons/pom.xml
@@ -202,16 +202,6 @@
                 <version>2.2.7</version>
             </dependency>
             <dependency>
-                <groupId>de.hpi.isg</groupId>
-                <artifactId>profiledb-instrumentation</artifactId>
-                <version>0.1.1</version>
-            </dependency>
-            <dependency>
-                <groupId>de.hpi.isg</groupId>
-                <artifactId>profiledb-store</artifactId>
-                <version>0.1.1</version>
-            </dependency>
-            <dependency>
                 <groupId>com.google.code.gson</groupId>
                 <artifactId>gson</artifactId>
                 <version>2.8.8</version>
@@ -222,7 +212,7 @@
     <modules>
         <module>wayang-core</module>
         <module>wayang-basic</module>
-        <module>wayang-utils</module>
+        <module>wayang-utils-profile-db</module>
     </modules>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/wayang-commons/wayang-basic/pom.xml b/wayang-commons/wayang-basic/pom.xml
index 9c0494a..10b1fa5 100644
--- a/wayang-commons/wayang-basic/pom.xml
+++ b/wayang-commons/wayang-basic/pom.xml
@@ -41,9 +41,26 @@
             <version>0.6.0-SNAPSHOT</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.wayang</groupId>
+            <artifactId>wayang-utils-profile-db</artifactId>
+            <version>0.6.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.hadoop</groupId>
             <artifactId>hadoop-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
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 5a1e322..4b06020 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
@@ -65,7 +65,7 @@
      *
      * @param keyDescriptor describes how to extract the key from data units
      * @param inputType     type of the input elements
-     * @param inputType     type of the element groups
+     * @param outputType    type of the element groups
      */
     public MaterializedGroupByOperator(TransformationDescriptor<Type, Key> keyDescriptor,
                                        DataSetType<Type> inputType,
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 47a1cfd..67ddf49 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
@@ -18,8 +18,9 @@
 
 package org.apache.wayang.basic.operators;
 
-import de.hpi.isg.profiledb.store.model.TimeMeasurement;
+
 import org.apache.commons.lang3.Validate;
+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;
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 9a59bc1..9b2e305 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
@@ -18,9 +18,10 @@
 
 package org.apache.wayang.basic.operators;
 
-import de.hpi.isg.profiledb.instrumentation.StopWatch;
-import de.hpi.isg.profiledb.store.model.Experiment;
-import de.hpi.isg.profiledb.store.model.Subject;
+
+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;
diff --git a/wayang-commons/wayang-core/pom.xml b/wayang-commons/wayang-core/pom.xml
index 88bfd98..5cc0331 100644
--- a/wayang-commons/wayang-core/pom.xml
+++ b/wayang-commons/wayang-core/pom.xml
@@ -72,14 +72,6 @@
             <artifactId>gson</artifactId>
         </dependency>
         <dependency>
-            <groupId>de.hpi.isg</groupId>
-            <artifactId>profiledb-instrumentation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>de.hpi.isg</groupId>
-            <artifactId>profiledb-store</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
         </dependency>
@@ -96,6 +88,11 @@
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.wayang</groupId>
+            <artifactId>wayang-utils-profile-db</artifactId>
+            <version>0.6.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
 </project>
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 f0048e9..97454b3 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,9 +18,9 @@
 
 package org.apache.wayang.core.api;
 
-import de.hpi.isg.profiledb.instrumentation.StopWatch;
-import de.hpi.isg.profiledb.store.model.Experiment;
-import de.hpi.isg.profiledb.store.model.TimeMeasurement;
+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;
 import org.apache.wayang.core.api.exception.WayangException;
 import org.apache.wayang.core.mapping.PlanTransformation;
 import org.apache.wayang.core.monitor.DisabledMonitor;
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 1484eed..f40f536 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,8 +18,8 @@
 
 package org.apache.wayang.core.api;
 
-import de.hpi.isg.profiledb.store.model.Experiment;
-import de.hpi.isg.profiledb.store.model.Subject;
+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;
 import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
 import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
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 e6ce1c6..e00753c 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
@@ -18,7 +18,8 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
-import de.hpi.isg.profiledb.store.model.TimeMeasurement;
+
+import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
 import org.apache.wayang.core.api.Job;
 import org.apache.wayang.core.optimizer.OptimizationContext;
 import org.apache.wayang.core.optimizer.channels.ChannelConversionGraph;
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 914dcd6..17ce28b 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,7 +18,7 @@
 
 package org.apache.wayang.core.optimizer.enumeration;
 
-import de.hpi.isg.profiledb.store.model.TimeMeasurement;
+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;
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/PlanMetrics.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/PlanMetrics.java
index a6f20f7..8b8342a 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/PlanMetrics.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/PlanMetrics.java
@@ -18,10 +18,10 @@
 
 package org.apache.wayang.core.plan.wayangplan;
 
-import de.hpi.isg.profiledb.store.model.Measurement;
-import de.hpi.isg.profiledb.store.model.Type;
 
 import java.util.Collection;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Type;
 
 /**
  * This class collects metrics for {@link WayangPlan}s.
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CostMeasurement.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CostMeasurement.java
index e7b1199..d9aae45 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CostMeasurement.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CostMeasurement.java
@@ -18,8 +18,9 @@
 
 package org.apache.wayang.core.profiling;
 
-import de.hpi.isg.profiledb.store.model.Measurement;
-import de.hpi.isg.profiledb.store.model.Type;
+
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Type;
 
 /**
  * This measurement captures execution costs w.r.t. to Wayang's cost model.
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 679797f..1459d15 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
@@ -18,8 +18,9 @@
 
 package org.apache.wayang.core.profiling;
 
-import de.hpi.isg.profiledb.store.model.Measurement;
-import de.hpi.isg.profiledb.store.model.Type;
+
+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;
 import org.apache.wayang.core.plan.executionplan.ExecutionPlan;
 import org.apache.wayang.core.plan.executionplan.ExecutionTask;
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/PartialExecutionMeasurement.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/PartialExecutionMeasurement.java
index 3320f9f..61e366c 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/PartialExecutionMeasurement.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/PartialExecutionMeasurement.java
@@ -18,8 +18,9 @@
 
 package org.apache.wayang.core.profiling;
 
-import de.hpi.isg.profiledb.store.model.Measurement;
-import de.hpi.isg.profiledb.store.model.Type;
+
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Type;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.optimizer.costs.TimeEstimate;
 import org.apache.wayang.core.platform.PartialExecution;
diff --git a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ProfileDBs.java b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ProfileDBs.java
index 6e4bc85..2a25626 100644
--- a/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ProfileDBs.java
+++ b/wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/ProfileDBs.java
@@ -18,13 +18,14 @@
 
 package org.apache.wayang.core.profiling;
 
-import de.hpi.isg.profiledb.ProfileDB;
+
+import org.apache.wayang.commons.util.profiledb.ProfileDB;
 import org.apache.wayang.core.plan.wayangplan.Operator;
 import org.apache.wayang.core.plan.wayangplan.OperatorBase;
 import org.apache.wayang.core.plan.wayangplan.PlanMetrics;
 
 /**
- * Utilities to work with {@link de.hpi.isg.profiledb.ProfileDB}s.
+ * Utilities to work with {@link ProfileDB}s.
  */
 public class ProfileDBs {
 
@@ -34,7 +35,7 @@
      * @return the {@link ProfileDB}
      */
     public static ProfileDB createProfileDB() {
-        final ProfileDB profileDB = new ProfileDB();
+        final ProfileDB profileDB = new ProfileDB(null);
         customize(profileDB);
         return profileDB;
     }
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/README.md b/wayang-commons/wayang-utils-profile-db/README.md
similarity index 100%
rename from wayang-commons/wayang-utils/wayang-profile-db/README.md
rename to wayang-commons/wayang-utils-profile-db/README.md
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/pom.xml b/wayang-commons/wayang-utils-profile-db/pom.xml
similarity index 93%
rename from wayang-commons/wayang-utils/wayang-profile-db/pom.xml
rename to wayang-commons/wayang-utils-profile-db/pom.xml
index 1d8f2ff..dd66bdc 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/pom.xml
+++ b/wayang-commons/wayang-utils-profile-db/pom.xml
@@ -21,13 +21,13 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>wayang-utils</artifactId>
+        <artifactId>wayang-commons</artifactId>
         <groupId>org.apache.wayang</groupId>
         <version>0.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>wayang-profile-db</artifactId>
+    <artifactId>wayang-utils-profile-db</artifactId>
 
     <dependencies>
         <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
@@ -39,4 +39,4 @@
     </dependencies>
 
 
-</project>
\ No newline at end of file
+</project>
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/ProfileDB.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/ProfileDB.java
similarity index 93%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/ProfileDB.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/ProfileDB.java
index 3a1389f..d5550b9 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/ProfileDB.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/ProfileDB.java
@@ -16,18 +16,17 @@
  * limitations under the License.
  */
 
-package profiledb;
+package org.apache.wayang.commons.util.profiledb;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import profiledb.json.MeasurementDeserializer;
-import profiledb.json.MeasurementSerializer;
-import profiledb.model.Experiment;
-import profiledb.model.Measurement;
-import profiledb.storage.Storage;
+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.Arrays;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
diff --git a/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/instrumentation/StopWatch.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/instrumentation/StopWatch.java
new file mode 100644
index 0000000..6a4278f
--- /dev/null
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/instrumentation/StopWatch.java
@@ -0,0 +1,162 @@
+/*
+ * 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.commons.util.profiledb.instrumentation;
+
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.Map;
+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.model.measurement.TimeMeasurement;
+
+/**
+ * Utility to create {@link TimeMeasurement}s for an {@link Experiment}.
+ */
+public class StopWatch {
+
+  private final Map<String, TimeMeasurement> rounds = new LinkedHashMap<>();
+
+  private final Experiment experiment;
+
+  /**
+   * Creates a new instance for the given {@link Experiment}.
+   *
+   * @param experiment that should be instrumented
+   */
+  public StopWatch(Experiment experiment) {
+    this.experiment = experiment;
+    for (Measurement measurement : this.experiment.getMeasurements()) {
+      if (measurement instanceof TimeMeasurement) {
+        this.rounds.put(measurement.getId(), (TimeMeasurement) measurement);
+      }
+    }
+  }
+
+  /**
+   * Retrieves a {@link TimeMeasurement} by its ID from {@link #rounds}. If it does not exist, it will be
+   * created and also registered with the {@link #experiment}.
+   *
+   * @param id         the ID of the {@link TimeMeasurement}
+   * @param furtherIds IDs of further nested {@link TimeMeasurement}s
+   * @return the {@link TimeMeasurement}
+   */
+  public TimeMeasurement getOrCreateRound(String id, String... furtherIds) {
+    TimeMeasurement round = this.rounds.get(id);
+    if (round == null) {
+      round = new TimeMeasurement(id);
+      this.rounds.put(round.getId(), round);
+      this.experiment.addMeasurement(round);
+    }
+    for (String furtherId : furtherIds) {
+      round = round.getOrCreateRound(furtherId);
+    }
+    return round;
+  }
+
+  /**
+   * Starts a {@link TimeMeasurement}. Any required parent {@link TimeMeasurement} will be started if necessary.
+   *
+   * @param id         ID of the root {@link TimeMeasurement}
+   * @param furtherIds IDs of further nested {@link TimeMeasurement}s
+   * @return the (potentially new) {@link TimeMeasurement}
+   */
+  public TimeMeasurement start(String id, String... furtherIds) {
+    return this.getOrCreateRound(id).start(furtherIds);
+  }
+
+  /**
+   * Stops a {@link TimeMeasurement} (if it exists).
+   *
+   * @param id         ID of the root {@link TimeMeasurement}
+   * @param furtherIds IDs of further nested {@link TimeMeasurement}s
+   */
+  public void stop(String id, String... furtherIds) {
+    final TimeMeasurement rootRound = this.rounds.get(id);
+    if (rootRound != null) {
+      rootRound.stop(furtherIds);
+    }
+  }
+
+  /**
+   * Formats the {@link TimeMeasurement}s to something easily readable.
+   *
+   * @return the "pretty" {@link String}
+   */
+  public String toPrettyString() {
+    return this.toPrettyString("  ", "* ");
+  }
+
+  /**
+   * Formats the {@link TimeMeasurement}s to something easily readable.
+   *
+   * @param indent indent to be used when formatting sub-{@link TimeMeasurement}s
+   * @param bullet bullet point character
+   * @return the "pretty" {@link String}
+   */
+  public String toPrettyString(String indent, String bullet) {
+    StringBuilder sb = new StringBuilder(1000);
+    int firstColumnWidth = this.determineFirstColumnWidth(this.rounds.values(), indent.length(), 0, bullet.length());
+    this.rounds.values().forEach(round -> this.append(round, indent, 0, bullet, firstColumnWidth, sb));
+    // Trim trailing newline.
+    if (sb.length() > 0 && sb.charAt(sb.length() - 1) == '\n') {
+      sb.setLength(sb.length() - 1);
+    }
+    return sb.toString();
+  }
+
+  private int determineFirstColumnWidth(Collection<TimeMeasurement> rounds, int indentWidth, int numIndents, int bulletWidth) {
+    return rounds.stream()
+        .map(round -> this.determineFirstColumnWidth(round, indentWidth, numIndents, bulletWidth))
+        .reduce(0, Math::max);
+  }
+
+  private int determineFirstColumnWidth(TimeMeasurement round, int indentWidth, int numIndents, int bulletWidth) {
+    return Math.max(
+        round.getId().length() + (numIndents * indentWidth) + bulletWidth,
+        this.determineFirstColumnWidth(round.getRounds(), indentWidth, numIndents + 1, bulletWidth)
+    );
+  }
+
+  private void append(TimeMeasurement round, String indent, int numIndents, String bullet, int firstColumnWidth, StringBuilder sb) {
+    int originalLength = sb.length();
+    for (int i = 0; i < numIndents; i++) {
+      sb.append(indent);
+    }
+    sb.append(bullet).append(round.getId());
+    while (sb.length() < originalLength + firstColumnWidth) sb.append(" ");
+    sb.append(" - ").append(TimeMeasurement.formatDuration(round.getMillis())).append('\n');
+    round.getRounds().forEach(subround -> this.append(subround, indent, numIndents + 1, bullet, firstColumnWidth, sb));
+  }
+
+  /**
+   * Stops all {@link TimeMeasurement}s known to this instance.
+   */
+  public void stopAll() {
+    this.rounds.values().forEach(TimeMeasurement::stop);
+  }
+
+  /**
+   * Get the {@link Experiment} managed by this instance.
+   *
+   * @return the {@link Experiment}
+   */
+  public Experiment getExperiment() {
+    return this.experiment;
+  }
+}
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/json/MeasurementDeserializer.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementDeserializer.java
similarity index 94%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/json/MeasurementDeserializer.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementDeserializer.java
index b7d4b4d..4592cf4 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/json/MeasurementDeserializer.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementDeserializer.java
@@ -16,13 +16,13 @@
  * limitations under the License.
  */
 
-package profiledb.json;
+package org.apache.wayang.commons.util.profiledb.json;
 
 import com.google.gson.JsonDeserializationContext;
 import com.google.gson.JsonDeserializer;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonParseException;
-import profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
 
 import java.lang.reflect.Type;
 import java.util.HashMap;
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/json/MeasurementSerializer.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementSerializer.java
similarity index 92%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/json/MeasurementSerializer.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementSerializer.java
index dab969e..7691a04 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/json/MeasurementSerializer.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/json/MeasurementSerializer.java
@@ -16,13 +16,13 @@
  * limitations under the License.
  */
 
-package profiledb.json;
+package org.apache.wayang.commons.util.profiledb.json;
 
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonSerializationContext;
 import com.google.gson.JsonSerializer;
-import profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
 
 import java.lang.reflect.Type;
 
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Experiment.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Experiment.java
similarity index 98%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Experiment.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Experiment.java
index 956dcdc..084915a 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Experiment.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Experiment.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package profiledb.model;
+package org.apache.wayang.commons.util.profiledb.model;
 
 import java.util.Arrays;
 import java.util.Collection;
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Measurement.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Measurement.java
similarity index 96%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Measurement.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Measurement.java
index 16a1b99..7fe9b7c 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Measurement.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Measurement.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package profiledb.model;
+package org.apache.wayang.commons.util.profiledb.model;
 
 import java.util.Objects;
 
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Subject.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Subject.java
similarity index 97%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Subject.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Subject.java
index f3b2ecb..5501a3f 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Subject.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Subject.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package profiledb.model;
+package org.apache.wayang.commons.util.profiledb.model;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Type.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Type.java
similarity index 94%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Type.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Type.java
index 683c1b2..44495de 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/Type.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/Type.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package profiledb.model;
+package org.apache.wayang.commons.util.profiledb.model;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/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
similarity index 96%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/model/measurement/TimeMeasurement.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/model/measurement/TimeMeasurement.java
index 725b435..821dbde 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/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
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
-package profiledb.model.measurement;
+package org.apache.wayang.commons.util.profiledb.model.measurement;
 
-import profiledb.model.Measurement;
-import profiledb.model.Type;
+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;
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/FileStorage.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/FileStorage.java
similarity index 96%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/FileStorage.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/FileStorage.java
index 9a8d75d..663eefc 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/FileStorage.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/FileStorage.java
@@ -16,15 +16,14 @@
  * limitations under the License.
  */
 
-package profiledb.storage;
+package org.apache.wayang.commons.util.profiledb.storage;
 
-import profiledb.model.Experiment;
+import org.apache.wayang.commons.util.profiledb.model.Experiment;
 
 import java.io.*;
 import java.net.URI;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.LinkedList;
 
 public class FileStorage extends Storage {
 
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/JDBCStorage.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/JDBCStorage.java
similarity index 96%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/JDBCStorage.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/JDBCStorage.java
index 278277e..3b57add 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/JDBCStorage.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/JDBCStorage.java
@@ -16,9 +16,9 @@
  * limitations under the License.
  */
 
-package profiledb.storage;
+package org.apache.wayang.commons.util.profiledb.storage;
 
-import profiledb.model.Experiment;
+import org.apache.wayang.commons.util.profiledb.model.Experiment;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/Storage.java b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/Storage.java
similarity index 96%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/Storage.java
rename to wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/Storage.java
index 75b8272..6102fb8 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/main/java/profiledb/storage/Storage.java
+++ b/wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/Storage.java
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
-package profiledb.storage;
+package org.apache.wayang.commons.util.profiledb.storage;
 
 import com.google.gson.Gson;
-import profiledb.ProfileDB;
-import profiledb.model.Experiment;
+import org.apache.wayang.commons.util.profiledb.ProfileDB;
+import org.apache.wayang.commons.util.profiledb.model.Experiment;
 
 import java.io.*;
 import java.net.URI;
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/ProfileDBTest.java b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/ProfileDBTest.java
similarity index 94%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/ProfileDBTest.java
rename to wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/ProfileDBTest.java
index f33ca72..20948b4 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/ProfileDBTest.java
+++ b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/ProfileDBTest.java
@@ -16,27 +16,22 @@
  * limitations under the License.
  */
 
-package profiledb;
+package org.apache.wayang.commons.util.profiledb;
 
+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;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Subject;
+import org.apache.wayang.commons.util.profiledb.storage.FileStorage;
 import org.junit.Assert;
 import org.junit.Test;
-import profiledb.measurement.TestMemoryMeasurement;
-import profiledb.measurement.TestTimeMeasurement;
-import profiledb.model.Experiment;
-import profiledb.model.Measurement;
-import profiledb.model.Subject;
-import profiledb.storage.FileStorage;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
 import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.*;
 
 public class ProfileDBTest {
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/measurement/TestMemoryMeasurement.java b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestMemoryMeasurement.java
similarity index 91%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/measurement/TestMemoryMeasurement.java
rename to wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestMemoryMeasurement.java
index 6386bde..be85515 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/measurement/TestMemoryMeasurement.java
+++ b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestMemoryMeasurement.java
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
-package profiledb.measurement;
+package org.apache.wayang.commons.util.profiledb.measurement;
 
-import profiledb.model.Measurement;
-import profiledb.model.Type;
+import org.apache.wayang.commons.util.profiledb.model.Measurement;
+import org.apache.wayang.commons.util.profiledb.model.Type;
 
 import java.util.Objects;
 
@@ -77,4 +77,4 @@
                 ", usedMb=" + usedMb +
                 '}';
     }
-}
\ No newline at end of file
+}
diff --git a/wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/measurement/TestTimeMeasurement.java b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestTimeMeasurement.java
similarity index 91%
rename from wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/measurement/TestTimeMeasurement.java
rename to wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestTimeMeasurement.java
index c0c2ac8..addb644 100644
--- a/wayang-commons/wayang-utils/wayang-profile-db/src/test/java/profiledb/measurement/TestTimeMeasurement.java
+++ b/wayang-commons/wayang-utils-profile-db/src/test/java/org/apache/wayang/commons/util/profiledb/measurement/TestTimeMeasurement.java
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
-package profiledb.measurement;
+package org.apache.wayang.commons.util.profiledb.measurement;
 
-import profiledb.model.Measurement;
-import profiledb.model.Type;
+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;
@@ -71,4 +71,4 @@
     public int hashCode() {
         return Objects.hash(super.hashCode(), millis, submeasurements);
     }
-}
\ No newline at end of file
+}
diff --git a/wayang-commons/wayang-utils/pom.xml b/wayang-commons/wayang-utils/pom.xml
deleted file mode 100644
index 1acce47..0000000
--- a/wayang-commons/wayang-utils/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>wayang-commons</artifactId>
-        <groupId>org.apache.wayang</groupId>
-        <version>0.6.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>wayang-utils</artifactId>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>wayang-profile-db</module>
-    </modules>
-
-
-</project>
\ No newline at end of file
diff --git a/wayang-distro/pom.xml b/wayang-distro/pom.xml
index 2a6588c..7403b18 100644
--- a/wayang-distro/pom.xml
+++ b/wayang-distro/pom.xml
@@ -96,7 +96,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.wayang</groupId>
-            <artifactId>wayang-api-scala-java_2.11</artifactId>
+            <artifactId>wayang-api-scala-java_2.12</artifactId>
             <version>0.6.0-SNAPSHOT</version>
         </dependency>
         <dependency>
diff --git a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/platform/JavaPlatform.java b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/platform/JavaPlatform.java
index 0628428..4aba144 100644
--- a/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/platform/JavaPlatform.java
+++ b/wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/platform/JavaPlatform.java
@@ -28,7 +28,7 @@
 import org.apache.wayang.java.execution.JavaExecutor;
 
 /**
- * {@link Platform} for a single JVM executor based on the {@link java.util.stream} library.
+ * {@link Platform} for a single JVM executor based on the {@link java.util.stream.Stream} library.
  */
 public class JavaPlatform extends Platform {
 
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 4132a7b..2d546de 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,8 +18,8 @@
 
 package org.apache.wayang.jdbc.operators;
 
-import de.hpi.isg.profiledb.store.model.TimeMeasurement;
 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;
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 3feb5c7..aea6fc1 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
@@ -18,9 +18,10 @@
 
 package org.apache.wayang.jdbc.operators;
 
-import de.hpi.isg.profiledb.instrumentation.StopWatch;
-import de.hpi.isg.profiledb.store.model.Experiment;
-import de.hpi.isg.profiledb.store.model.Subject;
+
+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;
diff --git a/wayang-platforms/wayang-spark/pom.xml b/wayang-platforms/wayang-spark/pom.xml
index 8a93813..7f8a976 100644
--- a/wayang-platforms/wayang-spark/pom.xml
+++ b/wayang-platforms/wayang-spark/pom.xml
@@ -84,6 +84,7 @@
             <groupId>com.thoughtworks.paranamer</groupId>
             <artifactId>paranamer</artifactId>
             <version>2.8</version>
+            <scope>runtime</scope>
         </dependency>
     </dependencies>
 
diff --git a/wayang-profiler/pom.xml b/wayang-profiler/pom.xml
index fb69990..6d9a1b4 100644
--- a/wayang-profiler/pom.xml
+++ b/wayang-profiler/pom.xml
@@ -81,8 +81,9 @@
             <version>${spark.version}</version>
         </dependency>
         <dependency>
-            <groupId>de.hpi.isg</groupId>
-            <artifactId>profiledb-instrumentation</artifactId>
+            <groupId>org.apache.wayang</groupId>
+            <artifactId>wayang-utils-profile-db</artifactId>
+            <version>0.6.0-SNAPSHOT</version>
         </dependency>
     </dependencies>
     <profiles>
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 b6e3852..1862ec1 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
@@ -18,11 +18,12 @@
 
 package org.apache.wayang.profiler.java;
 
-import de.hpi.isg.profiledb.instrumentation.StopWatch;
-import de.hpi.isg.profiledb.store.model.Experiment;
-import de.hpi.isg.profiledb.store.model.Subject;
-import de.hpi.isg.profiledb.store.model.TimeMeasurement;
+
 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;
+import org.apache.wayang.commons.util.profiledb.model.Subject;
+import org.apache.wayang.commons.util.profiledb.model.measurement.TimeMeasurement;
 import org.apache.wayang.core.optimizer.costs.LoadProfileEstimator;
 import org.apache.wayang.core.util.WayangCollections;
 import org.apache.wayang.java.operators.JavaExecutionOperator;
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 c4412ca..8a0d3a7 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
@@ -18,10 +18,11 @@
 
 package org.apache.wayang.profiler.spark;
 
-import de.hpi.isg.profiledb.instrumentation.StopWatch;
-import de.hpi.isg.profiledb.store.model.Experiment;
-import de.hpi.isg.profiledb.store.model.Subject;
-import de.hpi.isg.profiledb.store.model.TimeMeasurement;
+
+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.commons.util.profiledb.model.measurement.TimeMeasurement;
 import org.apache.wayang.core.api.Configuration;
 import org.apache.wayang.core.util.WayangArrays;
 import org.apache.wayang.core.util.WayangCollections;