diff --git a/build.gradle b/build.gradle
index 0e71087e4014f9882eef3d575f4856fe35b6f808..13497982f5096ee96f4563223649fffdbf4df068 100644
--- a/build.gradle
+++ b/build.gradle
@@ -51,39 +51,26 @@ allprojects {
 	    maven {
 	    	url "https://oss.sonatype.org/content/repositories/snapshots/"
 	    }
-      maven {
-        url 'https://packages.confluent.io/maven/'
-    }
 	}
 }
 
 // Dependencies for all use cases
 configure(useCaseProjects) {
   dependencies {
-      // These dependencies are used internally, and not exposed to consumers on their own compile classpath.
-      implementation('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true }      // This branch depends still on old version of titan-ccp-common
-      implementation('org.industrial-devops:titan-ccp-common-kafka:0.1.0-SNAPSHOT') { changing = true }
-      implementation 'com.google.guava:guava:24.1-jre'
-      implementation 'org.jctools:jctools-core:2.1.1'
-      implementation 'org.slf4j:slf4j-simple:1.6.1'
-
-      // Use JUnit test framework
-      testImplementation 'junit:junit:4.12'
-      
-      implementation('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true }
-  }
-}
+      // These dependencies is exported to consumers, that is to say found on their compile classpath.
+      api('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true }
+      api 'net.kieker-monitoring:kieker:1.14-SNAPSHOT'
+      api 'net.sourceforge.teetime:teetime:3.0'
 
-// Dependencies for all use case generators
-configure(useCaseGenerators) {
-  dependencies {
       // These dependencies are used internally, and not exposed to consumers on their own compile classpath.
-      // implementation('org.industrial-devops:titan-ccp-common:0.1.0-SNAPSHOT') { changing = true }
-      implementation('org.industrial-devops:titan-ccp-common-kafka:0.0.1-SNAPSHOT') { changing = true }
+      implementation 'org.apache.kafka:kafka-clients:2.1.0'
       implementation 'com.google.guava:guava:24.1-jre'
       implementation 'org.jctools:jctools-core:2.1.1'
       implementation 'org.slf4j:slf4j-simple:1.6.1'
       implementation project(':application-kafkastreams-commons')
+      
+      // These dependencies are used for the workload-generator-commmon
+      implementation project(':workload-generator-commons')
 
       // Use JUnit test framework
       testImplementation 'junit:junit:4.12'
@@ -95,6 +82,8 @@ configure(commonProjects) {
   dependencies {
       // These dependencies is exported to consumers, that is to say found on their compile classpath.
       api 'org.apache.kafka:kafka-clients:2.4.0'
+      api('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true }
+      api 'net.kieker-monitoring:kieker:1.14-SNAPSHOT'
 
       // These dependencies are used internally, and not exposed to consumers on their own compile classpath.
       implementation 'org.slf4j:slf4j-simple:1.6.1'
diff --git a/uc1-application/src/main/java/spesb/uc1/application/ConfigurationKeys.java b/uc1-application/src/main/java/spesb/uc1/application/ConfigurationKeys.java
deleted file mode 100644
index bf5596cda5302863990076f7f622dcc121deb83f..0000000000000000000000000000000000000000
--- a/uc1-application/src/main/java/spesb/uc1/application/ConfigurationKeys.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package spesb.uc1.application;
-
-/**
- * Keys to access configuration parameters.
- */
-public final class ConfigurationKeys {
-
-  public static final String KAFKA_BOOTSTRAP_SERVERS = "kafka.bootstrap.servers";
-
-  public static final String KAFKA_OUTPUT_TOPIC = "kafka.output.topic";
-
-  public static final String KAFKA_INPUT_TOPIC = "kafka.input.topic";
-
-  public static final String NUM_THREADS = "num.threads";
-
-  public static final String COMMIT_INTERVAL_MS = "commit.interval.ms";
-
-  public static final String CACHE_MAX_BYTES_BUFFERING = "cache.max.bytes.buffering";
-
-  private ConfigurationKeys() {}
-
-}
diff --git a/uc1-workload-generator/src/main/java/theodolite/uc1/workloadgenerator/LoadGenerator.java b/uc1-workload-generator/src/main/java/theodolite/uc1/workloadgenerator/LoadGenerator.java
index 27b0f7c0d8bcdd450de3b38b22939f1475bccc35..a3898a0f2b3abcd27aec9fac2784579002131937 100644
--- a/uc1-workload-generator/src/main/java/theodolite/uc1/workloadgenerator/LoadGenerator.java
+++ b/uc1-workload-generator/src/main/java/theodolite/uc1/workloadgenerator/LoadGenerator.java
@@ -1,12 +1,5 @@
 package theodolite.uc1.workloadgenerator;
 
-import common.dimensions.Duration;
-import common.dimensions.KeySpace;
-import common.dimensions.Period;
-import common.generators.KafkaWorkloadGenerator;
-import common.generators.KafkaWorkloadGeneratorBuilder;
-import common.misc.ZooKeeper;
-import communication.kafka.KafkaRecordSender;
 import java.io.IOException;
 import java.util.Objects;
 import java.util.Properties;
@@ -14,7 +7,13 @@ import java.util.concurrent.TimeUnit;
 import org.apache.kafka.clients.producer.ProducerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import theodolite.kafkasender.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.communication.kafka.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.dimensions.Duration;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.dimensions.Period;
+import theodolite.commons.workloadgeneration.generators.KafkaWorkloadGenerator;
+import theodolite.commons.workloadgeneration.generators.KafkaWorkloadGeneratorBuilder;
+import theodolite.commons.workloadgeneration.misc.ZooKeeper;
 import titan.ccp.models.records.ActivePowerRecord;
 
 /**
diff --git a/uc2-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java b/uc2-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
new file mode 100644
index 0000000000000000000000000000000000000000..bf562d86ac913138f48da79c4542d9583b1c8390
--- /dev/null
+++ b/uc2-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
@@ -0,0 +1,84 @@
+package theodolite.kafkasender;
+
+import java.util.Properties;
+import java.util.function.Function;
+import kieker.common.record.IMonitoringRecord;
+import org.apache.kafka.clients.producer.KafkaProducer;
+import org.apache.kafka.clients.producer.Producer;
+import org.apache.kafka.clients.producer.ProducerRecord;
+import org.apache.kafka.common.serialization.StringSerializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import titan.ccp.common.kieker.kafka.IMonitoringRecordSerde;
+
+
+/**
+ * Sends monitoring records to Kafka.
+ *
+ * @param <T> {@link IMonitoringRecord} to send
+ */
+public class KafkaRecordSender<T extends IMonitoringRecord> {
+
+  private static final Logger LOGGER = LoggerFactory.getLogger(KafkaRecordSender.class);
+
+  private final String topic;
+
+  private final Function<T, String> keyAccessor;
+
+  private final Function<T, Long> timestampAccessor;
+
+  private final Producer<String, T> producer;
+
+  public KafkaRecordSender(final String bootstrapServers, final String topic) {
+    this(bootstrapServers, topic, x -> "", x -> null, new Properties());
+  }
+
+  public KafkaRecordSender(final String bootstrapServers, final String topic,
+      final Function<T, String> keyAccessor) {
+    this(bootstrapServers, topic, keyAccessor, x -> null, new Properties());
+  }
+
+  public KafkaRecordSender(final String bootstrapServers, final String topic,
+      final Function<T, String> keyAccessor, final Function<T, Long> timestampAccessor) {
+    this(bootstrapServers, topic, keyAccessor, timestampAccessor, new Properties());
+  }
+
+  /**
+   * Create a new {@link KafkaRecordSender}.
+   */
+  public KafkaRecordSender(final String bootstrapServers, final String topic,
+      final Function<T, String> keyAccessor, final Function<T, Long> timestampAccessor,
+      final Properties defaultProperties) {
+    this.topic = topic;
+    this.keyAccessor = keyAccessor;
+    this.timestampAccessor = timestampAccessor;
+
+    final Properties properties = new Properties();
+    properties.putAll(defaultProperties);
+    properties.put("bootstrap.servers", bootstrapServers);
+    // properties.put("acks", this.acknowledges);
+    // properties.put("batch.size", this.batchSize);
+    // properties.put("linger.ms", this.lingerMs);
+    // properties.put("buffer.memory", this.bufferMemory);
+
+    this.producer = new KafkaProducer<>(properties, new StringSerializer(),
+        IMonitoringRecordSerde.serializer());
+  }
+
+  /**
+   * Write the passed monitoring record to Kafka.
+   */
+  public void write(final T monitoringRecord) {
+    final ProducerRecord<String, T> record =
+        new ProducerRecord<>(this.topic, null, this.timestampAccessor.apply(monitoringRecord),
+            this.keyAccessor.apply(monitoringRecord), monitoringRecord);
+
+    LOGGER.debug("Send record to Kafka topic {}: {}", this.topic, record);
+    this.producer.send(record);
+  }
+
+  public void terminate() {
+    this.producer.close();
+  }
+
+}
diff --git a/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGenerator.java b/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGenerator.java
index 0e085a53078c0aa85df0cdd7689ca50e5f5faa65..add72c61c2df712d90f9140805d973dfc4d42422 100644
--- a/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGenerator.java
+++ b/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGenerator.java
@@ -1,12 +1,5 @@
 package theodolite.uc2.workloadgenerator;
 
-import common.dimensions.Duration;
-import common.dimensions.KeySpace;
-import common.dimensions.Period;
-import common.generators.KafkaWorkloadGenerator;
-import common.generators.KafkaWorkloadGeneratorBuilder;
-import common.misc.ZooKeeper;
-import communication.kafka.KafkaRecordSender;
 import java.io.IOException;
 import java.util.Objects;
 import java.util.Properties;
@@ -14,7 +7,13 @@ import java.util.concurrent.TimeUnit;
 import org.apache.kafka.clients.producer.ProducerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import theodolite.kafkasender.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.communication.kafka.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.dimensions.Duration;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.dimensions.Period;
+import theodolite.commons.workloadgeneration.generators.KafkaWorkloadGenerator;
+import theodolite.commons.workloadgeneration.generators.KafkaWorkloadGeneratorBuilder;
+import theodolite.commons.workloadgeneration.misc.ZooKeeper;
 import titan.ccp.configuration.events.Event;
 import titan.ccp.model.sensorregistry.MutableAggregatedSensor;
 import titan.ccp.model.sensorregistry.MutableSensorRegistry;
diff --git a/uc3-application/src/main/java/uc3/streamprocessing/KafkaStreamsBuilder.java b/uc3-application/src/main/java/uc3/streamprocessing/KafkaStreamsBuilder.java
deleted file mode 100644
index 9c496fba2188758d37adf098e022f479e5129aec..0000000000000000000000000000000000000000
--- a/uc3-application/src/main/java/uc3/streamprocessing/KafkaStreamsBuilder.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package uc3.streamprocessing;
-
-import java.time.Duration;
-import java.util.Objects;
-import java.util.Properties;
-import org.apache.kafka.streams.KafkaStreams;
-import org.apache.kafka.streams.StreamsConfig;
-import spesb.uc3.streamprocessing.TopologyBuilder;
-import titan.ccp.common.kafka.streams.PropertiesBuilder;
-
-/**
- * Builder for the Kafka Streams configuration.
- */
-public class KafkaStreamsBuilder {
-
-  private static final String APPLICATION_NAME = "titan-ccp-history";
-  private static final String APPLICATION_VERSION = "0.0.1";
-
-  // private static final Logger LOGGER =
-  // LoggerFactory.getLogger(KafkaStreamsBuilder.class);
-
-  private String bootstrapServers; // NOPMD
-  private String inputTopic; // NOPMD
-  private String outputTopic; // NOPMD
-  private Duration windowDuration; // NOPMD
-  private int numThreads = -1; // NOPMD
-  private int commitIntervalMs = -1; // NOPMD
-  private int cacheMaxBytesBuff = -1; // NOPMD
-
-  public KafkaStreamsBuilder inputTopic(final String inputTopic) {
-    this.inputTopic = inputTopic;
-    return this;
-  }
-
-  public KafkaStreamsBuilder bootstrapServers(final String bootstrapServers) {
-    this.bootstrapServers = bootstrapServers;
-    return this;
-  }
-
-  public KafkaStreamsBuilder outputTopic(final String outputTopic) {
-    this.outputTopic = outputTopic;
-    return this;
-  }
-
-  public KafkaStreamsBuilder windowDuration(final Duration windowDuration) {
-    this.windowDuration = windowDuration;
-    return this;
-  }
-
-  /**
-   * Sets the Kafka Streams property for the number of threads (num.stream.threads). Can be minus
-   * one for using the default.
-   */
-  public KafkaStreamsBuilder numThreads(final int numThreads) {
-    if (numThreads < -1 || numThreads == 0) {
-      throw new IllegalArgumentException("Number of threads must be greater 0 or -1.");
-    }
-    this.numThreads = numThreads;
-    return this;
-  }
-
-  /**
-   * Sets the Kafka Streams property for the frequency with which to save the position (offsets in
-   * source topics) of tasks (commit.interval.ms). Must be zero for processing all record, for
-   * example, when processing bulks of records. Can be minus one for using the default.
-   */
-  public KafkaStreamsBuilder commitIntervalMs(final int commitIntervalMs) {
-    if (commitIntervalMs < -1) {
-      throw new IllegalArgumentException("Commit interval must be greater or equal -1.");
-    }
-    this.commitIntervalMs = commitIntervalMs;
-    return this;
-  }
-
-  /**
-   * Sets the Kafka Streams property for maximum number of memory bytes to be used for record caches
-   * across all threads (cache.max.bytes.buffering). Must be zero for processing all record, for
-   * example, when processing bulks of records. Can be minus one for using the default.
-   */
-  public KafkaStreamsBuilder cacheMaxBytesBuffering(final int cacheMaxBytesBuffering) {
-    if (cacheMaxBytesBuffering < -1) {
-      throw new IllegalArgumentException("Cache max bytes buffering must be greater or equal -1.");
-    }
-    this.cacheMaxBytesBuff = cacheMaxBytesBuffering;
-    return this;
-  }
-
-  /**
-   * Builds the {@link KafkaStreams} instance.
-   */
-  public KafkaStreams build() {
-    Objects.requireNonNull(this.inputTopic, "Input topic has not been set.");
-    // TODO log parameters
-    final TopologyBuilder topologyBuilder = new TopologyBuilder(this.inputTopic, this.outputTopic,
-        this.windowDuration);
-    final Properties properties = PropertiesBuilder.bootstrapServers(this.bootstrapServers)
-        .applicationId(APPLICATION_NAME + '-' + APPLICATION_VERSION) // TODO as parameter
-        .set(StreamsConfig.NUM_STREAM_THREADS_CONFIG, this.numThreads, p -> p > 0)
-        .set(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, this.commitIntervalMs, p -> p >= 0)
-        .set(StreamsConfig.CACHE_MAX_BYTES_BUFFERING_CONFIG, this.cacheMaxBytesBuff, p -> p >= 0)
-        // .set(StreamsConfig.METRICS_RECORDING_LEVEL_CONFIG, "DEBUG")
-        .build();
-    return new KafkaStreams(topologyBuilder.build(), properties);
-  }
-
-}
diff --git a/uc3-workload-generator/src/main/java/theodolite/uc3/workloadgenerator/LoadGenerator.java b/uc3-workload-generator/src/main/java/theodolite/uc3/workloadgenerator/LoadGenerator.java
index 126c5d753ca39a26d9fd44c7432b8f78673b49a7..c1152686aaa01697ae389a5ecc32dd97fe545ef5 100644
--- a/uc3-workload-generator/src/main/java/theodolite/uc3/workloadgenerator/LoadGenerator.java
+++ b/uc3-workload-generator/src/main/java/theodolite/uc3/workloadgenerator/LoadGenerator.java
@@ -1,12 +1,5 @@
 package theodolite.uc3.workloadgenerator;
 
-import common.dimensions.Duration;
-import common.dimensions.KeySpace;
-import common.dimensions.Period;
-import common.generators.KafkaWorkloadGenerator;
-import common.generators.KafkaWorkloadGeneratorBuilder;
-import common.misc.ZooKeeper;
-import communication.kafka.KafkaRecordSender;
 import java.io.IOException;
 import java.util.Objects;
 import java.util.Properties;
@@ -14,7 +7,13 @@ import java.util.concurrent.TimeUnit;
 import org.apache.kafka.clients.producer.ProducerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import theodolite.kafkasender.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.communication.kafka.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.dimensions.Duration;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.dimensions.Period;
+import theodolite.commons.workloadgeneration.generators.KafkaWorkloadGenerator;
+import theodolite.commons.workloadgeneration.generators.KafkaWorkloadGeneratorBuilder;
+import theodolite.commons.workloadgeneration.misc.ZooKeeper;
 import titan.ccp.models.records.ActivePowerRecord;
 
 public class LoadGenerator {
diff --git a/uc4-workload-generator/src/main/java/theodolite/uc4/workloadgenerator/LoadGenerator.java b/uc4-workload-generator/src/main/java/theodolite/uc4/workloadgenerator/LoadGenerator.java
index 35a54df16aa65923cf41859d58e2680ecce5f101..6eb99410f68f5b549b7bfe08bc3d0e505c24553a 100644
--- a/uc4-workload-generator/src/main/java/theodolite/uc4/workloadgenerator/LoadGenerator.java
+++ b/uc4-workload-generator/src/main/java/theodolite/uc4/workloadgenerator/LoadGenerator.java
@@ -1,12 +1,5 @@
 package theodolite.uc4.workloadgenerator;
 
-import common.dimensions.Duration;
-import common.dimensions.KeySpace;
-import common.dimensions.Period;
-import common.generators.KafkaWorkloadGenerator;
-import common.generators.KafkaWorkloadGeneratorBuilder;
-import common.misc.ZooKeeper;
-import communication.kafka.KafkaRecordSender;
 import java.io.IOException;
 import java.util.Objects;
 import java.util.Properties;
@@ -14,10 +7,13 @@ import java.util.concurrent.TimeUnit;
 import org.apache.kafka.clients.producer.ProducerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-<<<<<<< HEAD:uc4-workload-generator/src/main/java/spesb/uc4/workloadgenerator/LoadGenerator.java
-=======
-import theodolite.kafkasender.KafkaRecordSender;
->>>>>>> master:uc4-workload-generator/src/main/java/theodolite/uc4/workloadgenerator/LoadGenerator.java
+import theodolite.commons.workloadgeneration.communication.kafka.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.dimensions.Duration;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.dimensions.Period;
+import theodolite.commons.workloadgeneration.generators.KafkaWorkloadGenerator;
+import theodolite.commons.workloadgeneration.generators.KafkaWorkloadGeneratorBuilder;
+import theodolite.commons.workloadgeneration.misc.ZooKeeper;
 import titan.ccp.models.records.ActivePowerRecord;
 
 public class LoadGenerator {
diff --git a/workload-generator-common/build.gradle b/workload-generator-common/build.gradle
deleted file mode 100644
index 5ce6a38befce006491cdc25f843a23256d9f55a2..0000000000000000000000000000000000000000
--- a/workload-generator-common/build.gradle
+++ /dev/null
@@ -1,3 +0,0 @@
-dependencies {
-    compile 'org.apache.curator:curator-recipes:4.3.0'
-}
\ No newline at end of file
diff --git a/workload-generator-commons/.directory b/workload-generator-commons/.directory
new file mode 100644
index 0000000000000000000000000000000000000000..6c415bdba7ba82ce6ade83366262adea4e8ef3bc
--- /dev/null
+++ b/workload-generator-commons/.directory
@@ -0,0 +1,6 @@
+[Dolphin]
+Timestamp=2020,6,7,21,3,5
+Version=4
+
+[Settings]
+HiddenFilesShown=true
diff --git a/workload-generator-common/.settings/org.eclipse.jdt.ui.prefs b/workload-generator-commons/.settings/.settings/org.eclipse.jdt.ui.prefs
similarity index 95%
rename from workload-generator-common/.settings/org.eclipse.jdt.ui.prefs
rename to workload-generator-commons/.settings/.settings/org.eclipse.jdt.ui.prefs
index 733a83a71b9a385cba318de8176b4dc45d0635ff..98b5ca8064a352aacfe2aebd13fbd0a87735fc3e 100644
--- a/workload-generator-common/.settings/org.eclipse.jdt.ui.prefs
+++ b/workload-generator-commons/.settings/.settings/org.eclipse.jdt.ui.prefs
@@ -32,7 +32,7 @@ cleanup.qualify_static_member_accesses_with_declaring_class=true
 cleanup.qualify_static_method_accesses_with_declaring_class=false
 cleanup.remove_private_constructors=true
 cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
+cleanup.remove_redundant_semicolons=false
 cleanup.remove_redundant_type_arguments=true
 cleanup.remove_trailing_whitespaces=true
 cleanup.remove_trailing_whitespaces_all=true
@@ -61,12 +61,11 @@ cleanup_settings_version=2
 eclipse.preferences.version=1
 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
 formatter_profile=_CAU-SE-Style
-formatter_settings_version=16
+formatter_settings_version=15
 org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.importorder=;
 org.eclipse.jdt.ui.ondemandthreshold=99
 org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=
 sp_cleanup.add_default_serial_version_id=true
 sp_cleanup.add_generated_serial_version_id=false
 sp_cleanup.add_missing_annotations=true
@@ -101,8 +100,8 @@ sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=
 sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
 sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=true
-sp_cleanup.remove_redundant_semicolons=true
+sp_cleanup.remove_redundant_modifiers=false
+sp_cleanup.remove_redundant_semicolons=false
 sp_cleanup.remove_redundant_type_arguments=true
 sp_cleanup.remove_trailing_whitespaces=true
 sp_cleanup.remove_trailing_whitespaces_all=true
diff --git a/workload-generator-common/.settings/qa.eclipse.plugin.checkstyle.prefs b/workload-generator-commons/.settings/.settings/qa.eclipse.plugin.checkstyle.prefs
similarity index 100%
rename from workload-generator-common/.settings/qa.eclipse.plugin.checkstyle.prefs
rename to workload-generator-commons/.settings/.settings/qa.eclipse.plugin.checkstyle.prefs
diff --git a/workload-generator-common/.settings/qa.eclipse.plugin.pmd.prefs b/workload-generator-commons/.settings/.settings/qa.eclipse.plugin.pmd.prefs
similarity index 100%
rename from workload-generator-common/.settings/qa.eclipse.plugin.pmd.prefs
rename to workload-generator-commons/.settings/.settings/qa.eclipse.plugin.pmd.prefs
diff --git a/workload-generator-commons/.settings/org.eclipse.jdt.ui.prefs b/workload-generator-commons/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..98b5ca8064a352aacfe2aebd13fbd0a87735fc3e
--- /dev/null
+++ b/workload-generator-commons/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=true
+cleanup.always_use_this_for_non_static_method_access=true
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=true
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=true
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_modifiers=false
+cleanup.remove_redundant_semicolons=false
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=false
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=false
+cleanup_profile=_CAU-SE-Style
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_CAU-SE-Style
+formatter_settings_version=15
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=;
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=true
+sp_cleanup.always_use_this_for_non_static_method_access=true
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=true
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_modifiers=false
+sp_cleanup.remove_redundant_semicolons=false
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
diff --git a/workload-generator-commons/.settings/qa.eclipse.plugin.checkstyle.prefs b/workload-generator-commons/.settings/qa.eclipse.plugin.checkstyle.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..87860c815222845c1d264d7d0ce498d3397f8280
--- /dev/null
+++ b/workload-generator-commons/.settings/qa.eclipse.plugin.checkstyle.prefs
@@ -0,0 +1,4 @@
+configFilePath=../config/checkstyle.xml
+customModulesJarPaths=
+eclipse.preferences.version=1
+enabled=true
diff --git a/workload-generator-commons/.settings/qa.eclipse.plugin.pmd.prefs b/workload-generator-commons/.settings/qa.eclipse.plugin.pmd.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..efbcb8c9e5d449194a48ca1ea42b7d807b573db9
--- /dev/null
+++ b/workload-generator-commons/.settings/qa.eclipse.plugin.pmd.prefs
@@ -0,0 +1,4 @@
+customRulesJars=
+eclipse.preferences.version=1
+enabled=true
+ruleSetFilePath=../config/pmd.xml
diff --git a/workload-generator-commons/build.gradle b/workload-generator-commons/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..eef987cd444c3b6c3d8a532c8d192e94311176db
--- /dev/null
+++ b/workload-generator-commons/build.gradle
@@ -0,0 +1,3 @@
+dependencies {
+    implementation 'org.apache.curator:curator-recipes:4.3.0'
+}
\ No newline at end of file
diff --git a/workload-generator-common/src/main/java/communication/kafka/KafkaRecordSender.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/communication/kafka/KafkaRecordSender.java
similarity index 95%
rename from workload-generator-common/src/main/java/communication/kafka/KafkaRecordSender.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/communication/kafka/KafkaRecordSender.java
index 02312f9d217502b47ddbadae8252d678121184f6..d78171b7ab76b5dad7fe5167d060e594294b2760 100644
--- a/workload-generator-common/src/main/java/communication/kafka/KafkaRecordSender.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/communication/kafka/KafkaRecordSender.java
@@ -1,4 +1,4 @@
-package communication.kafka;
+package theodolite.commons.workloadgeneration.communication.kafka;
 
 import java.util.Properties;
 import java.util.function.Function;
@@ -8,11 +8,10 @@ import org.apache.kafka.clients.producer.ProducerRecord;
 import org.apache.kafka.common.serialization.StringSerializer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import common.functions.Transport;
 import kieker.common.record.IMonitoringRecord;
+import theodolite.commons.workloadgeneration.functions.Transport;
 import titan.ccp.common.kieker.kafka.IMonitoringRecordSerde;
 
-
 /**
  * Sends monitoring records to Kafka.
  *
diff --git a/workload-generator-common/src/main/java/communication/zookeeper/WorkloadDistributor.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/communication/zookeeper/WorkloadDistributor.java
similarity index 93%
rename from workload-generator-common/src/main/java/communication/zookeeper/WorkloadDistributor.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/communication/zookeeper/WorkloadDistributor.java
index f81ac94f7bff7ab1b17f6917bf69b455894a6202..99b40c0b7a28c4a31ad9fbd5039d464df468ec19 100644
--- a/workload-generator-common/src/main/java/communication/zookeeper/WorkloadDistributor.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/communication/zookeeper/WorkloadDistributor.java
@@ -1,4 +1,4 @@
-package communication.zookeeper;
+package theodolite.commons.workloadgeneration.communication.zookeeper;
 
 import java.nio.charset.StandardCharsets;
 import java.util.function.BiConsumer;
@@ -13,11 +13,11 @@ import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.Watcher.Event.EventType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import common.dimensions.KeySpace;
-import common.functions.BeforeAction;
-import common.misc.Worker;
-import common.misc.WorkloadDefinition;
-import common.misc.ZooKeeper;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.functions.BeforeAction;
+import theodolite.commons.workloadgeneration.misc.Worker;
+import theodolite.commons.workloadgeneration.misc.WorkloadDefinition;
+import theodolite.commons.workloadgeneration.misc.ZooKeeper;
 
 /*
  * The central class responsible for distributing the workload through all workload generators.
diff --git a/workload-generator-common/src/main/java/common/dimensions/Duration.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/Duration.java
similarity index 83%
rename from workload-generator-common/src/main/java/common/dimensions/Duration.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/Duration.java
index 7fac08ae16c2f35434b8b46e214ce312d8dcab2e..9744117c5247452e23e252a97197cfa14fda296c 100644
--- a/workload-generator-common/src/main/java/common/dimensions/Duration.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/Duration.java
@@ -1,7 +1,7 @@
-package common.dimensions;
+package theodolite.commons.workloadgeneration.dimensions;
 
 import java.util.concurrent.TimeUnit;
-import common.generators.WorkloadGenerator;
+import theodolite.commons.workloadgeneration.generators.WorkloadGenerator;
 
 /**
  * Wrapper class for the definition of the duration for the {@link WorkloadGenerator}.
diff --git a/workload-generator-common/src/main/java/common/dimensions/KeySpace.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/KeySpace.java
similarity index 90%
rename from workload-generator-common/src/main/java/common/dimensions/KeySpace.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/KeySpace.java
index 20bcc964b2376bac06c51afaba3600ea1e9485d1..686fbe2c3f7c5b1121bdfd06e0472ff9d5a6118c 100644
--- a/workload-generator-common/src/main/java/common/dimensions/KeySpace.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/KeySpace.java
@@ -1,6 +1,6 @@
-package common.dimensions;
+package theodolite.commons.workloadgeneration.dimensions;
 
-import common.generators.WorkloadGenerator;
+import theodolite.commons.workloadgeneration.generators.WorkloadGenerator;
 
 /**
  * Wrapper class for the definition of the Keys that should be used by the
diff --git a/workload-generator-common/src/main/java/common/dimensions/Period.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/Period.java
similarity index 82%
rename from workload-generator-common/src/main/java/common/dimensions/Period.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/Period.java
index 0ba24f798e7f4126bd770d7fdd5912fdeb8dafd8..e96546ab904e8677bd586aeccc122cd88b449a38 100644
--- a/workload-generator-common/src/main/java/common/dimensions/Period.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/dimensions/Period.java
@@ -1,7 +1,7 @@
-package common.dimensions;
+package theodolite.commons.workloadgeneration.dimensions;
 
 import java.util.concurrent.TimeUnit;
-import common.generators.WorkloadGenerator;
+import theodolite.commons.workloadgeneration.generators.WorkloadGenerator;
 
 /**
  * Wrapper class for the definition of period to use for the {@link WorkloadGenerator}.
diff --git a/workload-generator-common/src/main/java/common/functions/BeforeAction.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/BeforeAction.java
similarity index 58%
rename from workload-generator-common/src/main/java/common/functions/BeforeAction.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/BeforeAction.java
index a9c953b5feeb13c798f0be49422563070dab9865..7bf2a415e1567497da672fd70c75fcf7ecf99c1b 100644
--- a/workload-generator-common/src/main/java/common/functions/BeforeAction.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/BeforeAction.java
@@ -1,4 +1,4 @@
-package common.functions;
+package theodolite.commons.workloadgeneration.functions;
 
 @FunctionalInterface
 public interface BeforeAction {
diff --git a/workload-generator-common/src/main/java/common/functions/MessageGenerator.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/MessageGenerator.java
similarity index 75%
rename from workload-generator-common/src/main/java/common/functions/MessageGenerator.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/MessageGenerator.java
index af874ecf015c0c21cc58067c66920689e102f14d..2d30e108b16548e5e9137463aca91056b204bb08 100644
--- a/workload-generator-common/src/main/java/common/functions/MessageGenerator.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/MessageGenerator.java
@@ -1,4 +1,4 @@
-package common.functions;
+package theodolite.commons.workloadgeneration.functions;
 
 import kieker.common.record.IMonitoringRecord;
 
diff --git a/workload-generator-common/src/main/java/common/functions/Transport.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/Transport.java
similarity index 74%
rename from workload-generator-common/src/main/java/common/functions/Transport.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/Transport.java
index d4e5f1ef15ebfe4f6a1de3c5576ab2839feea956..1175b35e7c445ede30423805510b6b7756980eea 100644
--- a/workload-generator-common/src/main/java/common/functions/Transport.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/functions/Transport.java
@@ -1,4 +1,4 @@
-package common.functions;
+package theodolite.commons.workloadgeneration.functions;
 
 import kieker.common.record.IMonitoringRecord;
 
diff --git a/workload-generator-common/src/main/java/common/generators/IWorkloadGenerator.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/IWorkloadGenerator.java
similarity index 79%
rename from workload-generator-common/src/main/java/common/generators/IWorkloadGenerator.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/IWorkloadGenerator.java
index dfb166c7a101e82f76ad002b35f10c38e3675f60..2cdef55545d5e3dfa7450937a0a78021706ad1b0 100644
--- a/workload-generator-common/src/main/java/common/generators/IWorkloadGenerator.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/IWorkloadGenerator.java
@@ -1,4 +1,4 @@
-package common.generators;
+package theodolite.commons.workloadgeneration.generators;
 
 /**
  * Base methods for workload generators.
diff --git a/workload-generator-common/src/main/java/common/generators/KafkaWorkloadGenerator.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/KafkaWorkloadGenerator.java
similarity index 75%
rename from workload-generator-common/src/main/java/common/generators/KafkaWorkloadGenerator.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/KafkaWorkloadGenerator.java
index 44327083dbd6236ffd2b5b16d45eb03c6f346a08..96d70f09492bc8c8cd9b25cf5ddb0157c9650927 100644
--- a/workload-generator-common/src/main/java/common/generators/KafkaWorkloadGenerator.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/KafkaWorkloadGenerator.java
@@ -1,13 +1,13 @@
-package common.generators;
+package theodolite.commons.workloadgeneration.generators;
 
-import common.dimensions.Duration;
-import common.dimensions.KeySpace;
-import common.dimensions.Period;
-import common.functions.BeforeAction;
-import common.functions.MessageGenerator;
-import common.misc.ZooKeeper;
-import communication.kafka.KafkaRecordSender;
 import kieker.common.record.IMonitoringRecord;
+import theodolite.commons.workloadgeneration.communication.kafka.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.dimensions.Duration;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.dimensions.Period;
+import theodolite.commons.workloadgeneration.functions.BeforeAction;
+import theodolite.commons.workloadgeneration.functions.MessageGenerator;
+import theodolite.commons.workloadgeneration.misc.ZooKeeper;
 
 /**
  * Workload generator for generating load for the kafka messaging system.
diff --git a/workload-generator-common/src/main/java/common/generators/KafkaWorkloadGeneratorBuilder.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/KafkaWorkloadGeneratorBuilder.java
similarity index 89%
rename from workload-generator-common/src/main/java/common/generators/KafkaWorkloadGeneratorBuilder.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/KafkaWorkloadGeneratorBuilder.java
index db58f49593ff4a91982f7a448d9e8aee988a64f0..c76c53499fbcbc569d7526f3e6fe617ad25561e9 100644
--- a/workload-generator-common/src/main/java/common/generators/KafkaWorkloadGeneratorBuilder.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/KafkaWorkloadGeneratorBuilder.java
@@ -1,14 +1,14 @@
-package common.generators;
+package theodolite.commons.workloadgeneration.generators;
 
 import java.util.Objects;
-import common.dimensions.Duration;
-import common.dimensions.KeySpace;
-import common.dimensions.Period;
-import common.functions.BeforeAction;
-import common.functions.MessageGenerator;
-import common.misc.ZooKeeper;
-import communication.kafka.KafkaRecordSender;
 import kieker.common.record.IMonitoringRecord;
+import theodolite.commons.workloadgeneration.communication.kafka.KafkaRecordSender;
+import theodolite.commons.workloadgeneration.dimensions.Duration;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.dimensions.Period;
+import theodolite.commons.workloadgeneration.functions.BeforeAction;
+import theodolite.commons.workloadgeneration.functions.MessageGenerator;
+import theodolite.commons.workloadgeneration.misc.ZooKeeper;
 
 public class KafkaWorkloadGeneratorBuilder<T extends IMonitoringRecord> {
 
diff --git a/workload-generator-common/src/main/java/common/generators/WorkloadGenerator.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/WorkloadGenerator.java
similarity index 81%
rename from workload-generator-common/src/main/java/common/generators/WorkloadGenerator.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/WorkloadGenerator.java
index 452ca49af7b070f33867a62a631884f14aee76f6..412a59b8afd75547d14154d58ece6f717ec5e207 100644
--- a/workload-generator-common/src/main/java/common/generators/WorkloadGenerator.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/generators/WorkloadGenerator.java
@@ -1,4 +1,4 @@
-package common.generators;
+package theodolite.commons.workloadgeneration.generators;
 
 import java.util.LinkedList;
 import java.util.List;
@@ -9,18 +9,18 @@ import java.util.function.BiConsumer;
 import java.util.function.BiFunction;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import common.dimensions.Duration;
-import common.dimensions.KeySpace;
-import common.dimensions.Period;
-import common.functions.BeforeAction;
-import common.functions.MessageGenerator;
-import common.functions.Transport;
-import common.misc.Worker;
-import common.misc.WorkloadDefinition;
-import common.misc.WorkloadEntity;
-import common.misc.ZooKeeper;
-import communication.zookeeper.WorkloadDistributor;
 import kieker.common.record.IMonitoringRecord;
+import theodolite.commons.workloadgeneration.communication.zookeeper.WorkloadDistributor;
+import theodolite.commons.workloadgeneration.dimensions.Duration;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.dimensions.Period;
+import theodolite.commons.workloadgeneration.functions.BeforeAction;
+import theodolite.commons.workloadgeneration.functions.MessageGenerator;
+import theodolite.commons.workloadgeneration.functions.Transport;
+import theodolite.commons.workloadgeneration.misc.Worker;
+import theodolite.commons.workloadgeneration.misc.WorkloadDefinition;
+import theodolite.commons.workloadgeneration.misc.WorkloadEntity;
+import theodolite.commons.workloadgeneration.misc.ZooKeeper;
 
 public abstract class WorkloadGenerator<T extends IMonitoringRecord> implements IWorkloadGenerator {
 
diff --git a/workload-generator-common/src/main/java/common/misc/Worker.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/Worker.java
similarity index 85%
rename from workload-generator-common/src/main/java/common/misc/Worker.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/Worker.java
index 5452b156fe9c1e5403e37196b66c91811073b238..47b4a334ca5df1d439c88bb1f364622152f03233 100644
--- a/workload-generator-common/src/main/java/common/misc/Worker.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/Worker.java
@@ -1,4 +1,4 @@
-package common.misc;
+package theodolite.commons.workloadgeneration.misc;
 
 /*
  * Wrapper class for a worker.
diff --git a/workload-generator-common/src/main/java/common/misc/WorkloadDefinition.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/WorkloadDefinition.java
similarity index 94%
rename from workload-generator-common/src/main/java/common/misc/WorkloadDefinition.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/WorkloadDefinition.java
index 7a1c3cd735ffb10f8c770afc96283f66722e9c87..79e3cb6057480aa8a7d13bfc2cf1b1e69b915882 100644
--- a/workload-generator-common/src/main/java/common/misc/WorkloadDefinition.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/WorkloadDefinition.java
@@ -1,6 +1,6 @@
-package common.misc;
+package theodolite.commons.workloadgeneration.misc;
 
-import common.dimensions.KeySpace;
+import theodolite.commons.workloadgeneration.dimensions.KeySpace;
 
 /*
  * The central class that contains all information that needs to be exchanged between the nodes for
diff --git a/workload-generator-common/src/main/java/common/misc/WorkloadEntity.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/WorkloadEntity.java
similarity index 80%
rename from workload-generator-common/src/main/java/common/misc/WorkloadEntity.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/WorkloadEntity.java
index b31982d517a7182a72b1635d94814f918b6c5838..66c347eaf1ca17b6f76ac9a5678cbbc8bbe07c9a 100644
--- a/workload-generator-common/src/main/java/common/misc/WorkloadEntity.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/WorkloadEntity.java
@@ -1,7 +1,7 @@
-package common.misc;
+package theodolite.commons.workloadgeneration.misc;
 
-import common.functions.MessageGenerator;
 import kieker.common.record.IMonitoringRecord;
+import theodolite.commons.workloadgeneration.functions.MessageGenerator;
 
 /*
  * Representation of a entity of the workload generation that generates load for one fixed key.
diff --git a/workload-generator-common/src/main/java/common/misc/ZooKeeper.java b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/ZooKeeper.java
similarity index 90%
rename from workload-generator-common/src/main/java/common/misc/ZooKeeper.java
rename to workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/ZooKeeper.java
index e1698e8c5cf7ad66382e200512020f9446b51ca1..3e6393b0d04a6c450cdefc6221dcbf57cb7f57d9 100644
--- a/workload-generator-common/src/main/java/common/misc/ZooKeeper.java
+++ b/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/misc/ZooKeeper.java
@@ -1,4 +1,4 @@
-package common.misc;
+package theodolite.commons.workloadgeneration.misc;
 
 /*
  * Wrapper for connection information for ZooKeeper.