diff --git a/controller/DataFrameCreator.py b/controller/DataFrameCreator.py
deleted file mode 100644
index 73a6138004f89bb67652226286099112bca990fa..0000000000000000000000000000000000000000
--- a/controller/DataFrameCreator.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import os
-import pandas as pd
-
-
-class DataFrameCreator:
-    def __init__(self, f_path):
-        self.folder_path = f_path
-
-    def create_dataframes(self):
-        dfs = {}
-
-        for root, _, files in os.walk(self.folder_path):
-            for filename in files:
-                if filename.endswith('.dat'):
-                    file_path = os.path.join(root, filename)
-                    dataframe_name = os.path.splitext(filename)[0]
-                    dataframe_type = dataframe_name.split('-')[1]
-                    dataframe = pd.read_csv(file_path, delimiter=" ", header=0)
-
-                    if dataframe_type in dfs:
-                        inner_dict = dfs[dataframe_type]
-                        if dataframe_name in inner_dict:
-                            # DataFrame hinzufügen
-                            inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe])
-                        else:
-                            inner_dict[dataframe_name] = dataframe
-                    else:
-                        dfs[dataframe_type] = {
-                            dataframe_name: dataframe
-                        }
-
-        merged_dfs = {}
-        for outer_key in dfs:
-            merged_dataframe = pd.concat(dfs[outer_key].values(), keys=dfs[outer_key].keys())
-            merged_dataframe_sorted = merged_dataframe.sort_index()
-            merged_dfs[outer_key] = merged_dataframe_sorted
-
-        return merged_dfs
diff --git a/controller/SeabornPlotter.py b/controller/SeabornPlotter.py
deleted file mode 100644
index 4fe138cd1bcb1fdc634a639ea35a674ec8f0e77a..0000000000000000000000000000000000000000
--- a/controller/SeabornPlotter.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import numpy as np
-import matplotlib.pyplot as plt
-import seaborn as sns
-
-
-class SeabornPlotter:
-    def __init__(self, dataframe):
-        self.dataframe = dataframe
-        self.current_plot = None
-
-    def plot(self):
-        df = self.dataframe
-        x = df['size']
-        y = df['duration']
-        x_start = df['size'].min() / 2
-        y_start = 0.001
-        x_end = df['size'].max() * 2
-        y_end = df['duration'].max()
-        x_num_points = 100
-        y_step = 0.001
-        x_bins = np.logspace(np.log10(x_start), np.log10(x_end), num=x_num_points).tolist()
-        y_bins = [y_start + (y_step * i) for i in range(int((y_end - y_start) / y_step) + 1)]
-
-        f, ax = plt.subplots(figsize=(16, 20))
-        sns.scatterplot(x=x, y=y, s=5, color=".15", hue=list(self.dataframe.index.get_level_values(0)))
-        sns.histplot(x=x, y=y, bins=[x_bins, y_bins], pthresh=.1, cmap="coolwarm")
-        ax.set_xscale('log')
-        ax.set_yscale('log')
-
-        plt.tight_layout()
-        plt.show()
diff --git a/controller/UtilityClasses.py b/controller/UtilityClasses.py
deleted file mode 100644
index 5ed1dc82626c49e9d49bb0e4ffef56cb633626e2..0000000000000000000000000000000000000000
--- a/controller/UtilityClasses.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import datetime
-
-
-class DataConvert:
-    @staticmethod
-    def convert_unix(timestamp):
-        return datetime.datetime.fromtimestamp(timestamp)
\ No newline at end of file
diff --git a/controller/controller/__init__.py b/controller/controller/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/controller/main.py b/controller/main.py
deleted file mode 100644
index df3d6594905eae3d1e138b851ec9725a77a69efe..0000000000000000000000000000000000000000
--- a/controller/main.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import os
-import numpy as np
-import pandas as pd
-import datetime
-import matplotlib
-import matplotlib.pyplot as plt
-import seaborn as sns
-from SeabornPlotter import SeabornPlotter
-from DataFrameCreator import DataFrameCreator
-matplotlib.use('TkAgg')
-
-# --------------Main------------
-
-folder_path = '/home/user/C++/detectorwritesim/output'
-creator = DataFrameCreator(folder_path)
-dataframes = creator.create_dataframes()
-plotter = SeabornPlotter(dataframes['write'])
-
-# Plot erstellen
-plotter.plot()
diff --git a/controller/pyproject.toml b/controller/pyproject.toml
new file mode 100644
index 0000000000000000000000000000000000000000..9787c3bdf008a57ae3cb2e27a8261eb3f134ff73
--- /dev/null
+++ b/controller/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools", "wheel"]
+build-backend = "setuptools.build_meta"
diff --git a/controller/setup.py b/controller/setup.py
index ea1dbcdab53784a88c297e9f8fdcd2fb5b82e61e..aa79bcb8799a5a9af0f04013ea542320ac220d9d 100644
--- a/controller/setup.py
+++ b/controller/setup.py
@@ -1,18 +1,21 @@
+import os
 from setuptools import setup
 
 setup(
     name='controller',
     version='1.0',
+    description='Controller zur steuerung einer Detektor Sim',
+    author='Michael Reuscher',
     packages=['controller'],
     install_requires=[
         'numpy',
         'pandas',
+        'seaborn',
         'matplotlib',
-        'seaborn'
     ],
     entry_points={
         'console_scripts': [
-            'controller = controller.main:main'
+            'mein_programm=controller.main:main'
         ]
     }
 )