diff --git a/data/covid19data.sql b/data/covid19data.sql
index c8974967d6feffc9e8ae597ec0d77d4d4e7935eb..a385efcf36fcb800c28ef6e98bda0b3bc3982393 100644
Binary files a/data/covid19data.sql and b/data/covid19data.sql differ
diff --git a/src/covid19/blueprints/application/application_model.py b/src/covid19/blueprints/application/application_model.py
index 12c7817e3fa65ab0aebdce7ab76fc9f94ce762c6..13a96bc94fbbf52959f2509210f06870cba565ca 100644
--- a/src/covid19/blueprints/application/application_model.py
+++ b/src/covid19/blueprints/application/application_model.py
@@ -1,5 +1,5 @@
 from sqlalchemy import and_, func
-from datetime import date
+from datetime import date, datetime, time
 from database import db, ITEMS_PER_PAGE
 from sqlalchemy.orm import joinedload
 
@@ -230,7 +230,7 @@ class RkiDateReported(ApplicationDateReported):
     )
 
     id = db.Column(db.Integer, primary_key=True)
-    date_reported = db.Column(db.String(255), nullable=False, unique=True)
+    date_reported = db.Column(db.String(255), nullable=False)
     year_week = db.Column(db.String(255), nullable=False)
     datum = db.Column(db.Date, nullable=False, unique=True)
     year = db.Column(db.Integer, nullable=False)
@@ -238,10 +238,17 @@ class RkiDateReported(ApplicationDateReported):
     day_of_month = db.Column(db.Integer, nullable=False)
     day_of_week = db.Column(db.Integer, nullable=False)
     week_of_year = db.Column(db.Integer, nullable=False)
+    time_of_date_str = db.Column(db.String(255), nullable=False)
+    time_of_date = db.Column(db.Time, nullable=False)
+    aktualisierung = db.Column(db.String(255), nullable=False, unique=True)
 
     @classmethod
-    def create_new_object_factory(cls, my_date_rep: str):
-        my_datum = date.fromisoformat(my_date_rep)
+    def create_new_object_factory(cls, aktualisierung: str):
+        aktualisierung_datetime = datetime.fromtimestamp(aktualisierung)
+        my_datum = aktualisierung_datetime.date()
+        my_time_of_date = aktualisierung_datetime.time()
+        my_date_reported_str = my_datum.isoformat()
+        my_time_of_date_str = my_time_of_date.isoformat(timespec='seconds')
         (my_iso_year, week_number, weekday) = my_datum.isocalendar()
         my_year_week = "" + str(my_iso_year)
         if week_number < 10:
@@ -250,98 +257,21 @@ class RkiDateReported(ApplicationDateReported):
             my_year_week += "-"
         my_year_week += str(week_number)
         return RkiDateReported(
-            date_reported=my_date_rep,
+            date_reported=my_date_reported_str,
             datum=my_datum,
             year=my_datum.year,
             month=my_datum.month,
             day_of_month=my_datum.day,
             day_of_week=weekday,
             week_of_year=week_number,
-            year_week=my_year_week
+            year_week=my_year_week,
+            time_of_date_str=my_time_of_date_str,
+            time_of_date=my_time_of_date,
+            aktualisierung=aktualisierung
         )
 
-
-class RkiRegion(ApplicationRegion):
-    __tablename__ = 'rki_region'
-    __mapper_args__ = {'concrete': True}
-    __table_args__ = (
-        db.UniqueConstraint('region', name="uix_rki_region"),
-    )
-
-    id = db.Column(db.Integer, primary_key=True)
-    region = db.Column(db.String(255), nullable=False, unique=True)
-
-
-class RkiCountry(db.Model):
-    __tablename__ = 'rki_country'
-
-    id = db.Column(db.Integer, primary_key=True)
-    country_code = db.Column(db.String(255), unique=True, nullable=False)
-    country = db.Column(db.String(255), unique=True, nullable=False)
-    region_id = db.Column(db.Integer, db.ForeignKey('rki_region.id'), nullable=False)
-    region = db.relationship(
-        'RkiRegion',
-        lazy='subquery',
-        order_by='RkiRegion.region')
-
-    @classmethod
-    def remove_all(cls):
-        for one in cls.get_all():
-            db.session.delete(one)
-        db.session.commit()
-        return None
-
-    @classmethod
-    def get_all_as_page(cls, page: int):
-        return db.session.query(cls)\
-            .order_by(cls.country)\
-            .paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls)\
-            .order_by(cls.country)\
-            .all()
-
-    @classmethod
-    def get_all_as_dict(cls):
-        countries = {}
-        for my_country in cls.get_all():
-            countries[my_country.country_code] = my_country
-        return countries
-
-    @classmethod
-    def get_by_id(cls, other_id: int):
-        return db.session.query(cls)\
-            .filter(cls.id == other_id)\
-            .one()
-
-    @classmethod
-    def get_germany(cls):
-        return db.session.query(cls)\
-            .filter(cls.country_code == 'DE')\
-            .one()
-
-    @classmethod
-    def find_by_country_code_and_country_and_who_region_id(cls,
-       i_country_code: str, i_country: str, my_region: RkiRegion):
-        return db.session.query(cls).filter(
-            and_(
-                cls.country_code == i_country_code,
-                cls.country == i_country,
-                cls.region_id == my_region.id
-            )
-        ).one_or_none()
-
     @classmethod
-    def find_by_country_code(cls, i_country_code: str):
-        return db.session.query(cls).filter(
-            cls.country_code == i_country_code
-        ).one_or_none()
-
-    @classmethod
-    def get_who_countries_for_region(cls, region: str, page: int):
-        return db.session.query(cls).filter(
-            cls.region == region
-        ).order_by(cls.country)\
-            .paginate(page, per_page=ITEMS_PER_PAGE)
+    def find_by_aktualisierung(cls, aktualisierung_from_import: str):
+        return db.session.query(cls) \
+                .filter(cls.aktualisierung == aktualisierung_from_import) \
+                .one_or_none()
diff --git a/src/covid19/blueprints/rki_bundeslaender/rki_model.py b/src/covid19/blueprints/rki_bundeslaender/rki_model.py
index f1ec0ddb01c8edf4376f08ed7d1982bdb80b3ff3..2c1eec6c295556ab3060008a791382727eebe4da 100644
--- a/src/covid19/blueprints/rki_bundeslaender/rki_model.py
+++ b/src/covid19/blueprints/rki_bundeslaender/rki_model.py
@@ -1,38 +1,29 @@
-from sqlalchemy import and_
-from datetime import date
-from sqlalchemy.orm import joinedload
-
 from database import db, ITEMS_PER_PAGE
 
-# OBJECTID_1,LAN_ew_AGS,LAN_ew_GEN,LAN_ew_BEZ,LAN_ew_EWZ,OBJECTID,Fallzahl,Aktualisierung,AGS_TXT,GlobalID,faelle_100000_EW,Death,cases7_bl_per_100k,cases7_bl,death7_bl,cases7_bl_per_100k_txt,AdmUnitId,SHAPE_Length,SHAPE_Area
-
 
-# TODO: #123 split RkiBundeslaenderService into two Services, one for bundeslaender and one for landkreise
-# TODO: #124 rename RkiBundeslaender to RkiBundeslaender
 class RkiBundeslaender(db.Model):
     __tablename__ = 'rki_bundeslaender'
 
     id = db.Column(db.Integer, primary_key=True)
-
-    OBJECTID_1 = db.Column(db.String(255), nullable=False)
-    LAN_ew_AGS = db.Column(db.String(255), nullable=False)
-    LAN_ew_GEN = db.Column(db.String(255), nullable=False)
-    LAN_ew_BEZ = db.Column(db.String(255), nullable=False)
-    LAN_ew_EWZ = db.Column(db.String(255), nullable=False)
-    OBJECTID = db.Column(db.String(255), nullable=False)
-    Fallzahl = db.Column(db.String(255), nullable=False)
-    Aktualisierung = db.Column(db.String(255), nullable=False)
-    AGS_TXT = db.Column(db.String(255), nullable=False)
-    GlobalID = db.Column(db.String(255), nullable=False)
-    faelle_100000_EW = db.Column(db.String(255), nullable=False)
-    Death = db.Column(db.String(255), nullable=False)
-    cases7_bl_per_100k = db.Column(db.String(255), nullable=False)
-    cases7_bl = db.Column(db.String(255), nullable=False)
-    death7_bl = db.Column(db.String(255), nullable=False)
+    object_id_1 = db.Column(db.Integer, nullable=False)
+    lan_ew_ags = db.Column(db.Integer, nullable=False)
+    lan_ew_gen = db.Column(db.String(255), nullable=False)
+    lan_ew_bez = db.Column(db.String(255), nullable=False)
+    lan_ew_ewz = db.Column(db.Integer, nullable=False)
+    object_id = db.Column(db.Integer, nullable=False)
+    fallzahl = db.Column(db.Integer, nullable=False)
+    aktualisierung = db.Column(db.String(255), nullable=False)
+    ags_txt = db.Column(db.Integer, nullable=False)
+    global_id = db.Column(db.String(255), nullable=False)
+    faelle_100000_ew = db.Column(db.Float, nullable=False)
+    death = db.Column(db.Integer, nullable=False)
+    cases7_bl_per_100k = db.Column(db.Float, nullable=False)
+    cases7_bl = db.Column(db.Integer, nullable=False)
+    death7_bl = db.Column(db.Integer, nullable=False)
     cases7_bl_per_100k_txt = db.Column(db.String(255), nullable=False)
-    AdmUnitId = db.Column(db.String(255), nullable=False)
-    SHAPE_Length = db.Column(db.String(255), nullable=False)
-    SHAPE_Area = db.Column(db.String(255), nullable=False)
+    adm_unit_id = db.Column(db.Integer, nullable=False)
+    shape_length = db.Column(db.Float, nullable=False)
+    shape_area = db.Column(db.Float, nullable=False)
 
     @classmethod
     def remove_all(cls):
diff --git a/src/covid19/blueprints/rki_bundeslaender/rki_model_import.py b/src/covid19/blueprints/rki_bundeslaender/rki_model_import.py
index f747f2b48b8000e35ba435964b99370169c2ea44..4b9bd790e3aed70bad3bafe959d76156266a3ccd 100644
--- a/src/covid19/blueprints/rki_bundeslaender/rki_model_import.py
+++ b/src/covid19/blueprints/rki_bundeslaender/rki_model_import.py
@@ -1,15 +1,11 @@
 from database import db, ITEMS_PER_PAGE
 
-# OBJECTID_1,LAN_ew_AGS,LAN_ew_GEN,LAN_ew_BEZ,LAN_ew_EWZ,OBJECTID,Fallzahl,Aktualisierung,AGS_TXT,GlobalID,faelle_100000_EW,Death,cases7_bl_per_100k,cases7_bl,death7_bl,cases7_bl_per_100k_txt,AdmUnitId,SHAPE_Length,SHAPE_Area
 
-
-# TODO: #123 split RkiBundeslaenderService into two Services, one for bundeslaender and one for landkreise
 # TODO: #126 implement RkiBundeslaenderImport
 class RkiBundeslaenderImport(db.Model):
     __tablename__ = 'rki_bundeslsaender_import'
 
     id = db.Column(db.Integer, primary_key=True)
-
     OBJECTID_1 = db.Column(db.String(255), nullable=False)
     LAN_ew_AGS = db.Column(db.String(255), nullable=False)
     LAN_ew_GEN = db.Column(db.String(255), nullable=False)
@@ -38,7 +34,7 @@ class RkiBundeslaenderImport(db.Model):
         return None
 
     @classmethod
-    def get_all_as_page(cls, page):
+    def get_all_as_page(cls, page: int):
         return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE)
 
     @classmethod
@@ -46,10 +42,17 @@ class RkiBundeslaenderImport(db.Model):
         return db.session.query(cls).all()
 
     @classmethod
-    def get_by_id(cls, other_id):
+    def get_by_id(cls, other_id: int):
         return db.session.query(cls).filter(cls.id == other_id).one()
 
     @classmethod
-    def get_dates_reported(self):
-        # TODO: #127 implement RkiBundeslaenderImport.get_dates_reported
-        return self
+    def get_aktualisierungen_as_array(cls):
+        return []
+
+    @classmethod
+    def find_by_aktualisierung(cls, aktualisierung_from_import: str):
+        return []
+
+    @classmethod
+    def get_new_aktualisierungen_as_array(cls):
+        return []
diff --git a/src/covid19/blueprints/rki_bundeslaender/rki_service.py b/src/covid19/blueprints/rki_bundeslaender/rki_service.py
index b5f8d7e486ff32d4a3302dd7bcdd9fd7ddeb8624..896496f1cb397c2c6c2f3e188b7aff3692d2a8e5 100644
--- a/src/covid19/blueprints/rki_bundeslaender/rki_service.py
+++ b/src/covid19/blueprints/rki_bundeslaender/rki_service.py
@@ -26,8 +26,8 @@ class RkiBundeslaenderService:
         return self
 
     def task_database_drop_create(self):
-        # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-        # TODO: #133 implement RkiBundeslaenderService.task_database_drop_create
+        self.service_import.import_file()
+        self.service_update.update_star_schema_initial()
         return self
 
     def run_download_only(self):
@@ -40,74 +40,27 @@ class RkiBundeslaenderService:
         return self
 
     def run_update_dimension_tables_only(self):
-        # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-        # TODO: #134 implement RkiBundeslaenderService.run_update_dimension_tables_only
+        self.service_update.update_dimension_tables_only()
         return self
 
     def run_update_fact_table_incremental_only(self):
-        # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-        # TODO: #135 implement RkiBundeslaenderService.run_update_fact_table_incremental_only
+        self.service_update.update_fact_table_incremental_only()
         return self
 
     def run_update_fact_table_initial_only(self):
-        # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-        # TODO: #136 implement RkiBundeslaenderService.run_update_fact_table_initial_only
+        self.service_update.update_fact_table_initial_only()
         return self
 
     def run_update_star_schema_incremental(self):
-        # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-        # TODO: #137 implement RkiBundeslaenderService.run_update_star_schema_incremental
+        self.service_download.download_file()
+        self.service_import.import_file()
+        self.service_update.update_star_schema_incremental()
         return self
 
     def run_update_star_schema_initial(self):
-        # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-        # TODO: #138 implement RkiBundeslaenderService.run_update_star_schema_initial
-        return self
-
-    # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-    def run_download(self):
-        app.logger.info(" run update [begin]")
-        app.logger.info("------------------------------------------------------------")
-        success = self.service_download.download_file()
-        app.logger.info("")
-        app.logger.info(" run update [done]")
-        app.logger.info("------------------------------------------------------------")
-        return success
-
-    # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-    def run_update(self, import_file=True):
-        app.logger.info(" run update [begin]")
-        app.logger.info("------------------------------------------------------------")
-        if import_file:
-            self.service_import.import_file()
-        self.service_update.update_db()
-        app.logger.info("")
-        app.logger.info(" run update [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-    def run_update_short(self, import_file=True):
-        app.logger.info(" run update short [begin]")
-        app.logger.info("------------------------------------------------------------")
-        if import_file:
-            self.service_import.import_file()
-        self.service_update.update_db_short()
-        app.logger.info("")
-        app.logger.info(" run update short [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    # TODO: #132 refactor RkiBundeslaenderService to new method scheme introduced 07.02.2021
-    def run_update_initial(self, import_file=True):
-        app.logger.info(" run update initial [begin]")
-        app.logger.info("------------------------------------------------------------")
-        if import_file:
-            self.service_import.import_file()
-        self.service_update.update_db_initial()
-        app.logger.info("")
-        app.logger.info(" run update initial [done]")
-        app.logger.info("------------------------------------------------------------")
+        self.service_download.download_file()
+        self.service_import.import_file()
+        self.service_update.update_star_schema_initial()
         return self
 
     def download_all_files(self):
diff --git a/src/covid19/blueprints/rki_bundeslaender/rki_service_download.py b/src/covid19/blueprints/rki_bundeslaender/rki_service_download.py
index 921e1ac8b868bd7b4f28f1fe19b94c821156b1e6..da8a384c77ffb857a6c454c600ab572aa5489723 100644
--- a/src/covid19/blueprints/rki_bundeslaender/rki_service_download.py
+++ b/src/covid19/blueprints/rki_bundeslaender/rki_service_download.py
@@ -22,11 +22,10 @@ class RkiBundeslaenderServiceDownload:
         app.logger.info(" download FILE: "+self.cfg.cvsfile_path+" from "+self.cfg.url_src)
         app.logger.info("------------------------------------------------------------")
         try:
-            os.makedirs(self.cfg.data_path, exist_ok=True)
             if os.path.isfile(self.cfg.cvsfile_path):
                 os.remove(self.cfg.cvsfile_path)
             data_file = wget.download(self.cfg.url_src, self.cfg.cvsfile_path)
-            app.logger.info(" " + data_file + " ")
+            app.logger.info("download success: " + data_file + " ")
         except RuntimeError as runtimeError:
             app.logger.error("############################################################")
             app.logger.error(" " + runtimeError + " ")
diff --git a/src/covid19/blueprints/rki_bundeslaender/rki_service_import.py b/src/covid19/blueprints/rki_bundeslaender/rki_service_import.py
index c9ea1c9b6c21a22c98341e3e79b0270c6771837c..7f8a6e93c680a49e5cc9ca9d934f7017e48a18e1 100644
--- a/src/covid19/blueprints/rki_bundeslaender/rki_service_import.py
+++ b/src/covid19/blueprints/rki_bundeslaender/rki_service_import.py
@@ -28,6 +28,7 @@ class RkiBundeslaenderServiceImport:
                 file_reader = csv.DictReader(csv_file, delimiter=',', quotechar='"')
                 k = 0
                 for row in file_reader:
+                    k = k + 1
                     o = RkiBundeslaenderImport(
                         OBJECTID_1=row['OBJECTID_1'],
                         LAN_ew_AGS=row['LAN_ew_AGS'],
@@ -52,24 +53,23 @@ class RkiBundeslaenderServiceImport:
                     db.session.add(o)
                     if (k % 2000) == 0:
                         db.session.commit()
-                        app.logger.info(" import RKI  ... " + str(k) + " rows")
-                    k = k + 1
+                        app.logger.info(" import RKI Bundeslaender  ... " + str(k) + " rows")
                 db.session.commit()
-                app.logger.info(" import RKI  ... " + str(k) + " rows total")
+                app.logger.info(" import RKI Bundeslaender ... " + str(k) + " rows total")
         except KeyError as error:
             app.logger.warning("WARN: import RKI [begin]")
             app.logger.warning(":::"+str(error)+":::")
             for item_key, item_value in row.items():
                 app.logger.warning(item_key+" : "+item_value)
-            app.logger.warning("WARN: import RKI [end]")
+            app.logger.warning("WARN: import RKI Bundeslaender [end]")
         except (Exception, psycopg2.DatabaseError) as error:
-            app.logger.warning("WARN: import RKI [begin]")
+            app.logger.warning("WARN: import RKI Bundeslaender [begin]")
             app.logger.warning(error)
-            app.logger.warning("WARN: import RKI [end]")
+            app.logger.warning("WARN: import RKI Bundeslaender [end]")
         finally:
             app.logger.info("")
             app.logger.info("------------------------------------------------------------")
             app.logger.info(" imported into TABLE: "+self.cfg.tablename+" from "+self.cfg.cvsfile_path)
             app.logger.info("------------------------------------------------------------")
-            app.logger.info(" import RKI [done]")
+            app.logger.info(" import RKI Bundeslaender  [done]")
         return self
diff --git a/src/covid19/blueprints/rki_bundeslaender/rki_service_update.py b/src/covid19/blueprints/rki_bundeslaender/rki_service_update.py
index 990f7709a9770c1d83a1e6b67f4f95464ab0cc18..be6f25eded3d2137acc550fcda1b65e1647ec768 100644
--- a/src/covid19/blueprints/rki_bundeslaender/rki_service_update.py
+++ b/src/covid19/blueprints/rki_bundeslaender/rki_service_update.py
@@ -1,6 +1,6 @@
 from database import db, app
 
-from covid19.blueprints.application.application_model import RkiRegion, RkiDateReported, RkiCountry
+from covid19.blueprints.application.application_model import RkiDateReported
 from covid19.blueprints.rki_bundeslaender.rki_model import RkiBundeslaender
 from covid19.blueprints.rki_bundeslaender.rki_model_import import RkiBundeslaenderImport
 from covid19.blueprints.rki_bundeslaender.rki_service_config import RkiBundeslaenderServiceConfig
@@ -16,143 +16,56 @@ class RkiBundeslaenderServiceUpdate:
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" RKI Service Update [ready]")
 
-    def __update_who_date_reported(self):
-        app.logger.info(" update who_date_reported [begin]")
+    def __update_date_reported(self):
+        app.logger.info(" update RkiDateReported [begin]")
         app.logger.info("------------------------------------------------------------")
         i = 0
-        for i_date_reported, in RkiBundeslaenderImport.get_dates_reported():
-            c = RkiDateReported.find_by_date_reported(i_date_reported)
-            if c is None:
-                o = RkiDateReported.create_new_object_factory(my_date_rep=i_date_reported)
-                db.session.add(o)
-                app.logger.info(" update who_date_reported "+i_date_reported+" added NEW")
-            if i % 10 == 0:
-                app.logger.info(" update who_date_reported "+i_date_reported+" not added")
-                db.session.commit()
-            i += 1
-        db.session.commit()
-        app.logger.info("")
-        app.logger.info(" update who_date_reported [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    # TODO: #148 refactor RkiBundeslaenderServiceUpdate.__update_who_region
-    def __update_who_region(self):
-        app.logger.info(" update who_region [begin]")
-        app.logger.info("------------------------------------------------------------")
-        i = 0
-        for i_who_region, in db.session.query(RkiBundeslaenderImport.who_region).distinct():
-            c = db.session.query(RkiRegion).filter(RkiRegion.region == i_who_region).count()
-            if c == 0:
-                o = RkiRegion(region=i_who_region)
-                db.session.add(o)
-                app.logger.info(i_who_region +" added NEW ")
-            else:
-                app.logger.info(i_who_region +" not added ")
-            if i % 10 == 0:
-                db.session.commit()
+        for aktualisierung in RkiBundeslaenderImport.get_aktualisierungen_as_array():
             i += 1
-        db.session.commit()
-        app.logger.info("")
-        app.logger.info(" update who_region [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    # TODO: #149 refactor RkiBundeslaenderServiceUpdate.__update_who_country
-    def __update_who_country(self):
-        app.logger.info(" update who_country [begin]")
-        app.logger.info("------------------------------------------------------------")
-        sql_text = """
-        select distinct 
-            who_global_data_import.country_code,
-            who_global_data_import.country,
-            who_global_data_import.who_region
-        from who_global_data_import
-        """
-        result = db.session.execute(sql_text).fetchall()
-        for result_item in result:
-            i_country_code = result_item.country_code
-            i_country = result_item.country
-            i_who_region = result_item.who_region
-            output = i_country_code + " " + i_country + " " + i_who_region
-            my_region = RkiRegion.find_by_region(i_who_region)
-            my_country = RkiCountry.find_by_country_code_and_country_and_who_region_id(
-                i_country_code, i_country, my_region
-            )
-            if my_country is None:
-                o = RkiCountry(
-                    country=i_country,
-                    country_code=i_country_code,
-                    region=my_region)
+            output = " [ " + str(i) + " ] " + aktualisierung
+            c = RkiDateReported.find_by_date_reported(aktualisierung)
+            if c is None:
+                o = RkiDateReported.create_new_object_factory(aktualisierung=aktualisierung)
                 db.session.add(o)
                 db.session.commit()
-                my_country = RkiCountry.find_by_country_code_and_country_and_who_region_id(
-                    i_country_code, i_country, my_region
-                )
-                output += " added NEW "
+                output += " added"
             else:
-                output += " not added "
-            output += i_country_code + " id=" + str(my_country.id)
+                output += " NOT added " + str(c.id)
             app.logger.info(output)
         db.session.commit()
         app.logger.info("")
-        app.logger.info(" update who_country [done]")
+        app.logger.info(" update RkiDateReported [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    # TODO: #150 refactor RkiBundeslaenderServiceUpdate.__update_who_global_data
-    def __update_who_global_data(self):
-        app.logger.info(" update WHO [begin]")
+    def __update_data_incremental(self):
+        app.logger.info(" update RkiBundeslaender short [begin]")
         app.logger.info("------------------------------------------------------------")
-        dates_reported = RkiDateReported.get_all_as_dict()
-        countries = RkiCountry.get_all_as_dict()
-        #
-        #
+        aktualisierungen_from_import = RkiBundeslaenderImport.get_aktualisierungen_as_array()
         i = 0
-        result = RkiBundeslaenderImport.get_all()
-        for result_item in result:
-            my_country = countries[result_item.country_code]
-            my_date_reported = dates_reported[result_item.date_reported]
-            result_who_global_data = RkiBundeslaender.find_one_or_none_by_date_and_country(
-                my_date_reported,
-                my_country)
-            if result_who_global_data is None:
+        for aktualisierung_from_import in aktualisierungen_from_import:
+            my_date = RkiDateReported.find_by_aktualisierung(aktualisierung_from_import)
+            for result_item in RkiBundeslaenderImport.find_by_aktualisierung(aktualisierung_from_import):
                 o = RkiBundeslaender(
-                    cases_new=int(result_item.new_cases),
-                    cases_cumulative=int(result_item.cumulative_cases),
-                    deaths_new=int(result_item.new_deaths),
-                    deaths_cumulative=int(result_item.cumulative_deaths),
-                    date_reported=my_date_reported,
-                    country=my_country
-                )
-                db.session.add(o)
-            if i % 2000 == 0:
-                app.logger.info(" update WHO ... "+str(i)+" rows")
-                db.session.commit()
-            i += 1
-        db.session.commit()
-        app.logger.info(" update RKI :  "+str(i)+" total rows")
-        app.logger.info(" update RKI [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    # TODO: #151 refactor RkiBundeslaenderServiceUpdate.__update_who_global_data_short
-    def __update_who_global_data_short(self):
-        app.logger.info(" update RKI short [begin]")
-        app.logger.info("------------------------------------------------------------")
-        new_dates_reported_from_import = RkiBundeslaenderImport.get_new_dates_as_array()
-        i = 0
-        for my_date_reported in new_dates_reported_from_import:
-            my_date = RkiDateReported.find_by_date_reported(my_date_reported)
-            for result_item in RkiBundeslaenderImport.get_for_one_day(my_date_reported):
-                my_country = RkiCountry.find_by_country_code(result_item.country_code)
-                o = RkiBundeslaender(
-                    cases_new=int(result_item.new_cases),
-                    cases_cumulative=int(result_item.cumulative_cases),
-                    deaths_new=int(result_item.new_deaths),
-                    deaths_cumulative=int(result_item.cumulative_deaths),
-                    date_reported=my_date,
-                    country=my_country
+                    object_id_1=int(result_item.OBJECTID_1),
+                    lan_ew_ags=int(result_item.LAN_ew_AGS),
+                    lan_ew_gen=result_item.LAN_ew_GEN,
+                    lan_ew_bez=result_item.LAN_ew_BEZ,
+                    lan_ew_ewz=int(result_item.LAN_ew_EWZ),
+                    object_id=int(result_item.OBJECTID),
+                    fallzahl=int(result_item.Fallzahl),
+                    aktualisierung=result_item.Aktualisierung,
+                    ags_txt=int(result_item.AGS_TXT),
+                    global_id=result_item.GlobalID,  # uuid?
+                    faelle_100000_ew=float(result_item.faelle_100000_EW),
+                    death=int(result_item.Death),
+                    cases7_bl_per_100k=int(result_item.cases7_bl_per_100k),
+                    cases7_bl=int(result_item.cases7_bl),
+                    death7_bl=int(result_item.death7_bl),
+                    cases7_bl_per_100k_txt=result_item.cases7_bl_per_100k_txt,
+                    adm_unit_id=int(result_item.AdmUnitId),
+                    shape_length=float(result_item.SHAPE_Length),
+                    shape_area=float(result_item.SHAPE_Area),
                 )
                 db.session.add(o)
                 result_item.row_imported = True
@@ -162,33 +75,42 @@ class RkiBundeslaenderServiceUpdate:
                     app.logger.info(" update WHO short ... "+str(i)+" rows")
                     db.session.commit()
             db.session.commit()
-        app.logger.info(" update RKI short :  "+str(i)+" total rows")
-        app.logger.info(" update RKI short [done]")
+        app.logger.info(" update RkiBundeslaender short :  "+str(i)+" total rows")
+        app.logger.info(" update RkiBundeslaender short [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    # TODO: #152 refactor RkiBundeslaenderServiceUpdate.__update_who_global_data_initial
-    def __update_who_global_data_initial(self):
+    def __update_data_initial(self):
         app.logger.info(" update RKI initial [begin]")
         app.logger.info("------------------------------------------------------------")
         RkiBundeslaender.remove_all()
-        new_dates_reported_from_import = RkiBundeslaenderImport.get_new_dates_as_array()
+        aktualisierungen_from_import = RkiBundeslaenderImport.get_new_aktualisierungen_as_array()
         i = 0
-        for my_date_reported in new_dates_reported_from_import:
-            my_date = RkiDateReported.find_by_date_reported(my_date_reported)
-            for result_item in RkiBundeslaenderImport.get_for_one_day(my_date_reported):
-                my_country = RkiCountry.find_by_country_code(result_item.country_code)
+        for aktualisierung_from_import in aktualisierungen_from_import:
+            my_date = RkiDateReported.find_by_aktualisierung(aktualisierung_from_import)
+            for result_item in RkiBundeslaenderImport.find_by_aktualisierung(aktualisierung_from_import):
                 o = RkiBundeslaender(
-                    cases_new=int(result_item.new_cases),
-                    cases_cumulative=int(result_item.cumulative_cases),
-                    deaths_new=int(result_item.new_deaths),
-                    deaths_cumulative=int(result_item.cumulative_deaths),
-                    date_reported=my_date,
-                    country=my_country
+                    object_id_1=int(result_item.OBJECTID_1),
+                    lan_ew_ags=int(result_item.LAN_ew_AGS),
+                    lan_ew_gen=result_item.LAN_ew_GEN,
+                    lan_ew_bez=result_item.LAN_ew_BEZ,
+                    lan_ew_ewz=int(result_item.LAN_ew_EWZ),
+                    object_id=int(result_item.OBJECTID),
+                    fallzahl=int(result_item.Fallzahl),
+                    aktualisierung=result_item.Aktualisierung,
+                    ags_txt=int(result_item.AGS_TXT),
+                    global_id=result_item.GlobalID, # uuid?
+                    faelle_100000_ew=float(result_item.faelle_100000_EW),
+                    death=int(result_item.Death),
+                    cases7_bl_per_100k=int(result_item.cases7_bl_per_100k),
+                    cases7_bl=int(result_item.cases7_bl),
+                    death7_bl=int(result_item.death7_bl),
+                    cases7_bl_per_100k_txt=result_item.cases7_bl_per_100k_txt,
+                    adm_unit_id=int(result_item.AdmUnitId),
+                    shape_length=float(result_item.SHAPE_Length),
+                    shape_area=float(result_item.SHAPE_Area),
                 )
                 db.session.add(o)
-                result_item.row_imported = True
-                db.session.add(result_item)
                 i += 1
                 if i % 500 == 0:
                     app.logger.info(" update WHO initial ... "+str(i)+" rows")
@@ -199,64 +121,25 @@ class RkiBundeslaenderServiceUpdate:
         app.logger.info("------------------------------------------------------------")
         return self
 
-    # TODO: #153 refactor RkiBundeslaenderServiceUpdate.update_db
-    def update_db(self):
-        app.logger.info(" update db [begin]")
-        app.logger.info("------------------------------------------------------------")
-        self.__update_who_date_reported()
-        self.__update_who_region()
-        self.__update_who_country()
-        self.__update_who_global_data()
-        app.logger.info(" update db [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    # TODO: #154 refactor RkiBundeslaenderServiceUpdate.update_db_short
-    def update_db_short(self):
-        app.logger.info(" update db short [begin]")
-        app.logger.info("------------------------------------------------------------")
-        self.__update_who_date_reported()
-        self.__update_who_region()
-        self.__update_who_country()
-        self.__update_who_global_data_short()
-        app.logger.info(" update db short [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    # TODO: #155 refactor RkiBundeslaenderServiceUpdate.update_db_initial
-    def update_db_initial(self):
-        app.logger.info(" update db initial [begin]")
-        app.logger.info("------------------------------------------------------------")
-        self.__update_who_date_reported()
-        self.__update_who_region()
-        self.__update_who_country()
-        self.__update_who_global_data_initial()
-        app.logger.info(" update db initial [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
     def update_dimension_tables_only(self):
-        #TODO: #123 split RkiBundeslaenderService into two Services, one for bundeslaender and one for landkreise
-        #TODO: #141 implement RkiBundeslaenderServiceUpdate.update_dimension_tables_only
+        self.__update_date_reported()
         return self
 
     def update_fact_table_incremental_only(self):
-        #TODO: #123 split RkiBundeslaenderService into two Services, one for bundeslaender and one for landkreise
-        #TODO: #142 implement RkiBundeslaenderServiceUpdate.update_fact_table_incremental_only
+        self.__update_data_incremental()
         return self
 
     def update_fact_table_initial_only(self):
-        #TODO: #123 split RkiBundeslaenderService into two Services, one for bundeslaender and one for landkreise
-        #TODO: #143 implement RkiBundeslaenderServiceUpdate.update_fact_table_initial_only
+        self.__update_data_initial()
         return self
 
     def update_star_schema_incremental(self):
-        #TODO: #123 split RkiBundeslaenderService into two Services, one for bundeslaender and one for landkreise
-        #TODO: #144 implement RkiBundeslaenderServiceUpdate.update_star_schema_incremental
+        self.__update_date_reported()
+        self.__update_data_incremental()
         return self
 
     def update_star_schema_initial(self):
-        #TODO: #123 split RkiBundeslaenderService into two Services, one for bundeslaender and one for landkreise
-        #TODO: #145 implement RkiBundeslaenderServiceUpdate.update_star_schema_initial
+        self.__update_date_reported()
+        self.__update_data_initial()
         return self
 
diff --git a/src/covid19/blueprints/who/who_service_download.py b/src/covid19/blueprints/who/who_service_download.py
index cb646d145802458f6be0c064c09ed4d0f2e943f8..50d225668fabc5977b56c027553f835743f8f7ef 100644
--- a/src/covid19/blueprints/who/who_service_download.py
+++ b/src/covid19/blueprints/who/who_service_download.py
@@ -21,7 +21,6 @@ class WhoServiceDownload:
         app.logger.info(" download FILE: "+self.cfg.cvsfile_name+" from "+self.cfg.url_src)
         app.logger.info("------------------------------------------------------------")
         try:
-            os.makedirs(self.cfg.data_path, exist_ok=True)
             if os.path.isfile(self.cfg.cvsfile_path):
                 os.remove(self.cfg.cvsfile_path)
             data_file = wget.download(self.cfg.url_src, self.cfg.cvsfile_path)
diff --git a/src/covid19/blueprints/who/who_service_update.py b/src/covid19/blueprints/who/who_service_update.py
index 7cfc02b07ab5cf1ddc3eda4c1e338da8425fadef..6e5d80e41fd2b65bd0618aeb93ab38dcfea4583a 100644
--- a/src/covid19/blueprints/who/who_service_update.py
+++ b/src/covid19/blueprints/who/who_service_update.py
@@ -7,15 +7,15 @@ from covid19.blueprints.who.who_service_download import WhoServiceConfig
 class WhoServiceUpdate:
     def __init__(self, database, config: WhoServiceConfig):
         app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" WHO Service Update [init]")
+        app.logger.debug(" WhoServiceUpdate [init]")
         app.logger.debug("------------------------------------------------------------")
         self.__database = database
         self.cfg = config
         app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" WHO Service Update [ready]")
+        app.logger.debug(" WhoServiceUpdate [ready]")
 
-    def __update_who_date_reported(self):
-        app.logger.info(" __update_who_date_reported [begin]")
+    def __update_date_reported(self):
+        app.logger.info(" WhoServiceUpdate.__update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
         i = 0
         for i_date_reported, in WhoImport.get_dates_reported():
@@ -31,12 +31,12 @@ class WhoServiceUpdate:
                 output += " NOT added "+str(c.id)
             app.logger.info(output)
         app.logger.info("")
-        app.logger.info(" __update_who_date_reported [done]")
+        app.logger.info(" WhoServiceUpdate.__update_date_reported [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_who_region(self):
-        app.logger.info(" __update_who_region [begin]")
+    def __update_region(self):
+        app.logger.info(" WhoServiceUpdate.__update_who_region [begin]")
         app.logger.info("------------------------------------------------------------")
         i = 0
         for i_who_region, in WhoImport.get_regions():
@@ -52,12 +52,12 @@ class WhoServiceUpdate:
                 output += " NOT added ( " + str(c.id) + " ) "
             app.logger.info(output)
         app.logger.info("")
-        app.logger.info(" __update_who_region [done]")
+        app.logger.info(" WhoServiceUpdate.__update_who_region [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_who_country(self):
-        app.logger.info(" __update_who_country [begin]")
+    def __update_country(self):
+        app.logger.info(" WhoServiceUpdate.__update_who_country [begin]")
         app.logger.info("------------------------------------------------------------")
         result = WhoImport.countries()
         i = 0
@@ -85,12 +85,12 @@ class WhoServiceUpdate:
             app.logger.info(output)
         db.session.commit()
         app.logger.info("")
-        app.logger.info(" __update_who_country [done]")
+        app.logger.info(" WhoServiceUpdate.__update_who_country [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_fact_table_incremental(self):
-        app.logger.info(" __update_fact_tables_incremental [begin]")
+    def __update_data_incremental(self):
+        app.logger.info(" WhoServiceUpdate.__update_fact_tables_incremental [begin]")
         app.logger.info("------------------------------------------------------------")
         new_dates_reported_from_import = WhoImport.get_new_dates_as_array()
         i = 0
@@ -123,12 +123,12 @@ class WhoServiceUpdate:
             db.session.commit()
             app.logger.info(" update WHO incremental ... " + str(i) + " rows [" + str(my_date) + "] (" + str(k) + ")")
         app.logger.info(" update WHO incremental :  "+str(i)+" rows total")
-        app.logger.info(" __update_fact_tables_incremental [done]")
+        app.logger.info(" WhoServiceUpdate.__update_fact_tables_incremental [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_fact_table_initial(self):
-        app.logger.info(" __update_fact_table_initial [begin]")
+    def __update_data_initial(self):
+        app.logger.info(" WhoServiceUpdate.__update_fact_table_initial [begin]")
         app.logger.info("------------------------------------------------------------")
         WhoData.remove_all()
         new_dates_reported_from_import = WhoImport.get_new_dates_as_array()
@@ -158,14 +158,14 @@ class WhoServiceUpdate:
                     db.session.commit()
             db.session.commit()
         app.logger.info(" update WHO initial :  "+str(i)+" total rows")
-        app.logger.info(" __update_fact_table_initial [done]")
+        app.logger.info(" WhoServiceUpdate.__update_fact_table_initial [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
     def __update_dimension_tables(self):
-        self.__update_who_date_reported()
-        self.__update_who_region()
-        self.__update_who_country()
+        self.__update_date_reported()
+        self.__update_region()
+        self.__update_country()
         return self
 
     def update_dimension_tables_only(self):
@@ -179,7 +179,7 @@ class WhoServiceUpdate:
     def update_fact_table_incremental_only(self):
         app.logger.info(" update_fact_tables_incremental_only [begin]")
         app.logger.info("------------------------------------------------------------")
-        self.__update_fact_table_incremental()
+        self.__update_data_incremental()
         app.logger.info(" update_fact_tables_incremental_only [done]")
         app.logger.info("------------------------------------------------------------")
         return self
@@ -187,7 +187,7 @@ class WhoServiceUpdate:
     def update_fact_table_initial_only(self):
         app.logger.info(" update_fact_tables_initial_only [begin]")
         app.logger.info("------------------------------------------------------------")
-        self.__update_fact_table_initial()
+        self.__update_data_initial()
         app.logger.info(" update_fact_tables_initial_only [done]")
         app.logger.info("------------------------------------------------------------")
         return self
@@ -196,7 +196,7 @@ class WhoServiceUpdate:
         app.logger.info(" update_star_schema_incremental [begin]")
         app.logger.info("------------------------------------------------------------")
         self.__update_dimension_tables()
-        self.__update_fact_table_incremental()
+        self.__update_data_incremental()
         app.logger.info(" update_star_schema_incremental [done]")
         app.logger.info("------------------------------------------------------------")
         return self
@@ -205,7 +205,7 @@ class WhoServiceUpdate:
         app.logger.info(" update_star_schema_initial [begin]")
         app.logger.info("------------------------------------------------------------")
         self.__update_dimension_tables()
-        self.__update_fact_table_initial()
+        self.__update_data_initial()
         app.logger.info(" update_star_schema_initial [done]")
         app.logger.info("------------------------------------------------------------")
         return self