diff --git a/.settings/qa.eclipse.plugin.checkstyle.prefs b/.settings/qa.eclipse.plugin.checkstyle.prefs
index 64a0564d59f627ecf6dc178fd69f2788a74da418..2e24669b8614a13e1a133bab499a588c3a1d1758 100644
--- a/.settings/qa.eclipse.plugin.checkstyle.prefs
+++ b/.settings/qa.eclipse.plugin.checkstyle.prefs
@@ -1,4 +1,4 @@
 configFilePath=config/checkstyle.xml
 customModulesJarPaths=
 eclipse.preferences.version=1
-enabled=true
+enabled=false
diff --git a/.settings/qa.eclipse.plugin.pmd.prefs b/.settings/qa.eclipse.plugin.pmd.prefs
index 04ac39484810c88779a38e11662b0bab0961a22e..a8950d58ca40d8762a665ce3174deda7b2d89b85 100644
--- a/.settings/qa.eclipse.plugin.pmd.prefs
+++ b/.settings/qa.eclipse.plugin.pmd.prefs
@@ -1,4 +1,4 @@
 customRulesJars=
 eclipse.preferences.version=1
-enabled=true
+enabled=false
 ruleSetFilePath=config/pmd.xml
diff --git a/analysis/README.md b/analysis/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5318425825a51b4ab118bb1c6c11dfc92037c6a1
--- /dev/null
+++ b/analysis/README.md
@@ -0,0 +1,22 @@
+# Theodolite Analysis
+
+This directory contains Jupyter notebooks for analyzing and visualizing
+benchmark execution results and plotting. The following notebooks are provided:
+
+* [scalability-graph.ipynb](scalability-graph.ipynb): Creates a scalability graph for a certain benchmark execution.
+* [scalability-graph-final.ipynb](scalability-graph-final.ipynb): Combines the scalability graphs of multiple benchmarks executions (e.g. for comparing different configuration).
+* [lag-trend-graph.ipynb](lag-trend-graph.ipynb): Visualizes the consumer lag evaluation over time along with the computed trend.
+
+## Usage
+
+For executing benchmarks and analyzing their results, a **Python 3.7**
+installation is required (e.g., in a virtual environment). Our notebooks require some
+Python libraries, which can be installed via:
+
+```sh
+pip install -r requirements.txt 
+```
+
+ We have tested these
+notebooks with [Visual Studio Code](https://code.visualstudio.com/docs/python/jupyter-support),
+however, every other server should be fine as well.
diff --git a/execution/lag-trend-graph.ipynb b/analysis/lag-trend-graph.ipynb
similarity index 91%
rename from execution/lag-trend-graph.ipynb
rename to analysis/lag-trend-graph.ipynb
index 71cd54ceefbcce4548e118a9dd0ab484df52a207..4e574ceb6a6273a7299bb50d9e81598002c330f5 100644
--- a/execution/lag-trend-graph.ipynb
+++ b/analysis/lag-trend-graph.ipynb
@@ -20,8 +20,9 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "directory = ''\n",
-    "filename = 'xxx_totallag.csv'\n",
+    "directory = '<path-to>/results'\n",
+    "#filename = 'exp1002_uc3_75000_1_totallag.csv'\n",
+    "filename = 'exp1002_uc3_50000_2_totallag.csv'\n",
     "warmup_sec = 60\n",
     "threshold = 2000 #slope"
    ]
@@ -105,20 +106,6 @@
     "\n",
     "plt.savefig(\"plot.pdf\", bbox_inches='tight')\n"
    ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {
@@ -138,7 +125,7 @@
   "pygments_lexer": "ipython3",
   "version": 3,
   "kernelspec": {
-   "name": "python37064bitvenvvenv469ea2e0a7854dc7b367eee45386afee",
+   "name": "python37064bitvenvvenv21b61136d7f443749f2918b47e00d223",
    "display_name": "Python 3.7.0 64-bit ('.venv': venv)"
   }
  },
diff --git a/analysis/requirements.txt b/analysis/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c97a862620dfc9cd9602fe02e420752b077c6c0a
--- /dev/null
+++ b/analysis/requirements.txt
@@ -0,0 +1,4 @@
+jupyter==1.0.0
+matplotlib==3.2.0
+pandas==1.0.1
+scikit-learn==0.22.2.post1
\ No newline at end of file
diff --git a/execution/scalability-graph.ipynb b/analysis/scalability-graph.ipynb
similarity index 95%
rename from execution/scalability-graph.ipynb
rename to analysis/scalability-graph.ipynb
index 752c0bebc901e756e18d4b11fc0d8ae02cddcf13..868f950dfea091b8fd6dbc78dc4b7471086c8947 100644
--- a/execution/scalability-graph.ipynb
+++ b/analysis/scalability-graph.ipynb
@@ -16,7 +16,6 @@
    "outputs": [],
    "source": [
     "import os\n",
-    "import requests\n",
     "from datetime import datetime, timedelta, timezone\n",
     "import pandas as pd\n",
     "from sklearn.linear_model import LinearRegression\n",
@@ -38,11 +37,13 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "exp_id = 1003\n",
+    "exp_id = 2012\n",
     "warmup_sec = 60\n",
     "warmup_partitions_sec = 120\n",
     "threshold = 2000 #slope\n",
-    "directory = '../results'\n"
+    "#directory = '../results'\n",
+    "directory = '<path-to>/results'\n",
+    "directory_out = '<path-to>/results-inst'\n"
    ]
   },
   {
@@ -244,7 +245,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "min_suitable_instances.to_csv(f'../results-inst/exp{exp_id}_min-suitable-instances.csv', index=False)"
+    "min_suitable_instances.to_csv(os.path.join(directory_out, f'../results-inst/exp{exp_id}_min-suitable-instances.csv'), index=False)"
    ]
   },
   {
@@ -284,7 +285,7 @@
   "pygments_lexer": "ipython3",
   "version": 3,
   "kernelspec": {
-   "name": "python37064bitvenvvenv469ea2e0a7854dc7b367eee45386afee",
+   "name": "python37064bitvenvvenv6c432ee1239d4f3cb23f871068b0267d",
    "display_name": "Python 3.7.0 64-bit ('.venv': venv)"
   }
  },
diff --git a/application-kafkastreams-commons/src/main/java/spesb/commons/kafkastreams/KafkaStreamsBuilder.java b/application-kafkastreams-commons/src/main/java/theodolite/commons/kafkastreams/KafkaStreamsBuilder.java
similarity index 99%
rename from application-kafkastreams-commons/src/main/java/spesb/commons/kafkastreams/KafkaStreamsBuilder.java
rename to application-kafkastreams-commons/src/main/java/theodolite/commons/kafkastreams/KafkaStreamsBuilder.java
index 3101225d992476e3e9f29b141542609d887c6259..ae2a6dafa3d36dada927d17a1ca00d2df63db78b 100644
--- a/application-kafkastreams-commons/src/main/java/spesb/commons/kafkastreams/KafkaStreamsBuilder.java
+++ b/application-kafkastreams-commons/src/main/java/theodolite/commons/kafkastreams/KafkaStreamsBuilder.java
@@ -1,4 +1,4 @@
-package spesb.commons.kafkastreams;
+package theodolite.commons.kafkastreams;
 
 import java.util.Objects;
 import java.util.Properties;
diff --git a/application-kafkastreams-commons/src/test/java/.gitkeep b/application-kafkastreams-commons/src/test/java/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/execution/README.md b/execution/README.md
index f7df1a32ad8b7898ba34b792095957a8e1362fc8..42fe9647d11daf16cfb50d91da1af8b72d9abf5d 100644
--- a/execution/README.md
+++ b/execution/README.md
@@ -1,13 +1,20 @@
-# Requirements
+# Theodolite Execution Framework
 
+This directory contains the Theodolite framework for executing scalability
+benchmarks in a Kubernetes cluster. As Theodolite aims for executing benchmarks
+in realistic execution environments,, some third-party components are [required](#requirements).
+After everything is installed and configured, you can move on the [execution of
+benchmarks](#execution).
 
-## Kubernetes Cluster
+## Requirements
+
+### Kubernetes Cluster
 
 For executing benchmarks, access to Kubernetes cluster is required. We suggest
 to create a dedicated namespace for executing our benchmarks. The following
 services need to be available as well.
 
-### Prometheus
+#### Prometheus
 
 We suggest to use the [Prometheus Operator](https://github.com/coreos/prometheus-operator)
 and create a dedicated Prometheus instance for these benchmarks.
@@ -34,7 +41,7 @@ depending on your cluster's security policies.
 For the individual benchmarking components to be monitored, [ServiceMonitors](https://github.com/coreos/prometheus-operator#customresourcedefinitions)
 are used. See the corresponding sections below for how to install them.
 
-### Grafana
+#### Grafana
 
 As with Prometheus, we suggest to create a dedicated Grafana instance. Grafana
 with our default configuration can be installed with Helm:
@@ -60,7 +67,7 @@ Create the Configmap for the data source:
 kubectl apply -f infrastructure/grafana/prometheus-datasource-config-map.yaml
 ```
 
-### A Kafka cluster
+#### A Kafka cluster
 
 One possible way to set up a Kafka cluster is via [Confluent's Helm Charts](https://github.com/confluentinc/cp-helm-charts).
 For using these Helm charts and conjuction with the Prometheus Operator (see
@@ -68,7 +75,7 @@ below), we provide a [patch](https://github.com/SoerenHenning/cp-helm-charts)
 for these helm charts. Note that this patch is only required for observation and
 not for the actual benchmark execution and evaluation.
 
-#### Our patched Confluent Helm Charts
+##### Our patched Confluent Helm Charts
 
 To use our patched Confluent Helm Charts clone the
 [chart's repsoitory](https://github.com/SoerenHenning/cp-helm-charts). We also
@@ -86,11 +93,11 @@ To let Prometheus scrape Kafka metrics, deploy a ServiceMonitor:
 kubectl apply -f infrastructure/kafka/service-monitor.yaml
 ```
 
-#### Other options for Kafka
+##### Other options for Kafka
 
 Other Kafka deployments, for example, using Strimzi, should work in similiar way.
 
-### The Kafka Lag Exporter
+#### The Kafka Lag Exporter
 
 [Lightbend's Kafka Lag Exporter](https://github.com/lightbend/kafka-lag-exporter)
 can be installed via Helm. We also provide a [default configuration](infrastructure/kafka-lag-exporter/values.yaml).
@@ -107,21 +114,19 @@ kubectl apply -f infrastructure/kafka-lag-exporter/service-monitor.yaml
 ```
 
 
-## Python 3.7
-
-For executing benchmarks and analyzing their results, a **Python 3.7** installation
-is required. We suggest to use a virtual environment placed in the `.venv` directory.
+### Python 3.7
 
-As set of requirements is needed for the analysis Jupyter notebooks and the
-execution tool. You can install them with the following command (make sure to
-be in your virtual environment if you use one):
+For executing benchmarks, a **Python 3.7** installation is required. We suggest
+to use a virtual environment placed in the `.venv` directory (in the Theodolite
+root directory). As set of requirements is needed. You can install them with the following
+command (make sure to be in your virtual environment if you use one):
 
 ```sh
 pip install -r requirements.txt 
 ```
 
 
-## Required Manual Adjustments
+### Required Manual Adjustments
 
 Depending on your setup, some additional adjustments may be necessary:
 
@@ -133,7 +138,7 @@ Depending on your setup, some additional adjustments may be necessary:
 
 
 
-# Execution
+## Execution
 
 The `./run_loop.sh` is the entrypoint for all benchmark executions. Is has to be called as follows:
 
diff --git a/execution/lag_analysis.py b/execution/lag_analysis.py
index a722edeef804071ba7e0776a169eee3a8daa614b..23e3d5f6c9552814f5301cd81e517f49d044cd33 100644
--- a/execution/lag_analysis.py
+++ b/execution/lag_analysis.py
@@ -11,7 +11,7 @@ exp_id =  sys.argv[1]
 benchmark = sys.argv[2]
 dim_value = sys.argv[3]
 instances = sys.argv[4]
-execution_minutes = sys.argv[5]
+execution_minutes = int(sys.argv[5])
 time_diff_ms = int(os.getenv('CLOCK_DIFF_MS', 0))
 
 #http://localhost:9090/api/v1/query_range?query=sum%20by(job,topic)(kafka_consumer_consumer_fetch_manager_metrics_records_lag)&start=2015-07-01T20:10:30.781Z&end=2020-07-01T20:11:00.781Z&step=15s
diff --git a/execution/requirements.txt b/execution/requirements.txt
index 17f29b0b16a3f130399612c7bffd3ce12896c946..7224efe80aa1686bb3de90b2beac5df47a56ed8f 100644
--- a/execution/requirements.txt
+++ b/execution/requirements.txt
@@ -1,62 +1,4 @@
-attrs==19.3.0
-backcall==0.1.0
-bleach==3.1.1
-certifi==2019.11.28
-chardet==3.0.4
-cycler==0.10.0
-decorator==4.4.2
-defusedxml==0.6.0
-entrypoints==0.3
-idna==2.9
-importlib-metadata==1.5.0
-ipykernel==5.1.4
-ipython==7.13.0
-ipython-genutils==0.2.0
-ipywidgets==7.5.1
-jedi==0.16.0
-Jinja2==2.11.1
-joblib==0.14.1
-jsonschema==3.2.0
-jupyter==1.0.0
-jupyter-client==6.0.0
-jupyter-console==6.1.0
-jupyter-core==4.6.3
-kiwisolver==1.1.0
-MarkupSafe==1.1.1
 matplotlib==3.2.0
-mistune==0.8.4
-nbconvert==5.6.1
-nbformat==5.0.4
-notebook==6.0.3
-numpy==1.18.1
 pandas==1.0.1
-pandocfilters==1.4.2
-parso==0.6.2
-pexpect==4.8.0
-pickleshare==0.7.5
-prometheus-client==0.7.1
-prompt-toolkit==3.0.4
-ptyprocess==0.6.0
-Pygments==2.6.1
-pyparsing==2.4.6
-pyrsistent==0.15.7
-python-dateutil==2.8.1
-pytz==2019.3
-pyzmq==19.0.0
-qtconsole==4.7.1
-QtPy==1.9.0
 requests==2.23.0
-scikit-learn==0.22.2.post1
-scipy==1.4.1
-Send2Trash==1.5.0
-six==1.14.0
-sklearn==0.0
-terminado==0.8.3
-testpath==0.4.4
-tornado==6.0.4
-traitlets==4.3.3
-urllib3==1.25.8
-wcwidth==0.1.8
-webencodings==0.5.1
-widgetsnbextension==3.5.1
-zipp==3.1.0
+scikit-learn==0.22.2.post1
\ No newline at end of file
diff --git a/execution/scalability-graph-finish.ipynb b/execution/scalability-graph-finish.ipynb
deleted file mode 100644
index ffcf33b6b044a7f5f354b682a5cafc3c3f42e2f0..0000000000000000000000000000000000000000
--- a/execution/scalability-graph-finish.ipynb
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import os\n",
-    "import pandas as pd\n",
-    "from functools import reduce\n",
-    "import matplotlib.pyplot as plt"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "directory = '../results-inst'\n",
-    "\n",
-    "experiments = {\n",
-    "    'exp1003': 'exp1003',\n",
-    "    'exp1025': 'exp1025',\n",
-    "}\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "dataframes = [pd.read_csv(os.path.join(directory, f'{v}_min-suitable-instances.csv')).set_index('dim_value').rename(columns={\"instances\": k}) for k, v in experiments.items()]\n",
-    "\n",
-    "df = reduce(lambda df1,df2: df1.join(df2,how='outer'), dataframes)\n",
-    "\n",
-    "df"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "plt.style.use('ggplot')\n",
-    "plt.rcParams['axes.facecolor']='w'\n",
-    "plt.rcParams['axes.edgecolor']='555555'\n",
-    "#plt.rcParams['ytick.color']='black'\n",
-    "plt.rcParams['grid.color']='dddddd'\n",
-    "plt.rcParams['axes.spines.top']='false'\n",
-    "plt.rcParams['axes.spines.right']='false'\n",
-    "plt.rcParams['legend.frameon']='true'\n",
-    "plt.rcParams['legend.framealpha']='1'\n",
-    "plt.rcParams['legend.edgecolor']='1'\n",
-    "plt.rcParams['legend.borderpad']='1'\n",
-    "\n",
-    "\n",
-    "\n",
-    "\n",
-    "\n",
-    "plt.figure() \n",
-    "ax = df.plot(kind='line', marker='o')\n",
-    "#ax = df.plot(kind='line',x='dim_value', legend=False, use_index=True)\n",
-    "ax.set_ylabel('instances')\n",
-    "ax.set_xlabel('data sources')\n",
-    "ax.set_ylim(ymin=0)\n",
-    "#ax.set_xlim(xmin=0)\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "language_info": {
-   "name": "python",
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "version": "3.7.0-final"
-  },
-  "orig_nbformat": 2,
-  "file_extension": ".py",
-  "mimetype": "text/x-python",
-  "name": "python",
-  "npconvert_exporter": "python",
-  "pygments_lexer": "ipython3",
-  "version": 3,
-  "kernelspec": {
-   "name": "python37064bitvenvvenv469ea2e0a7854dc7b367eee45386afee",
-   "display_name": "Python 3.7.0 64-bit ('.venv': venv)"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
\ No newline at end of file
diff --git a/uc1-application/build.gradle b/uc1-application/build.gradle
index ec18bbebfae085ea227cd94dd19ed5fe06cfc80d..3b197e85116f41dde5574d9253d60e1146fe44a2 100644
--- a/uc1-application/build.gradle
+++ b/uc1-application/build.gradle
@@ -1 +1 @@
-mainClassName = "spesb.uc1.application.HistoryService"
+mainClassName = "theodolite.uc1.application.HistoryService"
diff --git a/uc1-application/src/main/java/spesb/uc1/application/ConfigurationKeys.java b/uc1-application/src/main/java/theodolite/uc1/application/ConfigurationKeys.java
similarity index 94%
rename from uc1-application/src/main/java/spesb/uc1/application/ConfigurationKeys.java
rename to uc1-application/src/main/java/theodolite/uc1/application/ConfigurationKeys.java
index f74ce318713b75cbe5e6da5d523d5811042220f3..ee4113c3088629fe01988721e32d9704f5d30da5 100644
--- a/uc1-application/src/main/java/spesb/uc1/application/ConfigurationKeys.java
+++ b/uc1-application/src/main/java/theodolite/uc1/application/ConfigurationKeys.java
@@ -1,4 +1,4 @@
-package spesb.uc1.application;
+package theodolite.uc1.application;
 
 /**
  * Keys to access configuration parameters.
diff --git a/uc1-application/src/main/java/spesb/uc1/application/HistoryService.java b/uc1-application/src/main/java/theodolite/uc1/application/HistoryService.java
similarity index 94%
rename from uc1-application/src/main/java/spesb/uc1/application/HistoryService.java
rename to uc1-application/src/main/java/theodolite/uc1/application/HistoryService.java
index 70bd6d5fd29eae95bfd7cb895f6c9a7b4176f1c2..b551fb7f8ff74f5ddc7e3aad901c1412075c6da6 100644
--- a/uc1-application/src/main/java/spesb/uc1/application/HistoryService.java
+++ b/uc1-application/src/main/java/theodolite/uc1/application/HistoryService.java
@@ -1,9 +1,9 @@
-package spesb.uc1.application;
+package theodolite.uc1.application;
 
 import java.util.concurrent.CompletableFuture;
 import org.apache.commons.configuration2.Configuration;
 import org.apache.kafka.streams.KafkaStreams;
-import spesb.uc1.streamprocessing.Uc1KafkaStreamsBuilder;
+import theodolite.uc1.streamprocessing.Uc1KafkaStreamsBuilder;
 import titan.ccp.common.configuration.Configurations;
 
 /**
diff --git a/uc1-application/src/main/java/spesb/uc1/streamprocessing/TopologyBuilder.java b/uc1-application/src/main/java/theodolite/uc1/streamprocessing/TopologyBuilder.java
similarity index 96%
rename from uc1-application/src/main/java/spesb/uc1/streamprocessing/TopologyBuilder.java
rename to uc1-application/src/main/java/theodolite/uc1/streamprocessing/TopologyBuilder.java
index 1705e3d81a95ff3ac85cef84e32218093296b065..824a8dadd4d80dd29d09b21543fa6da6aedf5365 100644
--- a/uc1-application/src/main/java/spesb/uc1/streamprocessing/TopologyBuilder.java
+++ b/uc1-application/src/main/java/theodolite/uc1/streamprocessing/TopologyBuilder.java
@@ -1,4 +1,4 @@
-package spesb.uc1.streamprocessing;
+package theodolite.uc1.streamprocessing;
 
 import com.google.gson.Gson;
 import org.apache.kafka.common.serialization.Serdes;
diff --git a/uc1-application/src/main/java/spesb/uc1/streamprocessing/Uc1KafkaStreamsBuilder.java b/uc1-application/src/main/java/theodolite/uc1/streamprocessing/Uc1KafkaStreamsBuilder.java
similarity index 84%
rename from uc1-application/src/main/java/spesb/uc1/streamprocessing/Uc1KafkaStreamsBuilder.java
rename to uc1-application/src/main/java/theodolite/uc1/streamprocessing/Uc1KafkaStreamsBuilder.java
index 7283b39e2b0918ddff9585835fa1e478303dd90b..4af3f130373d0596232921b9c5cc0b48df573b72 100644
--- a/uc1-application/src/main/java/spesb/uc1/streamprocessing/Uc1KafkaStreamsBuilder.java
+++ b/uc1-application/src/main/java/theodolite/uc1/streamprocessing/Uc1KafkaStreamsBuilder.java
@@ -1,8 +1,8 @@
-package spesb.uc1.streamprocessing;
+package theodolite.uc1.streamprocessing;
 
 import java.util.Objects;
 import org.apache.kafka.streams.Topology;
-import spesb.commons.kafkastreams.KafkaStreamsBuilder;
+import theodolite.commons.kafkastreams.KafkaStreamsBuilder;
 
 /**
  * Builder for the Kafka Streams configuration.
diff --git a/uc1-workload-generator/build.gradle b/uc1-workload-generator/build.gradle
index d934bd09de1d64cadac982669d7cab5b564f0dd5..9cc0bdbf01032efa3b251db06a2837cc9b920675 100644
--- a/uc1-workload-generator/build.gradle
+++ b/uc1-workload-generator/build.gradle
@@ -1 +1 @@
-mainClassName = "spesb.uc1.workloadgenerator.LoadGenerator"
+mainClassName = "theodolite.uc1.workloadgenerator.LoadGenerator"
diff --git a/uc2-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java b/uc1-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
similarity index 98%
rename from uc2-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java
rename to uc1-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
index 034201411a84d3769dbe8c02a210098c62dca881..bf562d86ac913138f48da79c4542d9583b1c8390 100644
--- a/uc2-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java
+++ b/uc1-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
@@ -1,4 +1,4 @@
-package spesb.kafkasender;
+package theodolite.kafkasender;
 
 import java.util.Properties;
 import java.util.function.Function;
diff --git a/uc1-workload-generator/src/main/java/spesb/uc1/workloadgenerator/LoadGenerator.java b/uc1-workload-generator/src/main/java/theodolite/uc1/workloadgenerator/LoadGenerator.java
similarity index 97%
rename from uc1-workload-generator/src/main/java/spesb/uc1/workloadgenerator/LoadGenerator.java
rename to uc1-workload-generator/src/main/java/theodolite/uc1/workloadgenerator/LoadGenerator.java
index 9eb95f0c104ee3a5cd497f735f839cdb474af6a9..bcff74b9a5a4efc72ce1f206f5f10c13557eafd7 100644
--- a/uc1-workload-generator/src/main/java/spesb/uc1/workloadgenerator/LoadGenerator.java
+++ b/uc1-workload-generator/src/main/java/theodolite/uc1/workloadgenerator/LoadGenerator.java
@@ -1,4 +1,4 @@
-package spesb.uc1.workloadgenerator;
+package theodolite.uc1.workloadgenerator;
 
 import java.io.IOException;
 import java.util.List;
@@ -14,7 +14,7 @@ import java.util.stream.IntStream;
 import org.apache.kafka.clients.producer.ProducerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import spesb.kafkasender.KafkaRecordSender;
+import theodolite.kafkasender.KafkaRecordSender;
 import titan.ccp.models.records.ActivePowerRecord;
 
 public class LoadGenerator {
diff --git a/uc2-application/build.gradle b/uc2-application/build.gradle
index 90f54fc6110ac88ef7d0d80ae8ec60c6087ce808..ea3d8779a0cd5406808df190d623d1508a143b9d 100644
--- a/uc2-application/build.gradle
+++ b/uc2-application/build.gradle
@@ -1 +1 @@
-mainClassName = "spesb.uc2.application.AggregationService"
+mainClassName = "theodolite.uc2.application.AggregationService"
diff --git a/uc2-application/src/main/java/spesb/uc2/application/AggregationService.java b/uc2-application/src/main/java/theodolite/uc2/application/AggregationService.java
similarity index 95%
rename from uc2-application/src/main/java/spesb/uc2/application/AggregationService.java
rename to uc2-application/src/main/java/theodolite/uc2/application/AggregationService.java
index bc6fdc067d7d1b36efe489ed0cf0a4e1145231af..2f37bf757aaa4d745a7f3a6416b359da73e2babc 100644
--- a/uc2-application/src/main/java/spesb/uc2/application/AggregationService.java
+++ b/uc2-application/src/main/java/theodolite/uc2/application/AggregationService.java
@@ -1,10 +1,10 @@
-package spesb.uc2.application;
+package theodolite.uc2.application;
 
 import java.time.Duration;
 import java.util.concurrent.CompletableFuture;
 import org.apache.commons.configuration2.Configuration;
 import org.apache.kafka.streams.KafkaStreams;
-import spesb.uc2.streamprocessing.Uc2KafkaStreamsBuilder;
+import theodolite.uc2.streamprocessing.Uc2KafkaStreamsBuilder;
 import titan.ccp.common.configuration.Configurations;
 
 /**
diff --git a/uc2-application/src/main/java/spesb/uc2/application/ConfigurationKeys.java b/uc2-application/src/main/java/theodolite/uc2/application/ConfigurationKeys.java
similarity index 95%
rename from uc2-application/src/main/java/spesb/uc2/application/ConfigurationKeys.java
rename to uc2-application/src/main/java/theodolite/uc2/application/ConfigurationKeys.java
index ec3bb14be72a1032fa2dfd49cdd6d3c0cb0b18e6..b57f5c38e79f04098bb6fc2a8c861c4655daa8a6 100644
--- a/uc2-application/src/main/java/spesb/uc2/application/ConfigurationKeys.java
+++ b/uc2-application/src/main/java/theodolite/uc2/application/ConfigurationKeys.java
@@ -1,4 +1,4 @@
-package spesb.uc2.application;
+package theodolite.uc2.application;
 
 /**
  * Keys to access configuration parameters.
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/ChildParentsTransformer.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/ChildParentsTransformer.java
similarity index 99%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/ChildParentsTransformer.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/ChildParentsTransformer.java
index 82217b30a539a9f722c3f27777000fb1d7d6e97c..d4f9097ad0fa176842872e43f2f69a8616a65166 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/ChildParentsTransformer.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/ChildParentsTransformer.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.util.Map;
 import java.util.Optional;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/ChildParentsTransformerFactory.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/ChildParentsTransformerFactory.java
similarity index 97%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/ChildParentsTransformerFactory.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/ChildParentsTransformerFactory.java
index 6cf2d2c6f3facc96f76148e874244cbe895a8596..3060fdaaf2605766df93b767e50e426c5ebafae9 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/ChildParentsTransformerFactory.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/ChildParentsTransformerFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.util.Map;
 import java.util.Optional;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/JointFlatTransformer.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointFlatTransformer.java
similarity index 98%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/JointFlatTransformer.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointFlatTransformer.java
index 27857fa4505d679f841d2bae639506cb8eeb0845..0555df96c153065ecf9be2bf2ead10de60d55cbf 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/JointFlatTransformer.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointFlatTransformer.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import com.google.common.base.MoreObjects;
 import java.util.ArrayList;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/JointFlatTransformerFactory.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointFlatTransformerFactory.java
similarity index 97%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/JointFlatTransformerFactory.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointFlatTransformerFactory.java
index 44c99b1f50475c3bd1051322001877e98bca9b68..b78eec51e1cd9e717f79b075e5e27230af56dbe7 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/JointFlatTransformerFactory.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointFlatTransformerFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.util.Map;
 import java.util.Set;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/JointRecordParents.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointRecordParents.java
similarity index 93%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/JointRecordParents.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointRecordParents.java
index 64de26d996d4b87b3942491a36607a2b09bf43f0..02b7318587a77228e7fb2f7dc1b3350bac532c89 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/JointRecordParents.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointRecordParents.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.util.Set;
 import titan.ccp.models.records.ActivePowerRecord;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/OptionalParentsSerde.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/OptionalParentsSerde.java
similarity index 97%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/OptionalParentsSerde.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/OptionalParentsSerde.java
index 5e31a55406a321d393098633856d9b2776768676..5cb8f1ed8fcc1cecff1eefa4922531555a78c25f 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/OptionalParentsSerde.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/OptionalParentsSerde.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.util.HashSet;
 import java.util.Optional;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/ParentsSerde.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/ParentsSerde.java
similarity index 96%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/ParentsSerde.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/ParentsSerde.java
index 4385d3bfb9360755fbfa13217abcb95f786ebd39..266eaad015979a9e4ae748f7647ddcaf5947c78b 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/ParentsSerde.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/ParentsSerde.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.util.HashSet;
 import java.util.Set;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/RecordAggregator.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/RecordAggregator.java
similarity index 97%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/RecordAggregator.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/RecordAggregator.java
index 6951d49c94c8b14d4463fcfdd6274a0b1cf965f7..10fb98c9c575bde508a7e24c9e825b25475eff76 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/RecordAggregator.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/RecordAggregator.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import org.apache.kafka.streams.kstream.Windowed;
 import titan.ccp.models.records.ActivePowerRecord;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/SensorParentKey.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKey.java
similarity index 94%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/SensorParentKey.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKey.java
index 390ecf0e381435197cf7e741a0e306f3dcca3f2c..d65c93034a0fc9a801cf5be0c2f7f50e38d9178e 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/SensorParentKey.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKey.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 /**
  * A key consisting of the identifier of a sensor and an identifier of parent sensor.
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/SensorParentKeySerde.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKeySerde.java
similarity index 95%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/SensorParentKeySerde.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKeySerde.java
index 7021c0832db2af6836f53ee6ba70851514443759..d6773c6159f1d04ddf1c3f36fd25447575befce8 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/SensorParentKeySerde.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKeySerde.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import org.apache.kafka.common.serialization.Serde;
 import titan.ccp.common.kafka.simpleserdes.BufferSerde;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/TopologyBuilder.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/TopologyBuilder.java
similarity index 99%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/TopologyBuilder.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/TopologyBuilder.java
index c83de4efd43688a8b9669f5d0f3dea3bbf70f48b..b6c46fa3a1822cbf1a11e3a8399aa7a061283952 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/TopologyBuilder.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/TopologyBuilder.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import com.google.common.math.StatsAccumulator;
 import java.time.Duration;
diff --git a/uc2-application/src/main/java/spesb/uc2/streamprocessing/Uc2KafkaStreamsBuilder.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/Uc2KafkaStreamsBuilder.java
similarity index 95%
rename from uc2-application/src/main/java/spesb/uc2/streamprocessing/Uc2KafkaStreamsBuilder.java
rename to uc2-application/src/main/java/theodolite/uc2/streamprocessing/Uc2KafkaStreamsBuilder.java
index 875a45ee92b0ec1b229678597c20f7cbb381b7c5..ce7d5e90b476a9d8b8508ea2356f4a2da1d856f3 100644
--- a/uc2-application/src/main/java/spesb/uc2/streamprocessing/Uc2KafkaStreamsBuilder.java
+++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/Uc2KafkaStreamsBuilder.java
@@ -1,9 +1,9 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.time.Duration;
 import java.util.Objects;
 import org.apache.kafka.streams.Topology;
-import spesb.commons.kafkastreams.KafkaStreamsBuilder;
+import theodolite.commons.kafkastreams.KafkaStreamsBuilder;
 
 /**
  * Builder for the Kafka Streams configuration.
diff --git a/uc2-application/src/test/java/spesb/uc2/streamprocessing/OptionalParentsSerdeTest.java b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/OptionalParentsSerdeTest.java
similarity index 88%
rename from uc2-application/src/test/java/spesb/uc2/streamprocessing/OptionalParentsSerdeTest.java
rename to uc2-application/src/test/java/theodolite/uc2/streamprocessing/OptionalParentsSerdeTest.java
index dc9f7e20e60564df7b982d8c3635cf2678c829c4..49ed674bc4442f01de1cf51e4510f2079524933d 100644
--- a/uc2-application/src/test/java/spesb/uc2/streamprocessing/OptionalParentsSerdeTest.java
+++ b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/OptionalParentsSerdeTest.java
@@ -1,9 +1,9 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.util.Optional;
 import java.util.Set;
 import org.junit.Test;
-import spesb.uc2.streamprocessing.OptionalParentsSerde;
+import theodolite.uc2.streamprocessing.OptionalParentsSerde;
 
 public class OptionalParentsSerdeTest {
 
diff --git a/uc2-application/src/test/java/spesb/uc2/streamprocessing/ParentsSerdeTest.java b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/ParentsSerdeTest.java
similarity index 81%
rename from uc2-application/src/test/java/spesb/uc2/streamprocessing/ParentsSerdeTest.java
rename to uc2-application/src/test/java/theodolite/uc2/streamprocessing/ParentsSerdeTest.java
index 7f166669bc34ea6d5482504f2d5ada4c26f64fc8..15872798698ceffcdbaddb689d4179afd7d67a01 100644
--- a/uc2-application/src/test/java/spesb/uc2/streamprocessing/ParentsSerdeTest.java
+++ b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/ParentsSerdeTest.java
@@ -1,8 +1,8 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import java.util.Set;
 import org.junit.Test;
-import spesb.uc2.streamprocessing.ParentsSerde;
+import theodolite.uc2.streamprocessing.ParentsSerde;
 
 public class ParentsSerdeTest {
 
diff --git a/uc2-application/src/test/java/spesb/uc2/streamprocessing/SensorParentKeySerdeTest.java b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/SensorParentKeySerdeTest.java
similarity index 75%
rename from uc2-application/src/test/java/spesb/uc2/streamprocessing/SensorParentKeySerdeTest.java
rename to uc2-application/src/test/java/theodolite/uc2/streamprocessing/SensorParentKeySerdeTest.java
index 5e0495f85423c582a17aefc1fda1a7c937ce14f7..7d9fe3a6eb83b82d85913f212fe9a930f194b220 100644
--- a/uc2-application/src/test/java/spesb/uc2/streamprocessing/SensorParentKeySerdeTest.java
+++ b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/SensorParentKeySerdeTest.java
@@ -1,8 +1,8 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import org.junit.Test;
-import spesb.uc2.streamprocessing.SensorParentKey;
-import spesb.uc2.streamprocessing.SensorParentKeySerde;
+import theodolite.uc2.streamprocessing.SensorParentKey;
+import theodolite.uc2.streamprocessing.SensorParentKeySerde;
 
 public class SensorParentKeySerdeTest {
 
diff --git a/uc2-application/src/test/java/spesb/uc2/streamprocessing/SerdeTester.java b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/SerdeTester.java
similarity index 94%
rename from uc2-application/src/test/java/spesb/uc2/streamprocessing/SerdeTester.java
rename to uc2-application/src/test/java/theodolite/uc2/streamprocessing/SerdeTester.java
index 443d8b845b89a595f4280c4d0b0ae845c542b338..8e9f5a3608e5bae032c6e79b7cd059a0776987c2 100644
--- a/uc2-application/src/test/java/spesb/uc2/streamprocessing/SerdeTester.java
+++ b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/SerdeTester.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import static org.junit.Assert.assertEquals;
 import java.util.function.Function;
diff --git a/uc2-application/src/test/java/spesb/uc2/streamprocessing/SerdeTesterFactory.java b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/SerdeTesterFactory.java
similarity index 94%
rename from uc2-application/src/test/java/spesb/uc2/streamprocessing/SerdeTesterFactory.java
rename to uc2-application/src/test/java/theodolite/uc2/streamprocessing/SerdeTesterFactory.java
index 9e5549fc1ced4ff4012ae699a8e6cdf65726f9a3..5cdbfc60574bfc924423516f80ec61850853bcff 100644
--- a/uc2-application/src/test/java/spesb/uc2/streamprocessing/SerdeTesterFactory.java
+++ b/uc2-application/src/test/java/theodolite/uc2/streamprocessing/SerdeTesterFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc2.streamprocessing;
+package theodolite.uc2.streamprocessing;
 
 import org.apache.kafka.common.serialization.Serde;
 
diff --git a/uc2-workload-generator/build.gradle b/uc2-workload-generator/build.gradle
index d165ab24e81b56d85f8183b41d5ec4f254be43b8..f2c3e5d2e73b655dffd94222ecfbc4fc31b7f722 100644
--- a/uc2-workload-generator/build.gradle
+++ b/uc2-workload-generator/build.gradle
@@ -1 +1 @@
-mainClassName = "spesb.uc2.workloadgenerator.LoadGenerator"
+mainClassName = "theodolite.uc2.workloadgenerator.LoadGenerator"
diff --git a/uc1-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java b/uc2-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
similarity index 98%
rename from uc1-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java
rename to uc2-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
index 034201411a84d3769dbe8c02a210098c62dca881..bf562d86ac913138f48da79c4542d9583b1c8390 100644
--- a/uc1-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java
+++ b/uc2-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
@@ -1,4 +1,4 @@
-package spesb.kafkasender;
+package theodolite.kafkasender;
 
 import java.util.Properties;
 import java.util.function.Function;
diff --git a/uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/ConfigPublisher.java b/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/ConfigPublisher.java
similarity index 97%
rename from uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/ConfigPublisher.java
rename to uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/ConfigPublisher.java
index 8cc3095fff902336273bf1145270a22044fad97e..c8b3a1846254603c8690bf395c24c6d6f9fb2166 100644
--- a/uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/ConfigPublisher.java
+++ b/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/ConfigPublisher.java
@@ -1,4 +1,4 @@
-package spesb.uc2.workloadgenerator;
+package theodolite.uc2.workloadgenerator;
 
 import java.util.Properties;
 import java.util.concurrent.ExecutionException;
diff --git a/uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/LoadGenerator.java b/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGenerator.java
similarity index 98%
rename from uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/LoadGenerator.java
rename to uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGenerator.java
index c2b05be3f525af95a8995704ab49a48343cb4f93..823f4f2761cc3c409451c67b7302e3d2f17adbb9 100644
--- a/uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/LoadGenerator.java
+++ b/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGenerator.java
@@ -1,4 +1,4 @@
-package spesb.uc2.workloadgenerator;
+package theodolite.uc2.workloadgenerator;
 
 import java.io.IOException;
 import java.util.List;
@@ -12,7 +12,7 @@ import java.util.stream.Collectors;
 import org.apache.kafka.clients.producer.ProducerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import spesb.kafkasender.KafkaRecordSender;
+import theodolite.kafkasender.KafkaRecordSender;
 import titan.ccp.configuration.events.Event;
 import titan.ccp.model.sensorregistry.MutableAggregatedSensor;
 import titan.ccp.model.sensorregistry.MutableSensorRegistry;
diff --git a/uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/LoadGeneratorExtrem.java b/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGeneratorExtrem.java
similarity index 98%
rename from uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/LoadGeneratorExtrem.java
rename to uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGeneratorExtrem.java
index c78647edbb4f829237c25237d9edc9d11beeffc5..1e58541758602cd2b1ea84f3ac3360aa3911425d 100644
--- a/uc2-workload-generator/src/main/java/spesb/uc2/workloadgenerator/LoadGeneratorExtrem.java
+++ b/uc2-workload-generator/src/main/java/theodolite/uc2/workloadgenerator/LoadGeneratorExtrem.java
@@ -1,4 +1,4 @@
-package spesb.uc2.workloadgenerator;
+package theodolite.uc2.workloadgenerator;
 
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
@@ -10,7 +10,7 @@ import java.util.Properties;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import org.apache.kafka.clients.producer.ProducerConfig;
-import spesb.kafkasender.KafkaRecordSender;
+import theodolite.kafkasender.KafkaRecordSender;
 import titan.ccp.configuration.events.Event;
 import titan.ccp.model.sensorregistry.MutableAggregatedSensor;
 import titan.ccp.model.sensorregistry.MutableSensorRegistry;
diff --git a/uc3-application/build.gradle b/uc3-application/build.gradle
index 89d122ba69512548a011505c71f636c0bd3b0b47..82df66fae434e5b0a0f9b31ef9a44f04ca857173 100644
--- a/uc3-application/build.gradle
+++ b/uc3-application/build.gradle
@@ -10,4 +10,4 @@ dependencies {
     compile('org.industrial-devops:titan-ccp-common-kafka:0.1.0-SNAPSHOT')
 }
 
-mainClassName = "spesb.uc3.application.HistoryService"
+mainClassName = "theodolite.uc3.application.HistoryService"
diff --git a/uc3-application/src/main/java/spesb/uc3/application/ConfigurationKeys.java b/uc3-application/src/main/java/theodolite/uc3/application/ConfigurationKeys.java
similarity index 94%
rename from uc3-application/src/main/java/spesb/uc3/application/ConfigurationKeys.java
rename to uc3-application/src/main/java/theodolite/uc3/application/ConfigurationKeys.java
index df51385a6f61cf25028f1d45552fa9687f40dc15..d95d245e0b354f11abfc40277e088f1a3f205c95 100644
--- a/uc3-application/src/main/java/spesb/uc3/application/ConfigurationKeys.java
+++ b/uc3-application/src/main/java/theodolite/uc3/application/ConfigurationKeys.java
@@ -1,4 +1,4 @@
-package spesb.uc3.application;
+package theodolite.uc3.application;
 
 /**
  * Keys to access configuration parameters.
diff --git a/uc3-application/src/main/java/spesb/uc3/application/HistoryService.java b/uc3-application/src/main/java/theodolite/uc3/application/HistoryService.java
similarity index 95%
rename from uc3-application/src/main/java/spesb/uc3/application/HistoryService.java
rename to uc3-application/src/main/java/theodolite/uc3/application/HistoryService.java
index 90f5a828e0adb030d3ecc86a2bd34bba780672b3..916d64f011a742d497a3512dd09da9db080576e5 100644
--- a/uc3-application/src/main/java/spesb/uc3/application/HistoryService.java
+++ b/uc3-application/src/main/java/theodolite/uc3/application/HistoryService.java
@@ -1,11 +1,11 @@
-package spesb.uc3.application;
+package theodolite.uc3.application;
 
 import java.time.Duration;
 import java.util.Objects;
 import java.util.concurrent.CompletableFuture;
 import org.apache.commons.configuration2.Configuration;
 import org.apache.kafka.streams.KafkaStreams;
-import spesb.uc3.streamprocessing.Uc3KafkaStreamsBuilder;
+import theodolite.uc3.streamprocessing.Uc3KafkaStreamsBuilder;
 import titan.ccp.common.configuration.Configurations;
 
 /**
diff --git a/uc3-application/src/main/java/spesb/uc3/streamprocessing/TopologyBuilder.java b/uc3-application/src/main/java/theodolite/uc3/streamprocessing/TopologyBuilder.java
similarity index 96%
rename from uc3-application/src/main/java/spesb/uc3/streamprocessing/TopologyBuilder.java
rename to uc3-application/src/main/java/theodolite/uc3/streamprocessing/TopologyBuilder.java
index d79451088e78e07f003dc076933f20489f594523..0ad1845f656bcbd11b61c0e0affa9b6bcfabd2f7 100644
--- a/uc3-application/src/main/java/spesb/uc3/streamprocessing/TopologyBuilder.java
+++ b/uc3-application/src/main/java/theodolite/uc3/streamprocessing/TopologyBuilder.java
@@ -1,4 +1,4 @@
-package spesb.uc3.streamprocessing;
+package theodolite.uc3.streamprocessing;
 
 import com.google.common.math.Stats;
 import java.time.Duration;
@@ -12,7 +12,7 @@ import org.apache.kafka.streams.kstream.Produced;
 import org.apache.kafka.streams.kstream.TimeWindows;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import spesb.uc3.streamprocessing.util.StatsFactory;
+import theodolite.uc3.streamprocessing.util.StatsFactory;
 import titan.ccp.common.kafka.GenericSerde;
 import titan.ccp.common.kieker.kafka.IMonitoringRecordSerde;
 import titan.ccp.models.records.ActivePowerRecordFactory;
diff --git a/uc3-application/src/main/java/spesb/uc3/streamprocessing/Uc3KafkaStreamsBuilder.java b/uc3-application/src/main/java/theodolite/uc3/streamprocessing/Uc3KafkaStreamsBuilder.java
similarity index 92%
rename from uc3-application/src/main/java/spesb/uc3/streamprocessing/Uc3KafkaStreamsBuilder.java
rename to uc3-application/src/main/java/theodolite/uc3/streamprocessing/Uc3KafkaStreamsBuilder.java
index b7f5d517c27ffe825161a50623bbcc0e5506c4d3..63841361b06bb054fee203a894fba0c11c249d16 100644
--- a/uc3-application/src/main/java/spesb/uc3/streamprocessing/Uc3KafkaStreamsBuilder.java
+++ b/uc3-application/src/main/java/theodolite/uc3/streamprocessing/Uc3KafkaStreamsBuilder.java
@@ -1,9 +1,9 @@
-package spesb.uc3.streamprocessing;
+package theodolite.uc3.streamprocessing;
 
 import java.time.Duration;
 import java.util.Objects;
 import org.apache.kafka.streams.Topology;
-import spesb.commons.kafkastreams.KafkaStreamsBuilder;
+import theodolite.commons.kafkastreams.KafkaStreamsBuilder;
 
 /**
  * Builder for the Kafka Streams configuration.
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/util/StatsFactory.java b/uc3-application/src/main/java/theodolite/uc3/streamprocessing/util/StatsFactory.java
similarity index 91%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/util/StatsFactory.java
rename to uc3-application/src/main/java/theodolite/uc3/streamprocessing/util/StatsFactory.java
index 39fe573445984f237d600753c8c828eb2869913b..8099c85d652e57d30fe38e9d598783e2dc45ecb9 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/util/StatsFactory.java
+++ b/uc3-application/src/main/java/theodolite/uc3/streamprocessing/util/StatsFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing.util;
+package theodolite.uc3.streamprocessing.util;
 
 import com.google.common.math.Stats;
 import com.google.common.math.StatsAccumulator;
diff --git a/uc3-workload-generator/build.gradle b/uc3-workload-generator/build.gradle
index e27cf26d28ba0d3f85a4c2a11e4eae2b85f29e4c..c3ca94290c8600d8482210362666efc1249b8f02 100644
--- a/uc3-workload-generator/build.gradle
+++ b/uc3-workload-generator/build.gradle
@@ -1 +1 @@
-mainClassName = "spesb.uc3.workloadgenerator.LoadGenerator"
+mainClassName = "theodolite.uc3.workloadgenerator.LoadGenerator"
diff --git a/uc4-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java b/uc3-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
similarity index 98%
rename from uc4-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java
rename to uc3-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
index 034201411a84d3769dbe8c02a210098c62dca881..bf562d86ac913138f48da79c4542d9583b1c8390 100644
--- a/uc4-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java
+++ b/uc3-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
@@ -1,4 +1,4 @@
-package spesb.kafkasender;
+package theodolite.kafkasender;
 
 import java.util.Properties;
 import java.util.function.Function;
diff --git a/uc3-workload-generator/src/main/java/spesb/uc3/workloadgenerator/LoadGenerator.java b/uc3-workload-generator/src/main/java/theodolite/uc3/workloadgenerator/LoadGenerator.java
similarity index 97%
rename from uc3-workload-generator/src/main/java/spesb/uc3/workloadgenerator/LoadGenerator.java
rename to uc3-workload-generator/src/main/java/theodolite/uc3/workloadgenerator/LoadGenerator.java
index 9ab8a553013c7d6de1eba6a2a9676fc152f86b5d..a063ea359571d67fe118ec2f0951664e62624d98 100644
--- a/uc3-workload-generator/src/main/java/spesb/uc3/workloadgenerator/LoadGenerator.java
+++ b/uc3-workload-generator/src/main/java/theodolite/uc3/workloadgenerator/LoadGenerator.java
@@ -1,4 +1,4 @@
-package spesb.uc3.workloadgenerator;
+package theodolite.uc3.workloadgenerator;
 
 import java.io.IOException;
 import java.util.List;
@@ -14,7 +14,7 @@ import java.util.stream.IntStream;
 import org.apache.kafka.clients.producer.ProducerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import spesb.kafkasender.KafkaRecordSender;
+import theodolite.kafkasender.KafkaRecordSender;
 import titan.ccp.models.records.ActivePowerRecord;
 
 public class LoadGenerator {
diff --git a/uc4-application/build.gradle b/uc4-application/build.gradle
index c89b18b1bfd5a131e58e512e79934e498f182adb..c5891b2bfb2073e829ff7013e47a17b1ac2313e5 100644
--- a/uc4-application/build.gradle
+++ b/uc4-application/build.gradle
@@ -10,4 +10,4 @@ dependencies {
     compile('org.industrial-devops:titan-ccp-common-kafka:0.1.0-SNAPSHOT')
 }
 
-mainClassName = "spesb.uc4.application.HistoryService"
+mainClassName = "theodolite.uc4.application.HistoryService"
diff --git a/uc4-application/src/main/java/spesb/uc4/application/ConfigurationKeys.java b/uc4-application/src/main/java/theodolite/uc4/application/ConfigurationKeys.java
similarity index 95%
rename from uc4-application/src/main/java/spesb/uc4/application/ConfigurationKeys.java
rename to uc4-application/src/main/java/theodolite/uc4/application/ConfigurationKeys.java
index 236601a46447f5c38b6548d2e0762bbb670747e1..aa74e1552cb4c3c020f511dfb6b53a3f1fd886d7 100644
--- a/uc4-application/src/main/java/spesb/uc4/application/ConfigurationKeys.java
+++ b/uc4-application/src/main/java/theodolite/uc4/application/ConfigurationKeys.java
@@ -1,4 +1,4 @@
-package spesb.uc4.application;
+package theodolite.uc4.application;
 
 /**
  * Keys to access configuration parameters.
diff --git a/uc4-application/src/main/java/spesb/uc4/application/HistoryService.java b/uc4-application/src/main/java/theodolite/uc4/application/HistoryService.java
similarity index 95%
rename from uc4-application/src/main/java/spesb/uc4/application/HistoryService.java
rename to uc4-application/src/main/java/theodolite/uc4/application/HistoryService.java
index 56275d594a9fcd4c4ea5a8416da5ced2e9c52ff9..4d686d8f7f244b9e6dd28b4c39abcb83d9a108b8 100644
--- a/uc4-application/src/main/java/spesb/uc4/application/HistoryService.java
+++ b/uc4-application/src/main/java/theodolite/uc4/application/HistoryService.java
@@ -1,10 +1,10 @@
-package spesb.uc4.application;
+package theodolite.uc4.application;
 
 import java.time.Duration;
 import java.util.concurrent.CompletableFuture;
 import org.apache.commons.configuration2.Configuration;
 import org.apache.kafka.streams.KafkaStreams;
-import spesb.uc4.streamprocessing.Uc4KafkaStreamsBuilder;
+import theodolite.uc4.streamprocessing.Uc4KafkaStreamsBuilder;
 import titan.ccp.common.configuration.Configurations;
 
 /**
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKey.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKey.java
similarity index 92%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKey.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKey.java
index b07a54d6f22ebbacb77e53a7733f3a16d539fde2..214be2dd073e21944ec0765eb30ed72a81b15b1b 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKey.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKey.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 /**
  * Composed key of an hour of the day and a sensor id.
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKeyFactory.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKeyFactory.java
similarity index 92%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKeyFactory.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKeyFactory.java
index a13de14229dfbb5a201dc282d05a8c4f97394250..edb9ad2b20ac645dfade840130e1be67d2505304 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKeyFactory.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKeyFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 import java.time.LocalDateTime;
 
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKeySerde.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKeySerde.java
similarity index 96%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKeySerde.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKeySerde.java
index a938813c6e1239b8af81c49ef7d83800bfef9b9d..ff404ab121ca2e60da65f11d89b8ec5849bd600d 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayKeySerde.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayKeySerde.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 import org.apache.kafka.common.serialization.Serde;
 import titan.ccp.common.kafka.simpleserdes.BufferSerde;
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayRecordFactory.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayRecordFactory.java
similarity index 95%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayRecordFactory.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayRecordFactory.java
index 25fb9193d1f343a246451ef2a5309198fc39ffde..7249309cea036bff9203ce9a7aa32489f69edebe 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/HourOfDayRecordFactory.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/HourOfDayRecordFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 import com.google.common.math.Stats;
 import org.apache.kafka.streams.kstream.Windowed;
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/RecordDatabaseAdapter.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/RecordDatabaseAdapter.java
similarity index 98%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/RecordDatabaseAdapter.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/RecordDatabaseAdapter.java
index 9c286cb49206d1eb1f0efbd2e98e3b44bc9a1e22..8f693d5d3d309eb73a017b8d33dfcd63e70724fb 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/RecordDatabaseAdapter.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/RecordDatabaseAdapter.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 import java.util.Collection;
 import java.util.List;
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/StatsKeyFactory.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/StatsKeyFactory.java
similarity index 88%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/StatsKeyFactory.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/StatsKeyFactory.java
index 7e4ac46e461c9083c7929f5dd313fea0526c3d50..cf67efbd34362c337a956d80f14731cf9b9d6b77 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/StatsKeyFactory.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/StatsKeyFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 import java.time.LocalDateTime;
 
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/StatsRecordFactory.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/StatsRecordFactory.java
similarity index 94%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/StatsRecordFactory.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/StatsRecordFactory.java
index 045b512d0561c25889a0a0f8ef05663824412c60..79eb4b9f76e4429cf84d0af0e56875ea0386e218 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/StatsRecordFactory.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/StatsRecordFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 import com.google.common.math.Stats;
 import org.apache.avro.specific.SpecificRecord;
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/TopologyBuilder.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/TopologyBuilder.java
similarity index 97%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/TopologyBuilder.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/TopologyBuilder.java
index c2489a9ae4c10301a914be67db14d5556e459912..b4632aaf15ee5f2572c795458f4bfded5c8cfbcd 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/TopologyBuilder.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/TopologyBuilder.java
@@ -1,4 +1,4 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 import com.google.common.math.Stats;
 import java.time.Duration;
@@ -15,7 +15,7 @@ import org.apache.kafka.streams.kstream.Grouped;
 import org.apache.kafka.streams.kstream.Materialized;
 import org.apache.kafka.streams.kstream.Produced;
 import org.apache.kafka.streams.kstream.TimeWindows;
-import spesb.uc4.streamprocessing.util.StatsFactory;
+import theodolite.uc4.streamprocessing.util.StatsFactory;
 import titan.ccp.common.kafka.GenericSerde;
 import titan.ccp.common.kieker.kafka.IMonitoringRecordSerde;
 import titan.ccp.models.records.ActivePowerRecordFactory;
diff --git a/uc4-application/src/main/java/spesb/uc4/streamprocessing/Uc4KafkaStreamsBuilder.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/Uc4KafkaStreamsBuilder.java
similarity index 94%
rename from uc4-application/src/main/java/spesb/uc4/streamprocessing/Uc4KafkaStreamsBuilder.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/Uc4KafkaStreamsBuilder.java
index d248c02158befc77e42033fa6a30816cba97d816..8220f4cd36b0639cd69ac102177a53b1ed90e5b6 100644
--- a/uc4-application/src/main/java/spesb/uc4/streamprocessing/Uc4KafkaStreamsBuilder.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/Uc4KafkaStreamsBuilder.java
@@ -1,9 +1,9 @@
-package spesb.uc4.streamprocessing;
+package theodolite.uc4.streamprocessing;
 
 import java.time.Duration;
 import java.util.Objects;
 import org.apache.kafka.streams.Topology;
-import spesb.commons.kafkastreams.KafkaStreamsBuilder;
+import theodolite.commons.kafkastreams.KafkaStreamsBuilder;
 
 /**
  * Builder for the Kafka Streams configuration.
diff --git a/uc3-application/src/main/java/spesb/uc3/streamprocessing/util/StatsFactory.java b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/util/StatsFactory.java
similarity index 91%
rename from uc3-application/src/main/java/spesb/uc3/streamprocessing/util/StatsFactory.java
rename to uc4-application/src/main/java/theodolite/uc4/streamprocessing/util/StatsFactory.java
index 964199c0083dc9d096b59227c181dba732ca72b4..e97fbcd216c57a8aa965ee7a295c5633fa34810e 100644
--- a/uc3-application/src/main/java/spesb/uc3/streamprocessing/util/StatsFactory.java
+++ b/uc4-application/src/main/java/theodolite/uc4/streamprocessing/util/StatsFactory.java
@@ -1,4 +1,4 @@
-package spesb.uc3.streamprocessing.util;
+package theodolite.uc4.streamprocessing.util;
 
 import com.google.common.math.Stats;
 import com.google.common.math.StatsAccumulator;
diff --git a/uc4-workload-generator/build.gradle b/uc4-workload-generator/build.gradle
index 8bbdedf4f7c41da73dd2d591b8fd56830d7060b7..76bbce013b67bab325bac06c1986693da3028f0c 100644
--- a/uc4-workload-generator/build.gradle
+++ b/uc4-workload-generator/build.gradle
@@ -1 +1 @@
-mainClassName = "spesb.uc4.workloadgenerator.LoadGenerator"
+mainClassName = "theodolite.uc4.workloadgenerator.LoadGenerator"
diff --git a/uc3-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java b/uc4-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
similarity index 98%
rename from uc3-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java
rename to uc4-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
index 034201411a84d3769dbe8c02a210098c62dca881..bf562d86ac913138f48da79c4542d9583b1c8390 100644
--- a/uc3-workload-generator/src/main/java/spesb/kafkasender/KafkaRecordSender.java
+++ b/uc4-workload-generator/src/main/java/theodolite/kafkasender/KafkaRecordSender.java
@@ -1,4 +1,4 @@
-package spesb.kafkasender;
+package theodolite.kafkasender;
 
 import java.util.Properties;
 import java.util.function.Function;
diff --git a/uc4-workload-generator/src/main/java/spesb/uc4/workloadgenerator/LoadGenerator.java b/uc4-workload-generator/src/main/java/theodolite/uc4/workloadgenerator/LoadGenerator.java
similarity index 97%
rename from uc4-workload-generator/src/main/java/spesb/uc4/workloadgenerator/LoadGenerator.java
rename to uc4-workload-generator/src/main/java/theodolite/uc4/workloadgenerator/LoadGenerator.java
index bcf4f6d2cc20485f1e361a9fb0e638726f5ed79a..90d28aafb86b2b5da050d0110d425b5ec1ffe5e6 100644
--- a/uc4-workload-generator/src/main/java/spesb/uc4/workloadgenerator/LoadGenerator.java
+++ b/uc4-workload-generator/src/main/java/theodolite/uc4/workloadgenerator/LoadGenerator.java
@@ -1,4 +1,4 @@
-package spesb.uc4.workloadgenerator;
+package theodolite.uc4.workloadgenerator;
 
 import java.io.IOException;
 import java.util.List;
@@ -13,7 +13,7 @@ import java.util.stream.IntStream;
 import org.apache.kafka.clients.producer.ProducerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import spesb.kafkasender.KafkaRecordSender;
+import theodolite.kafkasender.KafkaRecordSender;
 import titan.ccp.models.records.ActivePowerRecord;
 
 public class LoadGenerator {