diff --git a/.gitignore b/.gitignore
index 4f1960b154f1fa8c33a64b675f24ea72a91d047f..0a8398aa0c931593e7923b64cbc29852b6e304cd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
-db_conn.cfg
\ No newline at end of file
+db_conn.cfg
+__pycache__
+.vscode
\ No newline at end of file
diff --git a/adressen_update_script.py b/adressen_update_script.py
index 4ed77c3aa731c40783160c5f72018eacf7018a07..176cb8155da19d659b6a68bc2af60834228a36fc 100644
--- a/adressen_update_script.py
+++ b/adressen_update_script.py
@@ -9,7 +9,14 @@ if __name__ == '__main__':
     # datenbank mit den schuldaten
     conn_config = ConfigParser()
     conn_config.read("db_conn.cfg")
-    conn_str = f"host={conn_config['connection']['host']} port={conn_config['connection']['port']} dbname={conn_config['connection']['dbname']} user={conn_config['connection']['user']} password={conn_config['connection']['pwd']}"
+
+    conn_str = f"""
+    host={conn_config['connection']['host']}
+    port={conn_config['connection']['port']}
+    dbname={conn_config['connection']['dbname']}
+    user={conn_config['connection']['user']}
+    password={conn_config['connection']['pwd']}"""
+
     url = r"https://chat.gdi-sh.de/aregapi/"
 
     my_db = DBTools(conn_str)
diff --git a/geocoder_script.py b/geocoder_script.py
index e7e49fabe79649655eef7b7d6d9568b1bf6eb9b0..4017447a43f19e07d39a7d783720bf868c840984 100644
--- a/geocoder_script.py
+++ b/geocoder_script.py
@@ -8,7 +8,14 @@ if __name__ == '__main__':
     # datenbank mit den schuldaten
     conn_config = ConfigParser()
     conn_config.read("db_conn.cfg")
-    conn_str = f"host={conn_config['connection']['host']} port={conn_config['connection']['port']} dbname={conn_config['connection']['dbname']} user={conn_config['connection']['user']} password={conn_config['connection']['pwd']}"
+
+    conn_str = f"""
+    host={conn_config['connection']['host']}
+    port={conn_config['connection']['port']}
+    dbname={conn_config['connection']['dbname']}
+    user={conn_config['connection']['user']}
+    password={conn_config['connection']['pwd']}"""
+
     url = r"https://chat.gdi-sh.de/aregapi/"
     # logfile = r"geocoder.log"
 
@@ -32,7 +39,7 @@ if __name__ == '__main__':
         areg_response = my_api.geocode(adresse)
 
         if areg_response.get("uri") is not None:
-            areg_uri = areg_response.get("uri")
+            areg_uri = areg_response["uri"]
             my_db.update_uri(str(item[0]), areg_uri)
             numfeatures += 1
         else:
@@ -43,8 +50,12 @@ if __name__ == '__main__':
             if areg_response_key[0] == "ERROR":
                 errorfeatures += 1
 
-            # log.append(areg_response_key[0] + ": " + areg_response.get(areg_response_key[0]) + f" | betroffene schule: {adresse['hnr']}\t{adresse['stn']}\t{adresse['plz']}\t{adresse['ort']}")
-            print(areg_response_key[0] + ": " + areg_response.get(areg_response_key[0]) + f" | betroffene schule: [{item[0]}]\t{adresse['hnr']}; {adresse['stn']}; {adresse['plz']}; {adresse['ort']}")
+            print(
+                areg_response_key[0] + ": " +
+                areg_response[areg_response_key[0]] +
+                f""" | betroffene schule: [{item[0]}]\t{adresse['hnr']};
+                {adresse['stn']}; {adresse['plz']}; {adresse['ort']}"""
+            )
 
     my_db.closecursor()
 
@@ -54,5 +65,7 @@ if __name__ == '__main__':
     #         out.write(item)
 
     percentage = round((numfeatures * 100) / maxfeatures, 2)
-    print(f"\nstatistics:\n {numfeatures} from {maxfeatures} geocoded >> {percentage}%\n {missinfeatures} features with missing attributes\n {errorfeatures} features with errors\n")
+    print(f"""\nstatistics:\n {numfeatures} from {maxfeatures} geocoded >>
+    {percentage}%\n {missinfeatures} features with missing attributes\n
+    {errorfeatures} features with errors\n""")
     print("geocoding dataset finished, closing programm")
diff --git a/script_helper.py b/script_helper.py
index 8cc1236daf66995a1065a7770b9ada852a8a4801..4dfdba95b2b3133a4cd16ebefc7c823ca0a0a83f 100644
--- a/script_helper.py
+++ b/script_helper.py
@@ -7,67 +7,140 @@ import json
 
 class DBTools:
     """
-    Tools für das arbeiten mit der Datenbank, hier sind die select Funktionen zum
-    auslesen der Daten und zum updaten der Daten mit den Adressen.
+    Tools für das arbeiten mit der Datenbank, hier sind die select Funktionen
+    zum auslesen der Daten und zum updaten der Daten mit den Adressen.
     """
-    def __init__(self, data):
+    def __init__(self, data: str) -> None:
         """
         Aufbauen der Verbindung zu der Datenbank
-        :param str data: Connection String mit allen Informationen für die Verbindung zur Datenbank
+
+        :param str data: Connection String mit allen Informationen für die
+            Verbindung zur Datenbank
         """
         self.db_connection = psycopg2.connect(data)
         self.cursor = self.db_connection.cursor()
 
     def select_adress(self):
         """
-        Funktion zum selektieren der Adressdaten der Schulen um diese zu geocoden und ihnen URI aus dem AREG zuzuweisen.
-        :return: Tupel mit alten Adressdaten der Schulen
+        Funktion zum selektieren der Adressdaten der Schulen um diese zu
+        geocoden und ihnen URI aus dem AREG zuzuweisen.
+
+        :returns: Tupel mit alten Adressdaten der Schulen
         :rtype: tuple
         """
-        self.cursor.execute("select lokaleID, adressealt_hnr, adressealt_strasse, adressealt_plz, adressealt_ort from prototyp_areg.schulen;")
+
+        select_sql = """
+        select
+            lokaleID,
+            adressealt_hnr,
+            adressealt_strasse,
+            adressealt_plz,
+            adressealt_ort
+        from
+            prototyp_areg.schulen;"""
+
+        self.cursor.execute(select_sql)
         query_result = self.cursor.fetchall()
 
         return query_result
 
     def select_uri(self):
         """
-        Funktion zum selektieren der URI aus dem Datensatz um diese mit aktuellen AREG Adressen anzureichern.
-        :return: Tupel mit den AREG URI die in der Datenbank vorhanden sind, Safeguard ist vorhanden damit keine NULL Werte kommen.
+        Funktion zum selektieren der URI aus dem Datensatz um diese mit
+        aktuellen AREG Adressen anzureichern.
+
+        :return: Tupel mit den AREG URI die in der Datenbank vorhanden sind,
+            Safeguard ist vorhanden damit keine NULL Werte kommen.
         :rtype: tuple
         """
-        self.cursor.execute("select distinct(areg_uri) from prototyp_areg.schulen where areg_uri like 'https://%';")
+
+        select_sql = """
+        select
+            distinct(areg_uri)
+        from
+            prototyp_areg.schulen
+        where
+            areg_uri like 'https://%';"""
+
+        self.cursor.execute(select_sql)
         query_data = self.cursor.fetchall()
 
         return query_data
 
-    def update_uri(self, param_dbid: str, param_uri: str):
+    def update_uri(self, param_dbid: str, param_uri: str) -> None:
         """
         Funktion zum Update der Datenbank mit den URI aus dem Geocoder.
+
         :param str param_dbid: ID der Schule aus der Datenbank (nicht AREG URI)
         :param str param_uri: AREG URI
         """
-        self.cursor.execute("alter table prototyp_areg.schulen add column if not exists areg_uri varchar;")
-        self.cursor.execute(f"update prototyp_areg.schulen set areg_uri='{param_uri}' where lokaleID='{param_dbid}';")
 
-    def update_adress(self, data, param_uri):
+        sql_alter = """
+        alter table
+            prototyp_areg.schulen
+        add column if not exists
+            areg_uri varchar;
+        """
+
+        sql_update = f"""
+        update
+            prototyp_areg.schulen
+        set
+            areg_uri='{param_uri}'
+        where
+            lokaleID='{param_dbid}';
         """
-        Funktion zum Update der Datenbank mit den neuen Adressdaten aus dem AREG anhand der URI.
-        :param dict data: GeoJSON aus der AREG API mit den aktuellen Adressdaten
+
+        self.cursor.execute(sql_alter)
+        self.cursor.execute(sql_update)
+
+    def update_adress(self, data, param_uri: str) -> None:
+        """
+        Funktion zum Update der Datenbank mit den neuen Adressdaten aus dem
+        AREG anhand der URI.
+
+        :param dict data: GeoJSON aus der AREG API mit den aktuellen
+            Adressdaten
         :param param_uri: AREG URI zum zuordnen der Adressdaten
         """
         geometry = str(data['geometry'])
         geometry = geometry.replace("'", '"')
 
-        self.cursor.execute("alter table prototyp_areg.schulen add column if not exists hnr varchar, add column if not exists strasse varchar, add column if not exists plz varchar, add column if not exists ort varchar, add column if not exists geom geometry(Point, 4326);")
-        self.cursor.execute(f"update prototyp_areg.schulen set hnr='{data['properties']['hnr']}' where areg_uri='{param_uri}'")
-        self.cursor.execute(f"update prototyp_areg.schulen set strasse='{data['properties']['stn']}' where areg_uri='{param_uri}'")
-        self.cursor.execute(f"update prototyp_areg.schulen set plz='{data['properties']['plz']}' where areg_uri='{param_uri}'")
-        self.cursor.execute(f"update prototyp_areg.schulen set ort='{data['properties']['ort']}' where areg_uri='{param_uri}'")
-        self.cursor.execute(f"update prototyp_areg.schulen set geom=ST_GeomFromGeoJSON('{geometry}') where areg_uri='{param_uri}'")
-
-    def closecursor(self):
-        """
-        Funktion zum Commit und Schießen der Datenbankverbindung nachdem alle Änderungen vorgenommen wurden.
+        sql_alter = """
+        alter table
+            prototyp_areg.schulen
+        add column if not exists
+            hnr varchar,
+        add column if not exists
+            strasse varchar,
+        add column if not exists
+            plz varchar,
+        add column if not exists
+            ort varchar,
+        add column if not exists
+            geom geometry(Point, 4326);
+        """
+
+        sql_update = f"""
+        update
+            prototyp_areg.schulen
+        set
+            hnr='{data['properties']['hnr']}',
+            strasse='{data['properties']['stn']}',
+            plz='{data['properties']['plz']}',
+            ort='{data['properties']['ort']}',
+            geom=ST_GeomFromGeoJSON('{geometry}')
+        where
+            areg_uri='{param_uri}';
+        """
+
+        self.cursor.execute(sql_alter)
+        self.cursor.execute(sql_update)
+
+    def closecursor(self) -> None:
+        """
+        Funktion zum Commit und Schießen der Datenbankverbindung nachdem alle
+        Änderungen vorgenommen wurden.
         """
         # schließt den cursor
         self.db_connection.commit()
@@ -77,22 +150,28 @@ class DBTools:
 
 class APITools:
     """
-    Tools für das Arbeiten mit der pygeoAPI.
-    Hier sind die Funktionen zum aufrufen des Geocoder Prozesses und zum Finden der Adresse anhand der URI
+    Tools für das Arbeiten mit der pygeoAPI. Hier sind die Funktionen zum
+    aufrufen des Geocoder Prozesses und zum Finden der Adresse anhand der URI
     """
     def __init__(self, param_url):
         """
-        Festlegen der Base URL der API für die weitere Verwendung in den Funktionen der Klasse.
+        Festlegen der Base URL der API für die weitere Verwendung in den
+        Funktionen der Klasse.
+
         :param str param_url: Base URL der API
         """
         self.base_url = param_url
 
-    def geocode(self, data: dict):
+    def geocode(self, data: dict) -> dict:
         """
-        Funktion zum Aufrufen des Geocoder Prozesses in der API. Bereinigung finden nicht in dieser Funktion oder diesem Skript sondern im Geocoder statt!
-        :param data: Dictionary mit den alten Adressdaten
-        :type: dict
-        :return: Dictionary entweder mit einem "uri" Objekt oder einem "message" Objekt, wenn uri kommt ist alles gut, wenn message kommt dann ist ein fehler aufgetreten
+        Funktion zum Aufrufen des Geocoder Prozesses in der API. Bereinigung
+        finden nicht in dieser Funktion oder diesem Skript sondern im Geocoder
+        statt!
+
+        :param dict data: Dictionary mit den alten Adressdaten
+        :returns: Dictionary entweder mit einem "uri" Objekt oder einem
+            "message" Objekt, wenn uri kommt ist alles gut, wenn message kommt
+            dann ist ein fehler aufgetreten
         :rtype: dict
         """
         url = self.base_url + r"processes/geocoder/execution"