diff --git a/.gitignore b/.gitignore
index 5c6b938cbee2b464ddd711c26b8d510fbf54d40e..6402ceac94096a6da0aabf2b91a9c182c6e5776e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1146,4 +1146,4 @@ dump.rdb
 /logfile5.txt
 /logfile*.txt
 /src/covid19/static/vendor/
-/.checkmate/
+/.checkmate
diff --git a/README.md b/README.md
index 4bde67226cf0ab0a0703d7980e2af8d2ae50cb40..fe8a32de9c0f7621ca6c2bf4771a18d86f0dba72 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
 # covid19python
-* Version 0.0.32  asdf
+* Version 0.0.32
 
 ## git
 * github: https://git.noc.ruhr-uni-bochum.de/thomaswoehlke/flask-covid19.git
diff --git a/data b/data
index 107d3f8a9cf82edde724adc26f7fcacfb4a0ec34..55065ba62c4341104e2c6768a3ebfa046bd2a013 160000
--- a/data
+++ b/data
@@ -1 +1 @@
-Subproject commit 107d3f8a9cf82edde724adc26f7fcacfb4a0ec34
+Subproject commit 55065ba62c4341104e2c6768a3ebfa046bd2a013
diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md
index 4ecd9674ce3ac68772603116f8883f24fb99f407..a62e80b150c679ddcae2ce88a58d4d32cb95c2ea 100644
--- a/docs/BACKLOG.md
+++ b/docs/BACKLOG.md
@@ -295,33 +295,137 @@
 
 
 ### 0.0.32 Release
+* Fixed #212 implement OwidService.task_database_drop_create()  
+* Fixed #214 implement OwidServiceUpdate.update_dimension_tables_only()
+* Fixed #215 implement OwidServiceUpdate.update_fact_table_incremental_only()
+* Fixed #216 implement OwidServiceUpdate.update_fact_table_initial_only()
+* Fixed #217 implement OwidServiceUpdate.update_star_schema_incremental()
+* Fixed #218 implement OwidServiceUpdate.update_star_schema_initial()
+* Fixed #210 database.py: logging for Celery on Windows (wontfix)
+
+### 0.0.33 Release
+* Fixed #165 implement url_ecdc_task_download_only in europe_views.py
+* Fixed #166 implement url_ecdc_task_import_only in europe_views.py
+* Fixed #167 implement url_ecdc_task_update_dimensiontables_only in europe_views.py 
+* Fixed #168 implement url_ecdc_task_update_facttable_incremental_only in europe_views.py
+* Fixed #169 implement url_ecdc_task_update_facttable_initial_only in europe_views.py
+* Fixed #163 implement url_ecdc_task_update_star_schema_initial in europe_views.py
+* Fixed #164 implement url_ecdc_task_update_starschema_incremental in europe_views.py
+* Fixed #177 BUG: RkiBundeslaenderServiceImport.import_file (wontfix)
+* Fixed #178 BUG: RkiLandkreiseServiceImport.import_file (wontfix)
+* Fixed #222 RKI: Download Data File
+* Fixed #223 RKI: Prepare Navigation and Pages for Info, Tasks, Tests and RKI imported
+* Fixed #224 RKI: Prepare Development of RKI import
+
+### 0.0.34 Release
+* -------------------------------------
+* Issue WHO: Development: Navigation and Pages for Info, Tasks and Tests 
+* Issue WHO: Development: Download Data File
+* Issue WHO: Development: import
+* Issue WHO: Development: full update Dimension Tables
+* Issue WHO: Development: full update Fact Table
+* Issue WHO: Development: update Dimension Tables
+* Issue WHO: Development: update Fact Table
+* Issue WHO: Development: Navigation and Pages for Imported Table
+* Issue WHO: Development: Navigation and Pages for Dimension Tables
+* Issue WHO: Development: Navigation and Pages for Fact Table
+* Issue WHO: Update UML Diagrams for Domain Model   
+* Issue WHO: Update UML Diagrams for Use Cases 
+* Issue WHO: QA: add Selenium Tests for all Frontend Urls and Pages without any Access to Database
+* Issue WHO: QA: add Selenium Tests for all Frontend Urls and Pages with Read Access to Database
+* Issue WHO: Documentation: write Tast-Plan for manual Testing 
+* Issue WHO: Documentation: write Checklist for manual Testing
+* -------------------------------------
+* Issue OWID: Development: Navigation and Pages for Info, Tasks and Tests 
+* Issue OWID: Development: Download Data File
+* Issue OWID: Development: import
+* Issue OWID: Development: full update Dimension Tables
+* Issue OWID: Development: full update Fact Table
+* Issue OWID: Development: update Dimension Tables
+* Issue OWID: Development: update Fact Table
+* Issue OWID: Development: Navigation and Pages for Imported Table
+* Issue OWID: Development: Navigation and Pages for Dimension Tables
+* Issue OWID: Development: Navigation and Pages for Fact Table  
+* Issue OWID: Documentation: Update UML Diagrams for Domain Model   
+* Issue OWID: Documentation: Update UML Diagrams for Use Cases 
+* Issue OWID: QA: add Selenium Tests for all Frontend Urls and Pages without any Access to Database
+* Issue OWID: QA: add Selenium Tests for all Frontend Urls and Pages with Read Access to Database 
+* Issue OWID: Documentation: write Tast-Plan for manual Testing 
+* Issue OWID: Documentation: write Checklist for manual Testing 
+* -------------------------------------
+* Issue ECDC: Development: Navigation and Pages for Info, Tasks and Tests 
+* Issue ECDC: Development: Download Data File
+* Issue ECDC: Development: import
+* Issue ECDC: Development: full update Dimension Tables
+* Issue ECDC: Development: full update Fact Table
+* Issue ECDC: Development: update Dimension Tables
+* Issue ECDC: Development: update Fact Table
+* Issue ECDC: Development: Navigation and Pages for Imported Table
+* Issue ECDC: Development: Navigation and Pages for Dimension Tables
+* Issue ECDC: Development: Navigation and Pages for Fact Table
+* Issue ECDC: Documentation: Update UML Diagrams for Domain Model   
+* Issue ECDC: Documentation: Update UML Diagrams for Use Cases   
+* Issue ECDC: QA: add Selenium Tests for all Frontend Urls and Pages without any Access to Database
+* Issue ECDC: QA: add Selenium Tests for all Frontend Urls and Pages with Read Access to Database 
+* Issue ECDC: Documentation: write Tast-Plan for manual Testing 
+* Issue ECDC: Documentation: write Checklist for manual Testing 
+* -------------------------------------
+* Issue RKI Vaccination: Development: Navigation and Pages for Info, Tasks and Tests 
+* Issue RKI Vaccination: Development: Download Data File
+* Issue RKI Vaccination: Development: import
+* Issue RKI Vaccination: Development: full update Dimension Tables
+* Issue RKI Vaccination: Development: full update Fact Table
+* Issue RKI Vaccination: Development: update Dimension Tables
+* Issue RKI Vaccination: Development: update Fact Table
+* Issue RKI Vaccination: Development: Navigation and Pages for Imported Table
+* Issue RKI Vaccination: Development: Navigation and Pages for Dimension Tables
+* Issue RKI Vaccination: Development: Navigation and Pages for Fact Table
+* Issue RKI Vaccination: Documentation: Update UML Diagrams for Domain Model   
+* Issue RKI Vaccination: Documentation: Update UML Diagrams for Use Cases   
+* Issue RKI Vaccination: QA: add Selenium Tests for all Frontend Urls and Pages without any Access to Database
+* Issue RKI Vaccination: QA: add Selenium Tests for all Frontend Urls and Pages with Read Access to Database 
+* Issue RKI Vaccination: Documentation: write Tast-Plan for manual Testing 
+* Issue RKI Vaccination: Documentation: write Checklist for manual Testing 
+* -------------------------------------
+* Issue RKI: Development: Navigation and Pages for Info, Tasks and Tests 
+* Issue RKI: Development: Download Data File
+* Issue RKI: Development: import
+* Issue RKI: Development: full update Dimension Tables
+* Issue RKI: Development: full update Fact Table
+* Issue RKI: Development: update Dimension Tables
+* Issue RKI: Development: update Fact Table
+* Issue RKI: Development: Navigation and Pages for Imported Table
+* Issue RKI: Development: Navigation and Pages for Dimension Tables
+* Issue RKI: Development: Navigation and Pages for Fact Table
+* Issue RKI: QA: add Selenium Tests for all Frontend Urls and Pages without any Access to Database
+* Issue RKI: QA: add Selenium Tests for all Frontend Urls and Pages with Read Access to Database
+* Issue RKI: Documentation: write Tast-Plan for manual Testing 
+* Issue RKI: Documentation: write Checklist for manual Testing 
+* -------------------------------------
+* Issue #220 add Selenium Tests for all Frontend Urls and Pages without any Access to Database
+* Issue #221 add Selenium Tests for all Frontend Urls and Pages with Read Access to Database
+
+
+### 0.0.35 Release
 * -------------------------------------    
 * Issue #195 RkiVaccinationImport.get_daterep_missing_in_vaccination_data(): native SQL to SQLalechemy Query
 * -------------------------------------
 * Issue #207 remove deprecated: database.port
 * Issue #208 remove deprecated: database.run_run_with_debug
 * Issue #209 remove deprecated: database.ITEMS_PER_PAGE
-* -------------------------------------
-* Issue #212 implement OwidService.task_database_drop_create()
-* -------------------------------------
-* Issue #214 implement OwidServiceUpdate.update_dimension_tables_only()
-* Issue #215 implement OwidServiceUpdate.update_fact_table_incremental_only()
-* Issue #216 implement OwidServiceUpdate.update_fact_table_initial_only()
-* Issue #217 implement OwidServiceUpdate.update_star_schema_incremental()
-* Issue #218 implement OwidServiceUpdate.update_star_schema_initial()
-* -------------------------------------  
-* Issue #210 database.py: logging for Celery on Windows
+
 
 ### 00 Inbox
 * -------------------------------------
+* Issue add Selenium Tests for all Frontend Urls and Pages without any Access to Database
+* Issue add Selenium Tests for all Frontend Urls and Pages with Read Access to Database
+
 
 ### 01 Next
 * -------------------------------------
 * Issue #198 UML: WHO Visual Graphs for Data per Countries order by Date
 * Issue #5 WHO Visual Graphs for Data per Countries order by Date
 * -------------------------------------
-* Issue #177 BUG: RkiBundeslaenderServiceImport.import_file 
-* Issue #178 BUG: RkiLandkreiseServiceImport.import_file
 
 ### 02 Soon
 * -------------------------------------
diff --git a/docs/BACKLOG_Config.md b/docs/BACKLOG_Config.md
new file mode 100644
index 0000000000000000000000000000000000000000..12a2553c224fd59b852e8b5249efd4aea02f8d30
--- /dev/null
+++ b/docs/BACKLOG_Config.md
@@ -0,0 +1,23 @@
+# config
+
+## Matrix Blueprints
+
+| WHO   | OWID  | ECDC  | Vaccination | RKI   | Intensivregister | All     | Label         | config                                          |
+|-------|-------|-------|-------------|-------|------------------|---------|---------------|------------------------------------------------|
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Navigation and Pages for Info, Tasks and Tests |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Download Data File |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | import |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | full update Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | full update Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | update Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | update Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Navigation and Pages for Imported Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Navigation and Pages for Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Navigation and Pages for Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Documentation | Update UML Diagrams for Domain Model   | 
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Documentation | Update UML Diagrams for Use Cases  |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Documentation | write Tast-Plan for manual Testing | 
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Documentation | write Checklist for manual Testing |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | QA            | add Selenium Tests for all Frontend Urls and Pages without any Access to Database |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | QA            | add Selenium Tests for all Frontend Urls and Pages with Read Access to Database |
+
diff --git a/docs/BACKLOG_Issues.md b/docs/BACKLOG_Issues.md
new file mode 100644
index 0000000000000000000000000000000000000000..f3a8281318b5421d4c195f3afcff4099cd8f67e3
--- /dev/null
+++ b/docs/BACKLOG_Issues.md
@@ -0,0 +1,23 @@
+# Backlog
+
+## Matrix Blueprints
+
+| WHO   | OWID  | ECDC  | Vaccination | RKI   | Intensivregister | All     | Label         | config                                          |
+|-------|-------|-------|-------------|-------|------------------|---------|---------------|------------------------------------------------|
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Navigation and Pages for Info, Tasks and Tests |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Download Data File |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | import |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | full update Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | full update Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | update Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | update Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Navigation and Pages for Imported Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Navigation and Pages for Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Development   | Navigation and Pages for Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Documentation | Update UML Diagrams for Domain Model   | 
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Documentation | Update UML Diagrams for Use Cases  |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | QA            | add Selenium Tests for all Frontend Urls and Pages without any Access to Database |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | QA            | add Selenium Tests for all Frontend Urls and Pages with Read Access to Database |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Documentation | write Tast-Plan for manual Testing | 
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Documentation | write Checklist for manual Testing |
+
diff --git a/docs/BACKLOG_Test_Cases.md b/docs/BACKLOG_Test_Cases.md
new file mode 100644
index 0000000000000000000000000000000000000000..aee8de7727e09b1b79e071ff0b140303e921f375
--- /dev/null
+++ b/docs/BACKLOG_Test_Cases.md
@@ -0,0 +1,22 @@
+# Test Cases
+
+## Matrix Data Blueprints
+
+| WHO   | OWID  | ECDC  | Vaccination | RKI   | Intensivregister | All     | Label     | Test Case                                         |
+|-------|-------|-------|-------------|-------|------------------|---------|-----------|------------------------------------------------|
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | Navigation and Pages for Info, Tasks and Tests |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | Download Data File |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | import |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | full update Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | full update Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | update Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | update Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | Navigation and Pages for Imported Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | Navigation and Pages for Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | Navigation and Pages for Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | Update UML Diagrams for Domain Model   | 
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | Update UML Diagrams for Use Cases  |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | add Selenium Tests for all Frontend Urls and Pages without any Access to Database |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | add Selenium Tests for all Frontend Urls and Pages with Read Access to Database |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | write Tast-Plan for manual Testing | 
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Test Case | write Checklist for manual Testing |
diff --git a/docs/BACKLOG_Use_Cases.md b/docs/BACKLOG_Use_Cases.md
new file mode 100644
index 0000000000000000000000000000000000000000..55bf8b4c9e381492138e531cadbf15be5866a50e
--- /dev/null
+++ b/docs/BACKLOG_Use_Cases.md
@@ -0,0 +1,22 @@
+# Use Cases
+
+## Matrix Data Blueprints
+
+| WHO   | OWID  | ECDC  | Vaccination | RKI   | Intensivregister | All     | Label    | Use Case                                         |
+|-------|-------|-------|-------------|-------|------------------|---------|----------|------------------------------------------------|
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | Navigation and Pages for Info, Tasks and Tests |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | Download Data File |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | import |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | full update Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | full update Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | update Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | update Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | Navigation and Pages for Imported Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | Navigation and Pages for Dimension Tables |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | Navigation and Pages for Fact Table |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | Update UML Diagrams for Domain Model   | 
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | Update UML Diagrams for Use Cases  |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | add Selenium Tests for all Frontend Urls and Pages without any Access to Database |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | add Selenium Tests for all Frontend Urls and Pages with Read Access to Database |
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | write Tast-Plan for manual Testing | 
+| Issue | Issue | Issue | Issue       | Issue | Issue            | Issue   | Use Case | write Checklist for manual Testing |
diff --git a/docs/Blueprints.md b/docs/Blueprints.md
new file mode 100644
index 0000000000000000000000000000000000000000..202a8186628924a68725300fe1a3d3e4b5839697
--- /dev/null
+++ b/docs/Blueprints.md
@@ -0,0 +1,16 @@
+# Blueprints
+
+## App Blueprints
+### app_admin
+### app_all
+Fuer alle Data Blueprints. Gemeinsamkeiten aller Data Blueprints.
+### app_application
+### app_user
+
+## Data Blueprints
+### who
+### owid
+### ecdc
+### rki_vaccination
+### rki_cases
+### intensivregister
\ No newline at end of file
diff --git a/docs/uml_blueprints/admin/admin_domain_model.png b/docs/blueprints/app_admin/uml/domain_model/admin_domain_model.png
similarity index 100%
rename from docs/uml_blueprints/admin/admin_domain_model.png
rename to docs/blueprints/app_admin/uml/domain_model/admin_domain_model.png
diff --git a/docs/uml_blueprints/admin/admin_domain_model.txt b/docs/blueprints/app_admin/uml/domain_model/admin_domain_model.txt
similarity index 100%
rename from docs/uml_blueprints/admin/admin_domain_model.txt
rename to docs/blueprints/app_admin/uml/domain_model/admin_domain_model.txt
diff --git a/docs/uml_blueprints/admin/admin_use_cases.png b/docs/blueprints/app_admin/uml/use_cases/admin_use_cases.png
similarity index 100%
rename from docs/uml_blueprints/admin/admin_use_cases.png
rename to docs/blueprints/app_admin/uml/use_cases/admin_use_cases.png
diff --git a/docs/uml_blueprints/admin/admin_use_cases.txt b/docs/blueprints/app_admin/uml/use_cases/admin_use_cases.txt
similarity index 100%
rename from docs/uml_blueprints/admin/admin_use_cases.txt
rename to docs/blueprints/app_admin/uml/use_cases/admin_use_cases.txt
diff --git a/docs/uml_blueprints/application/application_domain_model.png b/docs/blueprints/app_all/uml/domain_model/application_domain_model.png
similarity index 100%
rename from docs/uml_blueprints/application/application_domain_model.png
rename to docs/blueprints/app_all/uml/domain_model/application_domain_model.png
diff --git a/docs/uml_blueprints/application/application_domain_model.txt b/docs/blueprints/app_all/uml/domain_model/application_domain_model.txt
similarity index 100%
rename from docs/uml_blueprints/application/application_domain_model.txt
rename to docs/blueprints/app_all/uml/domain_model/application_domain_model.txt
diff --git a/docs/uml_blueprints/application/application_use_cases.png b/docs/blueprints/app_all/uml/use_cases/application_use_cases.png
similarity index 100%
rename from docs/uml_blueprints/application/application_use_cases.png
rename to docs/blueprints/app_all/uml/use_cases/application_use_cases.png
diff --git a/docs/uml_blueprints/application/application_use_cases.txt b/docs/blueprints/app_all/uml/use_cases/application_use_cases.txt
similarity index 100%
rename from docs/uml_blueprints/application/application_use_cases.txt
rename to docs/blueprints/app_all/uml/use_cases/application_use_cases.txt
diff --git a/docs/blueprints/app_application/uml/domain_model/application_domain_model.png b/docs/blueprints/app_application/uml/domain_model/application_domain_model.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fbd38afa4d0392717b40d36d278ef89098b1e8b
Binary files /dev/null and b/docs/blueprints/app_application/uml/domain_model/application_domain_model.png differ
diff --git a/docs/blueprints/app_application/uml/domain_model/application_domain_model.txt b/docs/blueprints/app_application/uml/domain_model/application_domain_model.txt
new file mode 100644
index 0000000000000000000000000000000000000000..99d3544a4c1b381096ee809c773ba0be93197df6
--- /dev/null
+++ b/docs/blueprints/app_application/uml/domain_model/application_domain_model.txt
@@ -0,0 +1,162 @@
+@startuml
+entity ApplicationDateReported {
+    id: Integer
+	date_reported:  String
+    year_week:  String
+    datum: Date
+    year: Integer
+    month: Integer
+    day_of_month: Integer
+    day_of_week: Integer
+    week_of_year: Integer
+	get_name_for_weekday()
+	{classifier} get_names_for_weekday()
+	{classifier} get_datum_parts(my_date_rep: String)
+	{classifier} get_datum(my_year: Integer, my_month: Integer, my_day: Integer)
+	{classifier} get_datum_as_str(my_year: Integer, my_month: Integer, my_day: Integer)
+	{classifier} my_year_week(my_iso_year: Integer, week_number: Integer)
+	{classifier} create_new_object_factory(my_date_rep: String)
+}
+entity ApplicationRegion {
+    id: Integer
+    continent:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+entity RkiDateReported {
+    id: Integer
+	date_reported: String
+    year_week: String
+    datum: Date
+    year: Integer
+    month: Integer
+    day_of_month: Integer
+    day_of_week: Integer
+    week_of_year: Integer
+	get_name_for_weekday()
+	{classifier} get_names_for_weekday()
+	{classifier} get_datum_parts(my_date_rep: String)
+	{classifier} get_datum(my_year: Integer, my_month: Integer, my_day: Integer)
+	{classifier} get_datum_as_str(my_year: Integer, my_month: Integer, my_day: Integer)
+	{classifier} my_year_week(my_iso_year: Integer, week_number: Integer)
+	{classifier} create_new_object_factory(my_date_rep: String)
+}
+class ApplicationPage << (T,#FF7700) Transient >> {
+	title: String
+	subtitle: String
+	subtitle_info: String
+}
+class ApplicationServiceConfig << (T,#FF7700) Transient >> {
+	limit_nr: Integer
+    data_path: String
+    slug: String
+    category: String
+    sub_category: String
+    tablename: String
+    cvsfile_name: String
+    url_src: String
+    cvsfile_path: String
+    msg_job: String
+    msg_ok: String
+    msg_error: String
+	create_config_for_who()
+	create_config_for_rki_vaccination()
+	create_config_for_owid()
+	create_config_for_ecdc()
+	create_config_for_rki_bundeslaender()
+	create_config_for_rki_landkreise()
+}
+class ApplicationServiceDownload << (S,red) Service >> {
+	-log_error()
+	-log_success()
+	-prepare_download()
+	-download_with_wget()
+	-download_with_subprocess_and_os_native_wget()
+	download_file()
+}
+class database << (S,#FF7700) Singleton >> {
+	{static} int port
+	{static} bool run_run_with_debug
+	{static} int ITEMS_PER_PAGE
+	app: Flask
+	db: SQLAlchemy
+	admin: Admin
+	app_cors: CORS
+	app_bootstrap: Bootstrap
+	create_app()
+	create_db(my_app)
+	create_db_test(my_app)
+	create_celery(my_app)
+	create_admin(my_app)
+}
+class application_workers << (B,orchid) Boundary >> {
+	run_mq(my_app, my_celery)
+	run_app(my_app)
+}
+class application_views << (B,orchid) Boundary >> {
+	url_home()
+	url_root()
+}
+class application_services << (P,yellow) Proxy >> {
+
+}
+class ApplicationService << (S,red) Service >> {
+
+}
+class AdminService << (S,red) Service >> {
+
+}
+class WhoService << (S,red) Service >> {
+
+}
+class EcdcService << (S,red) Service >> {
+
+}
+class RkiVaccinationService << (S,red) Service >> {
+
+}
+class RkiBundeslaenderService << (S,red) Service >> {
+
+}
+class RkiLandkreiseService << (S,red) Service >> {
+
+}
+class OwidService << (S,red) Service >> {
+
+}
+ApplicationDateReported <|-- RkiDateReported
+ApplicationServiceDownload "*" --> "1"  ApplicationServiceConfig: cfg
+application_workers "1" --> "1" application_services: application_services
+application_views "1" --> "1" application_services: application_services
+application_views "*" --> "1" ApplicationPage: page_info
+application_services "*" --> "1" ApplicationService: application_service
+application_services "*" --> "1" AdminService: admin_service
+application_services "*" --> "1" WhoService: who_service
+application_services "*" --> "1" EcdcService: ecdc_service
+application_services "*" --> "1" RkiVaccinationService: rki_vaccination_service
+application_services "*" --> "1" RkiBundeslaenderService: rki_service_bundeslaender
+application_services "*" --> "1" RkiLandkreiseService: rki_service_landkreise
+application_services "*" --> "1" OwidService: owid_service
+ApplicationService "*" --> "1" database
+ApplicationServiceDownload "*" --> "1" database
+AdminService "*" --> "1" database
+WhoService "*" --> "1" database
+EcdcService "*" --> "1" database
+RkiBundeslaenderService "*" --> "1" database
+RkiLandkreiseService "*" --> "1" database
+RkiVaccinationService "*" --> "1" database
+OwidService "*" --> "1" database
+ApplicationService : SQLAlchemy database
+ApplicationServiceDownload : SQLAlchemy database
+AdminService : SQLAlchemy database
+WhoService : SQLAlchemy database
+EcdcService : SQLAlchemy database
+RkiBundeslaenderService : SQLAlchemy database
+RkiLandkreiseService : SQLAlchemy database
+RkiVaccinationService : SQLAlchemy database
+OwidService : SQLAlchemy database
+@enduml
diff --git a/docs/blueprints/app_application/uml/use_cases/application_use_cases.png b/docs/blueprints/app_application/uml/use_cases/application_use_cases.png
new file mode 100644
index 0000000000000000000000000000000000000000..b58eaaebcd65ab5fbb52c03918d11a11b1604f80
Binary files /dev/null and b/docs/blueprints/app_application/uml/use_cases/application_use_cases.png differ
diff --git a/docs/blueprints/app_application/uml/use_cases/application_use_cases.txt b/docs/blueprints/app_application/uml/use_cases/application_use_cases.txt
new file mode 100644
index 0000000000000000000000000000000000000000..787d4b90ad657cc70bd71edd8d9240739ca9752e
--- /dev/null
+++ b/docs/blueprints/app_application/uml/use_cases/application_use_cases.txt
@@ -0,0 +1,15 @@
+@startuml
+left to right direction
+left to right direction
+actor Visitor as vu
+package user {
+	actor SysAdmin as su
+	actor Admin as au
+}
+package application_views_frontend {
+  usecase url_home as UC1
+  usecase url_root as UC2
+}
+vu --> UC1
+vu --> UC2
+@enduml
\ No newline at end of file
diff --git a/docs/uml_blueprints/user/user_domain_model.png b/docs/blueprints/app_user/uml/domain_model/user_domain_model.png
similarity index 100%
rename from docs/uml_blueprints/user/user_domain_model.png
rename to docs/blueprints/app_user/uml/domain_model/user_domain_model.png
diff --git a/docs/uml_blueprints/user/user_domain_model.txt b/docs/blueprints/app_user/uml/domain_model/user_domain_model.txt
similarity index 100%
rename from docs/uml_blueprints/user/user_domain_model.txt
rename to docs/blueprints/app_user/uml/domain_model/user_domain_model.txt
diff --git a/docs/uml_blueprints/user/user_use_cases.png b/docs/blueprints/app_user/uml/use_cases/user_use_cases.png
similarity index 100%
rename from docs/uml_blueprints/user/user_use_cases.png
rename to docs/blueprints/app_user/uml/use_cases/user_use_cases.png
diff --git a/docs/uml_blueprints/user/user_use_cases.txt b/docs/blueprints/app_user/uml/use_cases/user_use_cases.txt
similarity index 100%
rename from docs/uml_blueprints/user/user_use_cases.txt
rename to docs/blueprints/app_user/uml/use_cases/user_use_cases.txt
diff --git a/docs/uml_blueprints/ecdc/ecdc_domain_model.png b/docs/blueprints/ecdc/uml/domain_model/ecdc_domain_model.png
similarity index 100%
rename from docs/uml_blueprints/ecdc/ecdc_domain_model.png
rename to docs/blueprints/ecdc/uml/domain_model/ecdc_domain_model.png
diff --git a/docs/uml_blueprints/ecdc/ecdc_domain_model.txt b/docs/blueprints/ecdc/uml/domain_model/ecdc_domain_model.txt
similarity index 100%
rename from docs/uml_blueprints/ecdc/ecdc_domain_model.txt
rename to docs/blueprints/ecdc/uml/domain_model/ecdc_domain_model.txt
diff --git a/docs/uml_blueprints/ecdc/ecdc_use_cases.png b/docs/blueprints/ecdc/uml/use_cases/ecdc_use_cases.png
similarity index 100%
rename from docs/uml_blueprints/ecdc/ecdc_use_cases.png
rename to docs/blueprints/ecdc/uml/use_cases/ecdc_use_cases.png
diff --git a/docs/uml_blueprints/ecdc/ecdc_use_cases.txt b/docs/blueprints/ecdc/uml/use_cases/ecdc_use_cases.txt
similarity index 100%
rename from docs/uml_blueprints/ecdc/ecdc_use_cases.txt
rename to docs/blueprints/ecdc/uml/use_cases/ecdc_use_cases.txt
diff --git a/docs/blueprints/intensivregister/uml/domain_model/owid_domain_model.png b/docs/blueprints/intensivregister/uml/domain_model/owid_domain_model.png
new file mode 100644
index 0000000000000000000000000000000000000000..11b3308ec299995c6f2fb30e1e09934204f2c449
Binary files /dev/null and b/docs/blueprints/intensivregister/uml/domain_model/owid_domain_model.png differ
diff --git a/docs/uml_blueprints/owid/owid_domain_model.txt b/docs/blueprints/intensivregister/uml/domain_model/owid_domain_model.txt
similarity index 92%
rename from docs/uml_blueprints/owid/owid_domain_model.txt
rename to docs/blueprints/intensivregister/uml/domain_model/owid_domain_model.txt
index c1ddb65afeccdde2ccfdeb6fb7b4699277d6fb56..8836cb52b77331ab2d07d78a6e10aeafbd2dfde0 100644
--- a/docs/uml_blueprints/owid/owid_domain_model.txt
+++ b/docs/blueprints/intensivregister/uml/domain_model/owid_domain_model.txt
@@ -178,16 +178,28 @@ entity OwidData {
 class OwidServiceImport << (S,red) Service >> {
 	import_file()
 }
+class OwidServiceUpdateBase << (S,red) Service >> {
+}
+class OwidServiceUpdateFull << (S,red) Service >> {
+	-full_update_date_reported()
+	-full_update_continent()
+	-full_update_country()
+	-full_update_fact_table()
+	-full_update_dimension_tables()
+	full_update_dimension_tables()
+	full_update_fact_table()
+	full_update_star_schema()
+}
 class OwidServiceUpdate << (S,red) Service >> {
-	update_dimension_tables_only()
-	update_fact_table_incremental_only()
-	update_fact_table_initial_only()
-	update_star_schema_incremental()
-	update_star_schema_initial()
-	-update_dimension_tables()
-	-update_fact_table_initial()
-	-update_fact_table_incremental()
 	-update_date_reported()
+	-full_update_continent()
+	-full_update_country()
+	-update_fact_table()
+    -update_dimension_tables()
+	update_dimension_tables()
+	update_fact_table()
+	update_star_schema()
+	-get_new_dates_reported_from_import()
 }
 class OwidService << (S,red) Service >> {
     pretask_database_drop_create()
@@ -292,9 +304,13 @@ class owid_celery_tasks << (B,orchid) Boundary >> {
     task_owid_update_star_schema_initial()
 }
 OwidServiceImport : SQLAlchemy database
+OwidServiceUpdateBase : SQLAlchemy database
+OwidServiceUpdateFull : SQLAlchemy database
 OwidServiceUpdate : SQLAlchemy database
 OwidService : SQLAlchemy database
 ApplicationServiceDownload : SQLAlchemy database
+OwidServiceUpdateFull <|-- OwidServiceUpdateBase
+OwidServiceUpdate <|-- OwidServiceUpdateBase
 ApplicationDateReported <|-- OwidDateReported
 ApplicationRegion <|-- OwidContinent
 OwidCountry "1" *--> "*" OwidContinent : region
@@ -306,6 +322,7 @@ OwidServiceUpdate "*" --> "1"  ApplicationServiceConfig : cfg
 ApplicationServiceDownload "*" --> "1"  ApplicationServiceConfig : cfg
 OwidService "1" *--> "1" OwidServiceImport : owid_service_import
 OwidService "1" *--> "1" OwidServiceUpdate : owid_service_update
+OwidService "1" *--> "1" OwidServiceUpdateFull : owid_service_update
 OwidService "1" *--> "1" ApplicationServiceDownload : service_download
 owid_views_frontend "1" --> "1" OwidService : owid_service
 owid_views_for_tasks "1" --> "1" OwidService : owid_service
diff --git a/docs/uml_blueprints/owid/owid_use_cases.png b/docs/blueprints/intensivregister/uml/use_cases/owid_use_cases.png
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases.png
rename to docs/blueprints/intensivregister/uml/use_cases/owid_use_cases.png
diff --git a/docs/uml_blueprints/owid/owid_use_cases.txt b/docs/blueprints/intensivregister/uml/use_cases/owid_use_cases.txt
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases.txt
rename to docs/blueprints/intensivregister/uml/use_cases/owid_use_cases.txt
diff --git a/docs/blueprints/owid/uml/domain_model/owid_domain_model.png b/docs/blueprints/owid/uml/domain_model/owid_domain_model.png
new file mode 100644
index 0000000000000000000000000000000000000000..11b3308ec299995c6f2fb30e1e09934204f2c449
Binary files /dev/null and b/docs/blueprints/owid/uml/domain_model/owid_domain_model.png differ
diff --git a/docs/blueprints/owid/uml/domain_model/owid_domain_model.txt b/docs/blueprints/owid/uml/domain_model/owid_domain_model.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8836cb52b77331ab2d07d78a6e10aeafbd2dfde0
--- /dev/null
+++ b/docs/blueprints/owid/uml/domain_model/owid_domain_model.txt
@@ -0,0 +1,330 @@
+@startuml
+entity OwidImport {
+    id: Integer
+	iso_code:  String
+    continent:  String
+    location:  String
+    date:  String
+    total_cases:  String
+    new_cases:  String
+    new_cases_smoothed:  String
+    total_deaths:  String
+    new_deaths:  String
+    new_deaths_smoothed:  String
+    total_cases_per_million:  String
+    new_cases_per_million:  String
+    new_cases_smoothed_per_million:  String
+    total_deaths_per_million:  String
+    new_deaths_per_million:  String
+    new_deaths_smoothed_per_million:  String
+    reproduction_rate:  String
+    icu_patients:  String
+    icu_patients_per_million:  String
+    hosp_patients:  String
+    hosp_patients_per_million:  String
+    weekly_icu_admissions:  String
+    weekly_icu_admissions_per_million:  String
+    weekly_hosp_admissions:  String
+    weekly_hosp_admissions_per_million:  String
+    new_tests:  String
+    total_tests:  String
+    total_tests_per_thousand:  String
+    new_tests_per_thousand:  String
+    new_tests_smoothed:  String
+    new_tests_smoothed_per_thousand:  String
+    positive_rate:  String
+    tests_per_case:  String
+    tests_units:  String
+    total_vaccinations:  String
+    people_vaccinated:  String
+    people_fully_vaccinated:  String
+    new_vaccinations:  String
+    new_vaccinations_smoothed:  String
+    total_vaccinations_per_hundred:  String
+    people_vaccinated_per_hundred:  String
+    people_fully_vaccinated_per_hundred:  String
+    new_vaccinations_smoothed_per_million:  String
+    stringency_index:  String
+    population:  String
+    population_density:  String
+    median_age:  String
+    aged_65_older:  String
+    aged_70_older:  String
+    gdp_per_capita:  String
+    extreme_poverty:  String
+    cardiovasc_death_rate:  String
+    diabetes_prevalence:  String
+    female_smokers:  String
+    male_smokers:  String
+    handwashing_facilities:  String
+    hospital_beds_per_thousand:  String
+    life_expectancy:  String
+    human_development_index:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+    {classifier} get_dates()
+    {classifier} get_for_one_day(day: String)
+    {classifier} get_dates_reported_as_array()
+    {classifier} get_new_dates_reported_as_array()
+    {classifier} get_continents(page: Integer)
+    {classifier} get_all_continents()
+}
+entity OwidDateReported {
+    id: Integer
+	date_reported:  String
+    year_week:  String
+    datum: Date
+    year: Integer
+    month: Integer
+    day_of_month: Integer
+    day_of_week: Integer
+    week_of_year: Integer
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+entity OwidContinent {
+    id: Integer
+    continent:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+entity OwidCountry {
+    id: Integer
+	iso_code:  String
+    location:  String
+    stringency_index:  String
+    population:  String
+    population_density:  String
+    median_age:  String
+    aged_65_older:  String
+    aged_70_older:  String
+    gdp_per_capita:  String
+    extreme_poverty:  String
+    cardiovasc_death_rate:  String
+    diabetes_prevalence:  String
+    female_smokers:  String
+    male_smokers:  String
+    handwashing_facilities:  String
+    hospital_beds_per_thousand:  String
+    life_expectancy:  String
+    human_development_index:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+entity OwidData {
+    id: Integer
+    total_cases:  String
+    new_cases:  String
+    new_cases_smoothed:  String
+    total_deaths:  String
+    new_deaths:  String
+    new_deaths_smoothed:  String
+    total_cases_per_million:  String
+    new_cases_per_million:  String
+    new_cases_smoothed_per_million:  String
+    total_deaths_per_million:  String
+    new_deaths_per_million:  String
+    new_deaths_smoothed_per_million:  String
+    reproduction_rate:  String
+    icu_patients:  String
+    icu_patients_per_million:  String
+    hosp_patients:  String
+    hosp_patients_per_million:  String
+    weekly_icu_admissions:  String
+    weekly_icu_admissions_per_million:  String
+    weekly_hosp_admissions:  String
+    weekly_hosp_admissions_per_million:  String
+    new_tests:  String
+    total_tests:  String
+    total_tests_per_thousand:  String
+    new_tests_per_thousand:  String
+    new_tests_smoothed:  String
+    new_tests_smoothed_per_thousand:  String
+    positive_rate:  String
+    tests_per_case:  String
+    tests_units:  String
+    total_vaccinations:  String
+    people_vaccinated:  String
+    people_fully_vaccinated:  String
+    new_vaccinations:  String
+    new_vaccinations_smoothed:  String
+    total_vaccinations_per_hundred:  String
+    people_vaccinated_per_hundred:  String
+    people_fully_vaccinated_per_hundred:  String
+    new_vaccinations_smoothed_per_million:  String
+    stringency_index:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+class OwidServiceImport << (S,red) Service >> {
+	import_file()
+}
+class OwidServiceUpdateBase << (S,red) Service >> {
+}
+class OwidServiceUpdateFull << (S,red) Service >> {
+	-full_update_date_reported()
+	-full_update_continent()
+	-full_update_country()
+	-full_update_fact_table()
+	-full_update_dimension_tables()
+	full_update_dimension_tables()
+	full_update_fact_table()
+	full_update_star_schema()
+}
+class OwidServiceUpdate << (S,red) Service >> {
+	-update_date_reported()
+	-full_update_continent()
+	-full_update_country()
+	-update_fact_table()
+    -update_dimension_tables()
+	update_dimension_tables()
+	update_fact_table()
+	update_star_schema()
+	-get_new_dates_reported_from_import()
+}
+class OwidService << (S,red) Service >> {
+    pretask_database_drop_create()
+    task_database_drop_create()
+    run_download_only()
+    run_import_only()
+    run_update_dimension_tables_only()
+    run_update_fact_table_incremental_only()
+    run_update_fact_table_initial_only()
+    run_update_star_schema_incremental()
+    run_update_star_schema_initial()
+    download_all_files()
+    task_import_all_files()
+    update_dimension_tables_only()
+    update_fact_table_initial_only()
+    update_fact_table_incremental_only()
+}
+entity ApplicationDateReported {
+    id: Integer
+	date_reported:  String
+    year_week:  String
+    datum: Date
+    year: Integer
+    month: Integer
+    day_of_month: Integer
+    day_of_week: Integer
+    week_of_year: Integer
+	get_name_for_weekday()
+	{classifier} get_names_for_weekday()
+	{classifier} get_datum_parts(my_date_rep: String)
+	{classifier} get_datum(my_year: Integer, my_month: Integer, my_day: Integer)
+	{classifier} get_datum_as_str(my_year: Integer, my_month: Integer, my_day: Integer)
+	{classifier} my_year_week(my_iso_year: Integer, week_number: Integer)
+	{classifier} create_new_object_factory(my_date_rep: String)
+}
+entity ApplicationRegion {
+    id: Integer
+    continent:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+class ApplicationServiceDownload << (S,red) Service >> {
+	-log_error()
+	-log_success()
+	-prepare_download()
+	-download_with_wget()
+	-download_with_subprocess_and_os_native_wget()
+	download_file()
+}
+class ApplicationServiceConfig << (T,#FF7700) Transient >> {
+	limit_nr: Integer
+    data_path: String
+    slug: String
+    category: String
+    sub_category: String
+    tablename: String
+    cvsfile_name: String
+    url_src: String
+    cvsfile_path: String
+    msg_job: String
+    msg_ok: String
+    msg_error: String
+	create_config_for_who()
+	create_config_for_rki_vaccination()
+	create_config_for_owid()
+	create_config_for_ecdc()
+	create_config_for_rki_bundeslaender()
+	create_config_for_rki_landkreise()
+}
+class owid_views_frontend << (B,orchid) Boundary >> {
+    url_owid_info()
+    url_owid_tasks()
+    url_owid_test()
+    url_owid_imported()
+    url_owid_date_reported_all()
+    url_owid_date_reported()
+    url_owid_date_reported_cases_new()
+    url_owid_date_reported_cases_cumulative()
+    url_owid_date_reported_deaths_new()
+    url_owid_date_reported_deaths_cumulative()
+}
+class owid_views_for_tasks << (B,orchid) Boundary >> {
+    url_task_owid_download_only()
+    url_task_owid_import_only()
+    url_task_owid_update_dimension_tables_only()
+    url_task_owid_update_fact_table_incremental_only()
+    url_task_owid_update_fact_table_initial_only()
+    url_task_owid_update_star_schema_initial()
+    url_task_owid_update_star_schema_incremental()
+}
+class owid_celery_tasks << (B,orchid) Boundary >> {
+    task_owid_download_only()
+    task_owid_import_only()
+    task_owid_update_dimension_tables_only()
+    task_owid_update_fact_table_incremental_only()
+    task_owid_update_fact_table_initial_only()
+    task_owid_update_star_schema_incremental()
+    task_owid_update_star_schema_initial()
+}
+OwidServiceImport : SQLAlchemy database
+OwidServiceUpdateBase : SQLAlchemy database
+OwidServiceUpdateFull : SQLAlchemy database
+OwidServiceUpdate : SQLAlchemy database
+OwidService : SQLAlchemy database
+ApplicationServiceDownload : SQLAlchemy database
+OwidServiceUpdateFull <|-- OwidServiceUpdateBase
+OwidServiceUpdate <|-- OwidServiceUpdateBase
+ApplicationDateReported <|-- OwidDateReported
+ApplicationRegion <|-- OwidContinent
+OwidCountry "1" *--> "*" OwidContinent : region
+OwidData "1" *--> "*" OwidCountry : country
+OwidData "1" *--> "*" OwidDateReported : date_reported
+OwidService "*" *--> "1"  ApplicationServiceConfig : cfg
+OwidServiceImport "*" --> "1"  ApplicationServiceConfig : cfg
+OwidServiceUpdate "*" --> "1"  ApplicationServiceConfig : cfg
+ApplicationServiceDownload "*" --> "1"  ApplicationServiceConfig : cfg
+OwidService "1" *--> "1" OwidServiceImport : owid_service_import
+OwidService "1" *--> "1" OwidServiceUpdate : owid_service_update
+OwidService "1" *--> "1" OwidServiceUpdateFull : owid_service_update
+OwidService "1" *--> "1" ApplicationServiceDownload : service_download
+owid_views_frontend "1" --> "1" OwidService : owid_service
+owid_views_for_tasks "1" --> "1" OwidService : owid_service
+owid_celery_tasks "1" --> "1" OwidService : owid_service
+@enduml
diff --git a/docs/blueprints/owid/uml/use_cases/owid_use_cases.png b/docs/blueprints/owid/uml/use_cases/owid_use_cases.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a30ecc6f03aaf56651009513022036f6425c791
Binary files /dev/null and b/docs/blueprints/owid/uml/use_cases/owid_use_cases.png differ
diff --git a/docs/blueprints/owid/uml/use_cases/owid_use_cases.txt b/docs/blueprints/owid/uml/use_cases/owid_use_cases.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bbe591d1b8bcce045063eb5c5eba3da6652f88f5
--- /dev/null
+++ b/docs/blueprints/owid/uml/use_cases/owid_use_cases.txt
@@ -0,0 +1,58 @@
+@startuml
+left to right direction
+actor Visitor as vu
+package user {
+	actor SysAdmin as su
+	actor Admin as au
+}
+package owid_views_frontend {
+	usecase owid_info as UC1
+	usecase owid_imported as UC2
+	usecase owid_date_reported as UC3
+	usecase owid_date_continent as UC4
+	usecase owid_date_country as UC5
+	usecase owid_date_country_germany as UC6
+	usecase owid_date_reports as UC7
+}
+package owid_views_for_tasks {
+	usecase owid_tasks as UC57
+	usecase task_owid_download_only as UC50
+	usecase task_owid_import_only as UC51
+	usecase task_owid_update_dimension_tables_only as UC52
+	usecase task_owid_update_fact_table_initial_only as UC53
+	usecase task_owid_update_fact_table_incremental_only as UC54
+	usecase task_owid_update_star_schema_initial as UC55
+	usecase task_owid_update_star_schema_incremental as UC56
+}
+package owid_celery_tasks {
+	usecase owid_task_download_only as UC100
+	usecase owid_task_import_only as UC101
+	usecase owid_task_update_dimensiontables_only as UC102
+	usecase owid_task_update_facttable_incremental_only as UC103
+	usecase owid_task_update_facttable_initial_only as UC104
+	usecase owid_task_update_starschema_initial as UC105
+	usecase owid_task_update_starschema_incremental as UC106
+}
+vu --> UC1
+vu --> UC2
+vu --> UC3
+vu --> UC4
+vu --> UC5
+vu --> UC6
+vu --> UC7
+au --> UC50
+au --> UC51
+au --> UC52
+au --> UC53
+au --> UC54
+au --> UC55
+au --> UC56
+au --> UC57
+UC50 --> UC100
+UC51 --> UC101
+UC52 --> UC102
+UC53 --> UC103
+UC54 --> UC104
+UC55 --> UC105
+UC56 --> UC106
+@enduml
\ No newline at end of file
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_1.png b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_1.png
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_1.png
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_1.png
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_1.txt b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_1.txt
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_1.txt
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_1.txt
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_2.png b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_2.png
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_2.png
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_2.png
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_2.txt b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_2.txt
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_2.txt
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_2.txt
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_3.png b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_3.png
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_3.png
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_3.png
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_3.txt b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_3.txt
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_3.txt
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_3.txt
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_4.png b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_4.png
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_4.png
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_4.png
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_4.txt b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_4.txt
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_4.txt
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_4.txt
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_5.png b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_5.png
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_5.png
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_5.png
diff --git a/docs/uml_blueprints/owid/owid_use_cases_visual_data_5.txt b/docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_5.txt
similarity index 100%
rename from docs/uml_blueprints/owid/owid_use_cases_visual_data_5.txt
rename to docs/blueprints/owid/uml/use_cases__visual_data/owid_use_cases_visual_data_5.txt
diff --git a/docs/blueprints/rki_cases/uml/domain_model/owid_domain_model.png b/docs/blueprints/rki_cases/uml/domain_model/owid_domain_model.png
new file mode 100644
index 0000000000000000000000000000000000000000..11b3308ec299995c6f2fb30e1e09934204f2c449
Binary files /dev/null and b/docs/blueprints/rki_cases/uml/domain_model/owid_domain_model.png differ
diff --git a/docs/blueprints/rki_cases/uml/domain_model/owid_domain_model.txt b/docs/blueprints/rki_cases/uml/domain_model/owid_domain_model.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8836cb52b77331ab2d07d78a6e10aeafbd2dfde0
--- /dev/null
+++ b/docs/blueprints/rki_cases/uml/domain_model/owid_domain_model.txt
@@ -0,0 +1,330 @@
+@startuml
+entity OwidImport {
+    id: Integer
+	iso_code:  String
+    continent:  String
+    location:  String
+    date:  String
+    total_cases:  String
+    new_cases:  String
+    new_cases_smoothed:  String
+    total_deaths:  String
+    new_deaths:  String
+    new_deaths_smoothed:  String
+    total_cases_per_million:  String
+    new_cases_per_million:  String
+    new_cases_smoothed_per_million:  String
+    total_deaths_per_million:  String
+    new_deaths_per_million:  String
+    new_deaths_smoothed_per_million:  String
+    reproduction_rate:  String
+    icu_patients:  String
+    icu_patients_per_million:  String
+    hosp_patients:  String
+    hosp_patients_per_million:  String
+    weekly_icu_admissions:  String
+    weekly_icu_admissions_per_million:  String
+    weekly_hosp_admissions:  String
+    weekly_hosp_admissions_per_million:  String
+    new_tests:  String
+    total_tests:  String
+    total_tests_per_thousand:  String
+    new_tests_per_thousand:  String
+    new_tests_smoothed:  String
+    new_tests_smoothed_per_thousand:  String
+    positive_rate:  String
+    tests_per_case:  String
+    tests_units:  String
+    total_vaccinations:  String
+    people_vaccinated:  String
+    people_fully_vaccinated:  String
+    new_vaccinations:  String
+    new_vaccinations_smoothed:  String
+    total_vaccinations_per_hundred:  String
+    people_vaccinated_per_hundred:  String
+    people_fully_vaccinated_per_hundred:  String
+    new_vaccinations_smoothed_per_million:  String
+    stringency_index:  String
+    population:  String
+    population_density:  String
+    median_age:  String
+    aged_65_older:  String
+    aged_70_older:  String
+    gdp_per_capita:  String
+    extreme_poverty:  String
+    cardiovasc_death_rate:  String
+    diabetes_prevalence:  String
+    female_smokers:  String
+    male_smokers:  String
+    handwashing_facilities:  String
+    hospital_beds_per_thousand:  String
+    life_expectancy:  String
+    human_development_index:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+    {classifier} get_dates()
+    {classifier} get_for_one_day(day: String)
+    {classifier} get_dates_reported_as_array()
+    {classifier} get_new_dates_reported_as_array()
+    {classifier} get_continents(page: Integer)
+    {classifier} get_all_continents()
+}
+entity OwidDateReported {
+    id: Integer
+	date_reported:  String
+    year_week:  String
+    datum: Date
+    year: Integer
+    month: Integer
+    day_of_month: Integer
+    day_of_week: Integer
+    week_of_year: Integer
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+entity OwidContinent {
+    id: Integer
+    continent:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+entity OwidCountry {
+    id: Integer
+	iso_code:  String
+    location:  String
+    stringency_index:  String
+    population:  String
+    population_density:  String
+    median_age:  String
+    aged_65_older:  String
+    aged_70_older:  String
+    gdp_per_capita:  String
+    extreme_poverty:  String
+    cardiovasc_death_rate:  String
+    diabetes_prevalence:  String
+    female_smokers:  String
+    male_smokers:  String
+    handwashing_facilities:  String
+    hospital_beds_per_thousand:  String
+    life_expectancy:  String
+    human_development_index:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+entity OwidData {
+    id: Integer
+    total_cases:  String
+    new_cases:  String
+    new_cases_smoothed:  String
+    total_deaths:  String
+    new_deaths:  String
+    new_deaths_smoothed:  String
+    total_cases_per_million:  String
+    new_cases_per_million:  String
+    new_cases_smoothed_per_million:  String
+    total_deaths_per_million:  String
+    new_deaths_per_million:  String
+    new_deaths_smoothed_per_million:  String
+    reproduction_rate:  String
+    icu_patients:  String
+    icu_patients_per_million:  String
+    hosp_patients:  String
+    hosp_patients_per_million:  String
+    weekly_icu_admissions:  String
+    weekly_icu_admissions_per_million:  String
+    weekly_hosp_admissions:  String
+    weekly_hosp_admissions_per_million:  String
+    new_tests:  String
+    total_tests:  String
+    total_tests_per_thousand:  String
+    new_tests_per_thousand:  String
+    new_tests_smoothed:  String
+    new_tests_smoothed_per_thousand:  String
+    positive_rate:  String
+    tests_per_case:  String
+    tests_units:  String
+    total_vaccinations:  String
+    people_vaccinated:  String
+    people_fully_vaccinated:  String
+    new_vaccinations:  String
+    new_vaccinations_smoothed:  String
+    total_vaccinations_per_hundred:  String
+    people_vaccinated_per_hundred:  String
+    people_fully_vaccinated_per_hundred:  String
+    new_vaccinations_smoothed_per_million:  String
+    stringency_index:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+class OwidServiceImport << (S,red) Service >> {
+	import_file()
+}
+class OwidServiceUpdateBase << (S,red) Service >> {
+}
+class OwidServiceUpdateFull << (S,red) Service >> {
+	-full_update_date_reported()
+	-full_update_continent()
+	-full_update_country()
+	-full_update_fact_table()
+	-full_update_dimension_tables()
+	full_update_dimension_tables()
+	full_update_fact_table()
+	full_update_star_schema()
+}
+class OwidServiceUpdate << (S,red) Service >> {
+	-update_date_reported()
+	-full_update_continent()
+	-full_update_country()
+	-update_fact_table()
+    -update_dimension_tables()
+	update_dimension_tables()
+	update_fact_table()
+	update_star_schema()
+	-get_new_dates_reported_from_import()
+}
+class OwidService << (S,red) Service >> {
+    pretask_database_drop_create()
+    task_database_drop_create()
+    run_download_only()
+    run_import_only()
+    run_update_dimension_tables_only()
+    run_update_fact_table_incremental_only()
+    run_update_fact_table_initial_only()
+    run_update_star_schema_incremental()
+    run_update_star_schema_initial()
+    download_all_files()
+    task_import_all_files()
+    update_dimension_tables_only()
+    update_fact_table_initial_only()
+    update_fact_table_incremental_only()
+}
+entity ApplicationDateReported {
+    id: Integer
+	date_reported:  String
+    year_week:  String
+    datum: Date
+    year: Integer
+    month: Integer
+    day_of_month: Integer
+    day_of_week: Integer
+    week_of_year: Integer
+	get_name_for_weekday()
+	{classifier} get_names_for_weekday()
+	{classifier} get_datum_parts(my_date_rep: String)
+	{classifier} get_datum(my_year: Integer, my_month: Integer, my_day: Integer)
+	{classifier} get_datum_as_str(my_year: Integer, my_month: Integer, my_day: Integer)
+	{classifier} my_year_week(my_iso_year: Integer, week_number: Integer)
+	{classifier} create_new_object_factory(my_date_rep: String)
+}
+entity ApplicationRegion {
+    id: Integer
+    continent:  String
+    {classifier} remove_all()
+    {classifier} get_all_as_page(page: Integer)
+    {classifier} get_all()
+    {classifier} get_all_as_dict()
+    {classifier} get_by_id(other_id: Integer)
+    {classifier} find_by_id(other_id: Integer)
+}
+class ApplicationServiceDownload << (S,red) Service >> {
+	-log_error()
+	-log_success()
+	-prepare_download()
+	-download_with_wget()
+	-download_with_subprocess_and_os_native_wget()
+	download_file()
+}
+class ApplicationServiceConfig << (T,#FF7700) Transient >> {
+	limit_nr: Integer
+    data_path: String
+    slug: String
+    category: String
+    sub_category: String
+    tablename: String
+    cvsfile_name: String
+    url_src: String
+    cvsfile_path: String
+    msg_job: String
+    msg_ok: String
+    msg_error: String
+	create_config_for_who()
+	create_config_for_rki_vaccination()
+	create_config_for_owid()
+	create_config_for_ecdc()
+	create_config_for_rki_bundeslaender()
+	create_config_for_rki_landkreise()
+}
+class owid_views_frontend << (B,orchid) Boundary >> {
+    url_owid_info()
+    url_owid_tasks()
+    url_owid_test()
+    url_owid_imported()
+    url_owid_date_reported_all()
+    url_owid_date_reported()
+    url_owid_date_reported_cases_new()
+    url_owid_date_reported_cases_cumulative()
+    url_owid_date_reported_deaths_new()
+    url_owid_date_reported_deaths_cumulative()
+}
+class owid_views_for_tasks << (B,orchid) Boundary >> {
+    url_task_owid_download_only()
+    url_task_owid_import_only()
+    url_task_owid_update_dimension_tables_only()
+    url_task_owid_update_fact_table_incremental_only()
+    url_task_owid_update_fact_table_initial_only()
+    url_task_owid_update_star_schema_initial()
+    url_task_owid_update_star_schema_incremental()
+}
+class owid_celery_tasks << (B,orchid) Boundary >> {
+    task_owid_download_only()
+    task_owid_import_only()
+    task_owid_update_dimension_tables_only()
+    task_owid_update_fact_table_incremental_only()
+    task_owid_update_fact_table_initial_only()
+    task_owid_update_star_schema_incremental()
+    task_owid_update_star_schema_initial()
+}
+OwidServiceImport : SQLAlchemy database
+OwidServiceUpdateBase : SQLAlchemy database
+OwidServiceUpdateFull : SQLAlchemy database
+OwidServiceUpdate : SQLAlchemy database
+OwidService : SQLAlchemy database
+ApplicationServiceDownload : SQLAlchemy database
+OwidServiceUpdateFull <|-- OwidServiceUpdateBase
+OwidServiceUpdate <|-- OwidServiceUpdateBase
+ApplicationDateReported <|-- OwidDateReported
+ApplicationRegion <|-- OwidContinent
+OwidCountry "1" *--> "*" OwidContinent : region
+OwidData "1" *--> "*" OwidCountry : country
+OwidData "1" *--> "*" OwidDateReported : date_reported
+OwidService "*" *--> "1"  ApplicationServiceConfig : cfg
+OwidServiceImport "*" --> "1"  ApplicationServiceConfig : cfg
+OwidServiceUpdate "*" --> "1"  ApplicationServiceConfig : cfg
+ApplicationServiceDownload "*" --> "1"  ApplicationServiceConfig : cfg
+OwidService "1" *--> "1" OwidServiceImport : owid_service_import
+OwidService "1" *--> "1" OwidServiceUpdate : owid_service_update
+OwidService "1" *--> "1" OwidServiceUpdateFull : owid_service_update
+OwidService "1" *--> "1" ApplicationServiceDownload : service_download
+owid_views_frontend "1" --> "1" OwidService : owid_service
+owid_views_for_tasks "1" --> "1" OwidService : owid_service
+owid_celery_tasks "1" --> "1" OwidService : owid_service
+@enduml
diff --git a/docs/blueprints/rki_cases/uml/use_cases/owid_use_cases.png b/docs/blueprints/rki_cases/uml/use_cases/owid_use_cases.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a30ecc6f03aaf56651009513022036f6425c791
Binary files /dev/null and b/docs/blueprints/rki_cases/uml/use_cases/owid_use_cases.png differ
diff --git a/docs/blueprints/rki_cases/uml/use_cases/owid_use_cases.txt b/docs/blueprints/rki_cases/uml/use_cases/owid_use_cases.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bbe591d1b8bcce045063eb5c5eba3da6652f88f5
--- /dev/null
+++ b/docs/blueprints/rki_cases/uml/use_cases/owid_use_cases.txt
@@ -0,0 +1,58 @@
+@startuml
+left to right direction
+actor Visitor as vu
+package user {
+	actor SysAdmin as su
+	actor Admin as au
+}
+package owid_views_frontend {
+	usecase owid_info as UC1
+	usecase owid_imported as UC2
+	usecase owid_date_reported as UC3
+	usecase owid_date_continent as UC4
+	usecase owid_date_country as UC5
+	usecase owid_date_country_germany as UC6
+	usecase owid_date_reports as UC7
+}
+package owid_views_for_tasks {
+	usecase owid_tasks as UC57
+	usecase task_owid_download_only as UC50
+	usecase task_owid_import_only as UC51
+	usecase task_owid_update_dimension_tables_only as UC52
+	usecase task_owid_update_fact_table_initial_only as UC53
+	usecase task_owid_update_fact_table_incremental_only as UC54
+	usecase task_owid_update_star_schema_initial as UC55
+	usecase task_owid_update_star_schema_incremental as UC56
+}
+package owid_celery_tasks {
+	usecase owid_task_download_only as UC100
+	usecase owid_task_import_only as UC101
+	usecase owid_task_update_dimensiontables_only as UC102
+	usecase owid_task_update_facttable_incremental_only as UC103
+	usecase owid_task_update_facttable_initial_only as UC104
+	usecase owid_task_update_starschema_initial as UC105
+	usecase owid_task_update_starschema_incremental as UC106
+}
+vu --> UC1
+vu --> UC2
+vu --> UC3
+vu --> UC4
+vu --> UC5
+vu --> UC6
+vu --> UC7
+au --> UC50
+au --> UC51
+au --> UC52
+au --> UC53
+au --> UC54
+au --> UC55
+au --> UC56
+au --> UC57
+UC50 --> UC100
+UC51 --> UC101
+UC52 --> UC102
+UC53 --> UC103
+UC54 --> UC104
+UC55 --> UC105
+UC56 --> UC106
+@enduml
\ No newline at end of file
diff --git a/docs/uml_blueprints/rki_vaccination/rki_vaccination_domain_model.png b/docs/blueprints/rki_vaccination/uml/domain_model/rki_vaccination_domain_model.png
similarity index 100%
rename from docs/uml_blueprints/rki_vaccination/rki_vaccination_domain_model.png
rename to docs/blueprints/rki_vaccination/uml/domain_model/rki_vaccination_domain_model.png
diff --git a/docs/uml_blueprints/rki_vaccination/rki_vaccination_domain_model.txt b/docs/blueprints/rki_vaccination/uml/domain_model/rki_vaccination_domain_model.txt
similarity index 100%
rename from docs/uml_blueprints/rki_vaccination/rki_vaccination_domain_model.txt
rename to docs/blueprints/rki_vaccination/uml/domain_model/rki_vaccination_domain_model.txt
diff --git a/docs/uml_blueprints/rki_vaccination/rki_vaccination_use_cases.png b/docs/blueprints/rki_vaccination/uml/use_cases/rki_vaccination_use_cases.png
similarity index 100%
rename from docs/uml_blueprints/rki_vaccination/rki_vaccination_use_cases.png
rename to docs/blueprints/rki_vaccination/uml/use_cases/rki_vaccination_use_cases.png
diff --git a/docs/uml_blueprints/rki_vaccination/rki_vaccination_use_cases.txt b/docs/blueprints/rki_vaccination/uml/use_cases/rki_vaccination_use_cases.txt
similarity index 100%
rename from docs/uml_blueprints/rki_vaccination/rki_vaccination_use_cases.txt
rename to docs/blueprints/rki_vaccination/uml/use_cases/rki_vaccination_use_cases.txt
diff --git a/docs/blueprints/who/uml/domain_model/who_domain_model.png b/docs/blueprints/who/uml/domain_model/who_domain_model.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9efea4eb63b0ee7d336c42fc7e5c349c30044fa
Binary files /dev/null and b/docs/blueprints/who/uml/domain_model/who_domain_model.png differ
diff --git a/docs/uml_blueprints/who/who_domain_model.txt b/docs/blueprints/who/uml/domain_model/who_domain_model.txt
similarity index 100%
rename from docs/uml_blueprints/who/who_domain_model.txt
rename to docs/blueprints/who/uml/domain_model/who_domain_model.txt
diff --git a/docs/uml_blueprints/who/who_use_cases.png b/docs/blueprints/who/uml/use_cases/who_use_cases.png
similarity index 100%
rename from docs/uml_blueprints/who/who_use_cases.png
rename to docs/blueprints/who/uml/use_cases/who_use_cases.png
diff --git a/docs/uml_blueprints/who/who_use_cases.txt b/docs/blueprints/who/uml/use_cases/who_use_cases.txt
similarity index 100%
rename from docs/uml_blueprints/who/who_use_cases.txt
rename to docs/blueprints/who/uml/use_cases/who_use_cases.txt
diff --git a/docs/uml_blueprints/owid/owid_domain_model.png b/docs/uml_blueprints/owid/owid_domain_model.png
deleted file mode 100644
index 3a7b8d9668500002a766a8b98f90a9de54239b84..0000000000000000000000000000000000000000
Binary files a/docs/uml_blueprints/owid/owid_domain_model.png and /dev/null differ
diff --git a/docs/uml_blueprints/who/who_domain_model.png b/docs/uml_blueprints/who/who_domain_model.png
deleted file mode 100644
index 8032f22597dab0c0a0775a6e3d77291dcd382340..0000000000000000000000000000000000000000
Binary files a/docs/uml_blueprints/who/who_domain_model.png and /dev/null differ
diff --git a/package-lock.json b/package-lock.json
index 01a044a0b3a1d9d78b16064278340b90e3d70c90..58ff8dc07cf9d4704b0a3daf2d91ce6644217725 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
 {
   "name": "flask-covid19",
-  "version": "0.0.32",
+  "version": "0.0.33",
   "lockfileVersion": 1
 }
diff --git a/package.json b/package.json
index e9f0cc8440bb369372fa2adb45cfb899a1e67afe..a21aa6b8f09e6d8fed667a3dfe74432da95977eb 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "flask-covid19",
-  "version": "0.0.32",
+  "version": "0.0.34",
   "description": "Covid19 Data Aggregation - also a Project to learn Python Flask, SQLAlchemy, Celery et al.",
   "main": "index.js",
   "dependencies": {},
diff --git a/setup.cfg b/setup.cfg
index 9e13b3076db9a3fe3d37449012dcc413474319dc..8ce3a4aed28d6d4fa48139f4e8cadb8d45ec4cc1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = flask-covid19
-version = 0.0.32
+version = 0.0.34
 url = https://git.noc.ruhr-uni-bochum.de/thomaswoehlke/flask-covid19.git
 author = Thomas Woehlke
 author_email = thomas.woehlke@gmail.com
diff --git a/setup.py b/setup.py
index 864da2969882e2425208467a317ddd975825e502..15cf8b730ad47cb61852afd4c35d5a4dba53e68f 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@ import subprocess
 
 from setuptools import find_packages, setup
 
-version = '0.0.32'
+version = '0.0.34'
 
 needs_pytest = {'pytest', 'test', 'ptr'}.intersection(sys.argv)
 pytest_runner = ['pytest-runner'] if needs_pytest else []
diff --git a/src/covid19/__init__.py b/src/covid19/__init__.py
index 1c97c57a57cb1c2a5448ddef7564fa8ec985a9cb..8602185819ecd70e1286bc995c8d82c1804590fa 100644
--- a/src/covid19/__init__.py
+++ b/src/covid19/__init__.py
@@ -1,12 +1,12 @@
 from database import app, run_run_with_debug, port, db
 
-import covid19.blueprints.application.application_views
-from covid19.blueprints.application.application_services import user_service
-from covid19.blueprints.application.application_service import ApplicationService
+import covid19.blueprints.app_application.application_views
+from covid19.blueprints.app_all.all_services import app_user_service
+from covid19.blueprints.app_application.application_service import ApplicationService
 
 
 def run_web():
-    application_service = ApplicationService(db, user_service)
+    application_service = ApplicationService(db, app_user_service)
     application_service.prepare_run_web()
     app.run(debug=run_run_with_debug, port=port)
 
diff --git a/src/covid19/blueprints/admin/__init__.py b/src/covid19/blueprints/app_admin/__init__.py
similarity index 100%
rename from src/covid19/blueprints/admin/__init__.py
rename to src/covid19/blueprints/app_admin/__init__.py
diff --git a/src/covid19/blueprints/admin/admin_service.py b/src/covid19/blueprints/app_admin/app_admin_service.py
similarity index 100%
rename from src/covid19/blueprints/admin/admin_service.py
rename to src/covid19/blueprints/app_admin/app_admin_service.py
diff --git a/src/covid19/blueprints/app_admin/app_admin_views.py b/src/covid19/blueprints/app_admin/app_admin_views.py
new file mode 100644
index 0000000000000000000000000000000000000000..dc1b804d81f02583adcdc9090b1b44317a4ebd71
--- /dev/null
+++ b/src/covid19/blueprints/app_admin/app_admin_views.py
@@ -0,0 +1,404 @@
+from flask import render_template, redirect, url_for, flash, Blueprint
+from celery import states
+from celery.utils.log import get_task_logger
+
+from database import app
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
+
+drop_and_create_data_again = True
+
+blueprint_app_admin = Blueprint('app_admin', __name__, template_folder='templates', url_prefix='/app/admin')
+
+
+# ---------------------------------------------------------------------------------------------------------------
+#  Url Routes Frontend
+# ---------------------------------------------------------------------------------------------------------------
+
+@blueprint_app_admin.route('/')
+def url_admin_index():
+    page_info = ApplicationPage('Admin', "Covid19 Admin")
+    return render_template(
+        'app_admin/index.html',
+        page_info=page_info)
+
+
+@blueprint_app_admin.route('/admin/tasks')
+def url_admin_tasks():
+    page_info = ApplicationPage('Admin', "Admin Tasks")
+    return render_template(
+        'app_admin/admin_tasks.html',
+        page_info=page_info)
+
+
+@blueprint_app_admin.route('/info')
+def url_admin_info():
+    page_info = ApplicationPage('Admin', "Info")
+    return render_template(
+        'app_admin/admin_info.html',
+        page_info=page_info)
+
+
+# ----------------------------------------------------------------------------------------------------------------
+#  Celery TASKS
+# ----------------------------------------------------------------------------------------------------------------
+
+
+@celery.task(bind=True)
+def task_admin_alive_message(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_alive_message [received] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_alive_message)"
+    return result
+
+
+@celery.task(bind=True)
+def task_admin_database_drop_create(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_database_drop_create [start] ")
+    logger.info("------------------------------------------------------------")
+    who_service.task_database_drop_create()
+    # divi_service.task_database_drop_create()
+    ecdc_service.task_database_drop_create()
+    owid_service.task_database_drop_create()
+    rki_vaccination_service.task_database_drop_create()
+    # rki_service_bundeslaender.task_database_drop_create()
+    # rki_service_landkreise.task_database_drop_create()
+    app_admin_service.task_database_drop_create()
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_database_drop_create [done] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_database_drop_create)"
+    return result
+
+
+@celery.task(bind=True)
+def task_admin_import_all_files(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_import_all_files [start] ")
+    logger.info("------------------------------------------------------------")
+    who_service.task_admin_import_all_files()
+    # divi_service.task_admin_import_all_files()
+    ecdc_service.task_admin_import_all_files()
+    owid_service.task_admin_import_all_files()
+    rki_vaccination_service.task_admin_import_all_files()
+    # rki_service_bundeslaender.task_admin_import_all_files()
+    # rki_service_landkreise.task_admin_import_all_files()
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_import_all_files [done] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_import_all_files)"
+    return result
+
+
+@celery.task(bind=True)
+def task_admin_update_full_dimension_tables(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_full_dimension_tables [start] ")
+    logger.info("------------------------------------------------------------")
+    who_service.task_admin_update_full_dimension_tables()
+    # divi_service.full_update_dimension_tables()
+    ecdc_service.task_admin_update_full_dimension_tables()
+    owid_service.task_admin_update_full_dimension_tables()
+    rki_vaccination_service.task_admin_update_full_dimension_tables()
+    # rki_service_bundeslaender.full_update_dimension_tables()
+    # rki_service_landkreise.full_update_dimension_tables()
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_full_dimension_tables [done] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_update_full_dimension_tables)"
+    return result
+
+
+@celery.task(bind=True)
+def task_admin_update_dimension_tables(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_dimension_tables_only [start] ")
+    logger.info("------------------------------------------------------------")
+    who_service.task_admin_update_dimension_tables()
+    # divi_service.update_dimension_tables_only()
+    ecdc_service.task_admin_update_dimension_tables()
+    owid_service.task_admin_update_dimension_tables()
+    rki_vaccination_service.task_admin_update_dimension_tables()
+    # rki_service_bundeslaender.update_dimension_tables_only()
+    # rki_service_landkreise.update_dimension_tables_only()
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_dimension_tables_only [done] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_update_dimension_tables_only)"
+    return result
+
+
+@celery.task(bind=True)
+def task_admin_full_update_fact_table(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_fact_table_initial_only [start] ")
+    logger.info("------------------------------------------------------------")
+    who_service.task_admin_full_update_fact_table()
+    # divi_service.full_update_fact_table()
+    ecdc_service.task_admin_full_update_fact_table()
+    owid_service.task_admin_full_update_fact_table()
+    rki_vaccination_service.task_admin_full_update_fact_table()
+    # rki_service_bundeslaender.update_fact_table_initial_only()
+    # rki_service_landkreise.update_fact_table_initial_only()
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_fact_table_initial_only [done] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_update_fact_table_initial_only)"
+    return result
+
+
+@celery.task(bind=True)
+def task_admin_update_fact_table(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_fact_table_incremental_only [start] ")
+    logger.info("------------------------------------------------------------")
+    who_service.task_admin_update_fact_table()
+    # divi_service.task_admin_update_fact_table()
+    ecdc_service.task_admin_update_fact_table()
+    owid_service.task_admin_update_fact_table()
+    rki_vaccination_service.task_admin_update_fact_table()
+    # rki_service_bundeslaender.task_admin_update_fact_table()
+    # rki_service_landkreise.task_admin_update_fact_table()
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_fact_table_incremental_only [done] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_update_fact_table_incremental_only)"
+    return result
+
+
+@celery.task(bind=True)
+def task_admin_full_update_star_schema(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_star_schema_initial [start] ")
+    logger.info("------------------------------------------------------------")
+    who_service.task_admin_full_update_star_schema()
+    # divi_service.task_admin_full_update_star_schema()
+    ecdc_service.task_admin_full_update_star_schema()
+    owid_service.task_admin_full_update_star_schema()
+    rki_vaccination_service.task_admin_full_update_star_schema()
+    # rki_service_bundeslaender.task_admin_full_update_star_schema()
+    # rki_service_landkreise.task_admin_full_update_star_schema()
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_star_schema_initial [done] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_update_star_schema_initial)"
+    return result
+
+
+@celery.task(bind=True)
+def task_admin_update_star_schema(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_star_schema_incremental [start] ")
+    logger.info("------------------------------------------------------------")
+    who_service.task_admin_update_star_schema()
+    # divi_service.task_admin_update_star_schema()
+    ecdc_service.task_admin_update_star_schema()
+    owid_service.task_admin_update_star_schema()
+    rki_vaccination_service.task_admin_update_star_schema()
+    # rki_service_bundeslaender.task_admin_update_star_schema()
+    # rki_service_landkreise.task_admin_update_star_schema()
+    logger.info("------------------------------------------------------------")
+    logger.info(" task_admin_update_star_schema_incremental [done] ")
+    logger.info("------------------------------------------------------------")
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_admin_update_star_schema_incremental)"
+    return result
+
+# ----------------------------------------------------------------------------------------------------------------
+#  URL Routes for Celery TASKS
+# ----------------------------------------------------------------------------------------------------------------
+
+
+@blueprint_app_admin.route('/task/alive_message')
+def url_task_admin_alive_message():
+    app.logger.info("url_task_admin_message_start [start]")
+    task_admin_alive_message.apply_async()
+    flash("alive_message_task started")
+    app.logger.info("url_task_admin_message_start [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/database/dump')
+def url_task_admin_database_dump():
+    app.logger.info("url_task_admin_database_dump [start]")
+    app_admin_service.run_admin_database_dump()
+    flash("admin_service.run_admin_database_dump started")
+    app.logger.info("url_task_admin_database_dump [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/database/reimport')
+def url_task_admin_database_dump_reimport():
+    app.logger.info("url_task_admin_database_dump_reimport [start]")
+    app_admin_service.run_admin_database_dump_reimport()
+    flash("admin_service.run_admin_database_import started")
+    app.logger.info("url_task_admin_database_dump_reimport [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/database/drop_create')
+def url_task_admin_database_dropcreate():
+    app.logger.info("url_task_admin_database_dropcreate [start]")
+    app_admin_service.run_admin_database_drop_and_create()
+    flash("admin_service.run_admin_database_drop started")
+    app.logger.info("url_task_admin_database_dropcreate [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/database/drop')
+def url_task_admin_database_drop():
+    flash("url_task_admin_database_drop [start]")
+    app.logger.info("admin_service.run_admin_database_drop_and_create [start]")
+    app_admin_service.run_admin_database_drop_and_create()
+    flash("admin_service.run_admin_database_drop_and_create() [done]")
+    app.logger.info("admin_service.run_admin_database_drop_and_create() [done]")
+    if drop_and_create_data_again:
+        who_service.pretask_database_drop_create()
+        # divi_service.pretask_database_drop_create()
+        ecdc_service.pretask_database_drop_create()
+        owid_service.pretask_database_drop_create()
+        rki_vaccination_service.pretask_database_drop_create()
+        # rki_service_bundeslaender.pretask_database_drop_create()
+        # rki_service_landkreise.pretask_database_drop_create()
+        task_admin_database_drop_create.apply_async()
+        flash(message="async task_admin_database_drop_create [start]", category="warning")
+        app.logger.warn("async task_admin_database_drop_create [start]")
+    app.logger.info("url_task_admin_database_drop [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/files/all/download')
+def url_task_admin_download_all_files():
+    app.logger.info("url_task_admin_download_all_files [start]")
+    who_service.download_all_files()
+    divi_service.download_all_files()
+    ecdc_service.download_all_files()
+    owid_service.download_all_files()
+    rki_vaccination_service.download_all_files()
+    rki_service.download_all_files()
+    app.logger.info("url_task_admin_download_all_files [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/files/all/import')
+def url_task_admin_import_all_files():
+    app.logger.info("url_task_admin_import_all_files [start]")
+    task_admin_import_all_files.apply_async()
+    flash(message="async url_task_admin_import_all_files [start]", category="warning")
+    app.logger.warn("async url_task_admin_import_all_files [start]")
+    app.logger.info("url_task_admin_import_all_files [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/update/all/dimension_tables')
+def url_task_admin_update_dimension_tables():
+    app.logger.info("url_task_admin_update_dimension_tables [start]")
+    task_admin_update_dimension_tables.apply_async()
+    flash(message="async task_admin_update_dimension_tables [start]", category="warning")
+    app.logger.warn("async task_admin_update_dimension_tables [start]")
+    app.logger.info("url_task_admin_update_dimension_tables [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/full/update/all/dimension_tables')
+def url_task_admin_update_full_dimension_tables():
+    app.logger.info("url_task_admin_update_full_dimension_tables [start]")
+    task_admin_update_full_dimension_tables.apply_async()
+    flash(message="async task_admin_update_full_dimension_tables [start]", category="warning")
+    app.logger.warn("async task_admin_update_full_dimension_tables [start]")
+    app.logger.info("url_task_admin_update_full_dimension_tables [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/full/update/all/fact_tables')
+def url_task_admin_full_update_fact_table():
+    app.logger.info("url_task_admin_full_update_fact_table [start]")
+    task_admin_full_update_fact_table.apply_async()
+    flash(message="async task_admin_full_update_fact_table [start]", category="warning")
+    app.logger.warn("async task_admin_full_update_fact_table [start]")
+    app.logger.info("url_task_admin_full_update_fact_table [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/update/all/fact_tables')
+def url_task_admin_update_fact_table():
+    app.logger.info("url_task_admin_update_fact_table [start]")
+    task_admin_update_fact_table.apply_async()
+    flash(message="async task_admin_update_fact_table [start]", category="warning")
+    app.logger.warn("async task_admin_update_fact_table [start]")
+    app.logger.info("url_task_admin_update_fact_table [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/full/update/star_schema')
+def url_task_admin_full_update_star_schema():
+    app.logger.info("url_task_admin_full_update_star_schema [start]")
+    task_admin_full_update_star_schema.apply_async()
+    flash(message="async task_admin_full_update_star_schema [start]", category="warning")
+    app.logger.warn("async task_admin_full_update_star_schema [start]")
+    app.logger.info("url_task_admin_full_update_star_schema [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/update/star_schema')
+def url_task_admin_update_star_schema():
+    app.logger.info("url_task_admin_update_star_schema [start]")
+    task_admin_update_star_schema.apply_async()
+    flash(message="async task_admin_update_star_schema [start]", category="warning")
+    app.logger.warn("async task_admin_update_star_schema [start]")
+    app.logger.info("url_task_admin_update_star_schema [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
+
+
+@blueprint_app_admin.route('/task/full/update/do/all')
+def url_task_admin_full_update_do_all():
+    app.logger.info("url_task_admin_full_update_do_all [start]")
+    who_service.download_files()
+    flash("who_service.download_files() [done]")
+    # divi_service.download_files()
+    flash("divi_service.download_files() [done]")
+    ecdc_service.download_all_files()
+    flash("ecdc_service.download_all_files() [done]")
+    owid_service.download_all_files()
+    flash("owid_service.download_all_files() [done]")
+    rki_vaccination_service.download_all_files()
+    flash("rki_vaccination_service.download_all_files() [done]")
+    rki_service.download_all_files()
+    flash("rki_service_bundeslaender.download_all_files() [done]")
+    task_admin_full_update_star_schema.apply_async()
+    flash(message="async task_admin_full_update_star_schema [start]", category="warning")
+    app.logger.warn("async task_admin_full_update_star_schema [start]")
+    app.logger.info("url_task_admin_full_update_do_all [done]")
+    return redirect(url_for('app_admin.url_admin_tasks'))
diff --git a/src/covid19/blueprints/admin/templates/__init__.py b/src/covid19/blueprints/app_admin/templates/__init__.py
similarity index 100%
rename from src/covid19/blueprints/admin/templates/__init__.py
rename to src/covid19/blueprints/app_admin/templates/__init__.py
diff --git a/src/covid19/blueprints/admin/templates/admin/admin_info.html b/src/covid19/blueprints/app_admin/templates/app_admin/admin_info.html
similarity index 66%
rename from src/covid19/blueprints/admin/templates/admin/admin_info.html
rename to src/covid19/blueprints/app_admin/templates/app_admin/admin_info.html
index f534ae42f07c9765836f658c785660554d7581e7..5994cae995336422cab484d626ee034ece52620c 100644
--- a/src/covid19/blueprints/admin/templates/admin/admin_info.html
+++ b/src/covid19/blueprints/app_admin/templates/app_admin/admin_info.html
@@ -1,8 +1,8 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
-    {% include 'admin/navigation/admin_navtabs.html' %}
+    {% include 'app_admin/navigation/app_admin_navtabs.html' %}
 
     <div class="container">
         <div class="row">
diff --git a/src/covid19/blueprints/admin/templates/admin/system_tasks.html b/src/covid19/blueprints/app_admin/templates/app_admin/admin_tasks.html
similarity index 95%
rename from src/covid19/blueprints/admin/templates/admin/system_tasks.html
rename to src/covid19/blueprints/app_admin/templates/app_admin/admin_tasks.html
index a1c56d40c0a0cd6b716091f842ea98115abbf4f5..837bc4a3e34a84a6163e59b50578a9d15099036f 100644
--- a/src/covid19/blueprints/admin/templates/admin/system_tasks.html
+++ b/src/covid19/blueprints/app_admin/templates/app_admin/admin_tasks.html
@@ -1,8 +1,8 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
-    {% include 'admin/navigation/admin_navtabs.html' %}
+    {% include 'app_admin/navigation/app_admin_navtabs.html' %}
 
     <div class="container">
         <div class="row">
diff --git a/src/covid19/blueprints/admin/templates/admin/index.html b/src/covid19/blueprints/app_admin/templates/app_admin/index.html
similarity index 93%
rename from src/covid19/blueprints/admin/templates/admin/index.html
rename to src/covid19/blueprints/app_admin/templates/app_admin/index.html
index 62c36d7fcea13a64a4629d9eb6edaa590d8bfcb3..dade2a1eb63d17c00ee7662b96f8d77a304ada3e 100644
--- a/src/covid19/blueprints/admin/templates/admin/index.html
+++ b/src/covid19/blueprints/app_admin/templates/app_admin/index.html
@@ -1,6 +1,6 @@
-{% extends 'admin/master.html' %}
+{% extends 'app_admin/master.html' %}
 
-    {% include 'admin/navigation/admin_navtabs.html' %}
+    {% include 'app_admin/navigation/app_admin_navtabs.html' %}
     <div class="container">
         <div class="row">
             <div class="col">
diff --git a/src/covid19/blueprints/admin/templates/admin/navigation/admin_navbar_dropdown.html b/src/covid19/blueprints/app_admin/templates/app_admin/navigation/app_admin_navbar_dropdown.html
similarity index 100%
rename from src/covid19/blueprints/admin/templates/admin/navigation/admin_navbar_dropdown.html
rename to src/covid19/blueprints/app_admin/templates/app_admin/navigation/app_admin_navbar_dropdown.html
diff --git a/src/covid19/blueprints/admin/templates/admin/navigation/admin_navtabs.html b/src/covid19/blueprints/app_admin/templates/app_admin/navigation/app_admin_navtabs.html
similarity index 82%
rename from src/covid19/blueprints/admin/templates/admin/navigation/admin_navtabs.html
rename to src/covid19/blueprints/app_admin/templates/app_admin/navigation/app_admin_navtabs.html
index 14fdc3f11f67cfaf384ffa0cb79cc2077cba82e6..7e680cc5270aec4406d20622624c025ad8136812 100644
--- a/src/covid19/blueprints/admin/templates/admin/navigation/admin_navtabs.html
+++ b/src/covid19/blueprints/app_admin/templates/app_admin/navigation/app_admin_navtabs.html
@@ -13,10 +13,6 @@
                             <a class="nav-link"
                                href="{{ url_for( 'app_admin.url_admin_tasks') }}">Admin Tasks</a>
                         </li>
-                        <li class="nav-item">
-                            <a class="nav-link"
-                               href="{{ url_for( 'app_admin.url_system_tasks') }}">System Tasks</a>
-                        </li>
                         {% endif %}
                         <li class="nav-item">
                             <a class="nav-link"
diff --git a/src/covid19/blueprints/application/__init__.py b/src/covid19/blueprints/app_all/__init__.py
similarity index 100%
rename from src/covid19/blueprints/application/__init__.py
rename to src/covid19/blueprints/app_all/__init__.py
diff --git a/src/covid19/blueprints/application/application_model.py b/src/covid19/blueprints/app_all/all_model.py
similarity index 76%
rename from src/covid19/blueprints/application/application_model.py
rename to src/covid19/blueprints/app_all/all_model.py
index 5392090a14c5df6d5068b87fb15af1bf5906a115..d5d7858548c966ea15b830e4987e03941bdddf07 100644
--- a/src/covid19/blueprints/application/application_model.py
+++ b/src/covid19/blueprints/app_all/all_model.py
@@ -228,60 +228,3 @@ class ApplicationRegion(db.Model):
         return db.session.query(cls)\
             .filter(cls.region == i_region)\
             .one_or_none()
-
-
-class RkiDateReported(ApplicationDateReported):
-    __tablename__ = 'rki_datereported'
-    __mapper_args__ = {
-        'concrete': True
-    }
-    __table_args__ = (
-        db.UniqueConstraint('date_reported', 'datum', name="uix_rki_datereported"),
-    )
-
-    id = db.Column(db.Integer, primary_key=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)
-    month = db.Column(db.Integer, nullable=False)
-    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, 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:
-            my_year_week += "-0"
-        else:
-            my_year_week += "-"
-        my_year_week += str(week_number)
-        return RkiDateReported(
-            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,
-            time_of_date_str=my_time_of_date_str,
-            time_of_date=my_time_of_date,
-            aktualisierung=aktualisierung
-        )
-
-    @classmethod
-    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/application/application_service_config.py b/src/covid19/blueprints/app_all/all_service_config.py
similarity index 70%
rename from src/covid19/blueprints/application/application_service_config.py
rename to src/covid19/blueprints/app_all/all_service_config.py
index 75eed63d8f2a7fcbfa1b805988b8e244f5f326f9..a4bc7417fbd4c9cf1acc9a2bfcf2405aa93964d4 100644
--- a/src/covid19/blueprints/application/application_service_config.py
+++ b/src/covid19/blueprints/app_all/all_service_config.py
@@ -2,10 +2,10 @@ import os
 from datetime import date
 from covid19.blueprints.ecdc.ecdc_model_import import EcdcImport
 from covid19.blueprints.who.who_model_import import WhoImport
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_model_import import RkiVaccinationImport
+from covid19.blueprints.rki_vaccination.rki_vaccination_model_import import RkiVaccinationImport
 from covid19.blueprints.owid.owid_model_import import OwidImport
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_model_import import RkiBundeslaenderImport
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_model_import import RkiLandkreiseImport
+from covid19.blueprints.rki_cases.rki_model_import import RkiImport
+from covid19.blueprints.intensivregister.divi_model_import import DiviImport
 
 
 class ApplicationServiceConfig:
@@ -48,7 +48,7 @@ class ApplicationServiceConfig:
         return ApplicationServiceConfig(
             slug='rki_vaccination',
             category='RKI',
-            cvsfile_subpath='rki' + os.sep + 'rki_vaccination',
+            cvsfile_subpath='rki_vaccination',
             sub_category='Vaccination',
             tablename=RkiVaccinationImport.__tablename__,
             cvsfile_name="germany_vaccinations_timeseries_v2.tsv",
@@ -80,27 +80,16 @@ class ApplicationServiceConfig:
         )
 
     @classmethod
-    def create_config_for_rki_bundeslaender(cls):
+    def create_config_for_rki(cls):
+        # https://www.arcgis.com/home/item.html?id=f10774f1c63e40168479a1feb6c7ca74
         return ApplicationServiceConfig(
-            slug='rki_bundeslaender',
+            slug='rki',
             category='RKI',
-            cvsfile_subpath='rki' + os.sep + 'rki_bundeslaender',
-            sub_category='Bundeslaender',
-            tablename=RkiBundeslaenderImport.__tablename__,
-            cvsfile_name="RKI_COVID19__" + date.today().isoformat() + "__Fallzahlen_Kum_Tab.xlsx",
-            url_src="https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Daten/Fallzahlen_Kum_Tab.xlsx?__blob=publicationFile",
-        )
-
-    @classmethod
-    def create_config_for_rki_landkreise(cls):
-        return ApplicationServiceConfig(
-            slug='rki_landkreise',
-            category='RKI',
-            cvsfile_subpath='rki' + os.sep + 'rki_landkreise',
-            sub_category='Landkreise',
-            tablename=RkiLandkreiseImport.__tablename__,
-            cvsfile_name="RKI_COVID19__" + date.today().isoformat() + "__landkreise.csv",
-            url_src="https://opendata.arcgis.com/datasets/917fc37a709542548cc3be077a786c17_0.csv",
+            cvsfile_subpath='rki',
+            sub_category='Cases',
+            tablename=RkiImport.__tablename__,
+            cvsfile_name="RKI_COVID19.csv",
+            url_src="https://www.arcgis.com/sharing/rest/content/items/f10774f1c63e40168479a1feb6c7ca74/data",
         )
 
     @classmethod
@@ -110,7 +99,7 @@ class ApplicationServiceConfig:
             category='DIVI',
             cvsfile_subpath='intensivregister',
             sub_category='Intensivregister',
-            tablename=RkiLandkreiseImport.__tablename__,
+            tablename=DiviImport.__tablename__,
             cvsfile_name="DIVI_intensivregister.json",
             url_src="https://www.intensivregister.de/api/public/intensivregister",
         )
diff --git a/src/covid19/blueprints/application/application_service_download.py b/src/covid19/blueprints/app_all/all_service_download.py
similarity index 79%
rename from src/covid19/blueprints/application/application_service_download.py
rename to src/covid19/blueprints/app_all/all_service_download.py
index 537694c257f6d5e1a389a179351b00e2f00a10bd..1bf3e780a443feed07411cf270a5215c493625b9 100644
--- a/src/covid19/blueprints/application/application_service_download.py
+++ b/src/covid19/blueprints/app_all/all_service_download.py
@@ -1,9 +1,8 @@
 import os
 import wget
 import subprocess
-# from flask import flash
 from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 
 
 class ApplicationServiceDownload:
@@ -16,21 +15,6 @@ class ApplicationServiceDownload:
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" ApplicationServiceDownload [ready]")
 
-    #def __log_error(self, error_msg: str, error_obj):
-    #    log_msg = self.cfg.slug[0] + " " + self.cfg.msg_error() + " " + error_msg + " "
-    #    app.logger.error(log_msg)
-    #    flash(message=log_msg, category='error')
-    #    return self
-    #
-    #def __log_success(self, data_file):
-    #    slug = self.cfg.slug[0]
-    #    log_msg1 = " " + slug + " | download success: " + data_file + " "
-    #    log_msg2 = " " + slug + " | " + self.cfg.msg_ok
-    #    app.logger.info(log_msg1)
-    #    app.logger.info(log_msg2)
-    #    flash(log_msg1)
-    #    return self
-
     def __prepare_download(self):
         os.makedirs(self.cfg.data_path, exist_ok=True)
         if os.path.isfile(self.cfg.cvsfile_path):
diff --git a/src/covid19/blueprints/app_all/all_services.py b/src/covid19/blueprints/app_all/all_services.py
new file mode 100644
index 0000000000000000000000000000000000000000..58af341ae5eb81f79ea70dfd710226e294e7a063
--- /dev/null
+++ b/src/covid19/blueprints/app_all/all_services.py
@@ -0,0 +1,26 @@
+from database import db
+
+from covid19.blueprints.app_admin.app_admin_service import AdminService
+from covid19.blueprints.app_user.user_service import UserService
+from covid19.blueprints.ecdc.ecdc_service import EcdcService
+from covid19.blueprints.owid.owid_service import OwidService
+from covid19.blueprints.rki_vaccination.rki_vaccination_service import RkiVaccinationService
+from covid19.blueprints.who.who_service import WhoService
+from covid19.blueprints.intensivregister.divi_service import DiviService
+from covid19.blueprints.rki_cases.rki_service import RkiService
+
+############################################################################################
+#
+# Services
+#
+app_admin_service = AdminService(db)
+app_user_service = UserService(db)
+
+who_service = WhoService(db)
+owid_service = OwidService(db)
+ecdc_service = EcdcService(db)
+rki_vaccination_service = RkiVaccinationService(db)
+rki_service = RkiService(db)
+divi_service = DiviService(db)
+
+db.create_all()
diff --git a/src/covid19/blueprints/admin/admin_views.py b/src/covid19/blueprints/app_all/all_views.py
similarity index 67%
rename from src/covid19/blueprints/admin/admin_views.py
rename to src/covid19/blueprints/app_all/all_views.py
index 900973388b7391fea835b91fcda240e87a5956ed..a19aa5d4c9409f4b6a49b4e9d055e4a0455578f0 100644
--- a/src/covid19/blueprints/admin/admin_views.py
+++ b/src/covid19/blueprints/app_all/all_views.py
@@ -3,50 +3,43 @@ from celery import states
 from celery.utils.log import get_task_logger
 
 from database import app
-from covid19.blueprints.application.application_services import who_service, ecdc_service, rki_vaccination_service
-from covid19.blueprints.application.application_services import rki_service_bundeslaender, rki_service_landkreise
-from covid19.blueprints.application.application_services import admin_service, owid_service, divi_service
-from covid19.blueprints.application.application_workers import celery
-from covid19.blueprints.application.application_model_transient import ApplicationPage
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 
 drop_and_create_data_again = True
 
-app_admin = Blueprint('app_admin', __name__, template_folder='templates', url_prefix='/admin')
+blueprint_app_all = Blueprint('app_all', __name__, template_folder='templates', url_prefix='/app/all')
 
 
 # ---------------------------------------------------------------------------------------------------------------
 #  Url Routes Frontend
 # ---------------------------------------------------------------------------------------------------------------
 
-@app_admin.route('/')
+@blueprint_app_all.route('/')
 def url_admin_index():
     page_info = ApplicationPage('Admin', "Covid19 Admin")
     return render_template(
-        'admin/index.html',
+        'app_admin/index.html',
         page_info=page_info)
 
 
-@app_admin.route('/tasks')
+@blueprint_app_all.route('/tasks')
 def url_admin_tasks():
     page_info = ApplicationPage('Admin', "Tasks")
     return render_template(
-        'admin/admin_tasks.html',
+        'app_admin/admin_tasks.html',
         page_info=page_info)
 
 
-@app_admin.route('/system/tasks')
-def url_system_tasks():
-    page_info = ApplicationPage('Admin', "System Tasks")
-    return render_template(
-        'admin/system_tasks.html',
-        page_info=page_info)
-
-
-@app_admin.route('/info')
+@blueprint_app_all.route('/info')
 def url_admin_info():
     page_info = ApplicationPage('Admin', "Info")
     return render_template(
-        'admin/admin_info.html',
+        'app_admin/admin_info.html',
         page_info=page_info)
 
 
@@ -81,7 +74,7 @@ def task_admin_database_drop_create(self):
     rki_vaccination_service.task_database_drop_create()
     # rki_service_bundeslaender.task_database_drop_create()
     # rki_service_landkreise.task_database_drop_create()
-    admin_service.task_database_drop_create()
+    app_admin_service.task_database_drop_create()
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_database_drop_create [done] ")
     logger.info("------------------------------------------------------------")
@@ -97,13 +90,13 @@ def task_admin_import_all_files(self):
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_import_all_files [start] ")
     logger.info("------------------------------------------------------------")
-    who_service.task_import_all_files()
-    divi_service.task_import_all_files()
-    ecdc_service.task_import_all_files()
-    owid_service.task_import_all_files()
-    rki_vaccination_service.task_import_all_files()
-    # rki_service_bundeslaender.task_import_all_files()
-    # rki_service_landkreise.task_import_all_files()
+    who_service.task_admin_import_all_files()
+    # divi_service.task_admin_import_all_files()
+    ecdc_service.task_admin_import_all_files()
+    owid_service.task_admin_import_all_files()
+    rki_vaccination_service.task_admin_import_all_files()
+    # rki_service_bundeslaender.task_admin_import_all_files()
+    # rki_service_landkreise.task_admin_import_all_files()
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_import_all_files [done] ")
     logger.info("------------------------------------------------------------")
@@ -119,11 +112,11 @@ def task_admin_update_full_dimension_tables(self):
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_full_dimension_tables [start] ")
     logger.info("------------------------------------------------------------")
-    who_service.full_update_dimension_tables()
+    who_service.task_admin_update_full_dimension_tables()
     # divi_service.full_update_dimension_tables()
-    ecdc_service.full_update_dimension_tables()
-    owid_service.full_update_dimension_tables()
-    rki_vaccination_service.full_update_dimension_tables()
+    ecdc_service.task_admin_update_full_dimension_tables()
+    owid_service.task_admin_update_full_dimension_tables()
+    rki_vaccination_service.task_admin_update_full_dimension_tables()
     # rki_service_bundeslaender.full_update_dimension_tables()
     # rki_service_landkreise.full_update_dimension_tables()
     logger.info("------------------------------------------------------------")
@@ -135,17 +128,17 @@ def task_admin_update_full_dimension_tables(self):
 
 
 @celery.task(bind=True)
-def task_admin_update_dimension_tables_only(self):
+def task_admin_update_dimension_tables(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_dimension_tables_only [start] ")
     logger.info("------------------------------------------------------------")
-    who_service.update_dimension_tables_only()
+    who_service.task_admin_update_dimension_tables()
     # divi_service.update_dimension_tables_only()
-    ecdc_service.update_dimension_tables_only()
-    owid_service.update_dimension_tables_only()
-    rki_vaccination_service.update_dimension_tables_only()
+    ecdc_service.task_admin_update_dimension_tables()
+    owid_service.task_admin_update_dimension_tables()
+    rki_vaccination_service.task_admin_update_dimension_tables()
     # rki_service_bundeslaender.update_dimension_tables_only()
     # rki_service_landkreise.update_dimension_tables_only()
     logger.info("------------------------------------------------------------")
@@ -157,17 +150,17 @@ def task_admin_update_dimension_tables_only(self):
 
 
 @celery.task(bind=True)
-def task_admin_update_fact_table_initial_only(self):
+def task_admin_full_update_fact_table(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_fact_table_initial_only [start] ")
     logger.info("------------------------------------------------------------")
-    who_service.full_update_fact_table()
+    who_service.task_admin_full_update_fact_table()
     # divi_service.full_update_fact_table()
-    ecdc_service.full_update_fact_table()
-    owid_service.full_update_fact_table()
-    rki_vaccination_service.full_update_fact_table()
+    ecdc_service.task_admin_full_update_fact_table()
+    owid_service.task_admin_full_update_fact_table()
+    rki_vaccination_service.task_admin_full_update_fact_table()
     # rki_service_bundeslaender.update_fact_table_initial_only()
     # rki_service_landkreise.update_fact_table_initial_only()
     logger.info("------------------------------------------------------------")
@@ -179,19 +172,19 @@ def task_admin_update_fact_table_initial_only(self):
 
 
 @celery.task(bind=True)
-def task_admin_update_fact_table_incremental_only(self):
+def task_admin_update_fact_table(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_fact_table_incremental_only [start] ")
     logger.info("------------------------------------------------------------")
-    who_service.service_update.update_fact_table()
-    # divi_service.service_update.update_fact_table()
-    ecdc_service.service_update.update_fact_table()
-    owid_service.service_update.update_fact_table()
-    rki_vaccination_service.service_update.update_fact_table()
-    # rki_service_bundeslaender.service_update.update_fact_table()
-    # rki_service_landkreise.service_update.update_fact_table()
+    who_service.task_admin_update_fact_table()
+    # divi_service.task_admin_update_fact_table()
+    ecdc_service.task_admin_update_fact_table()
+    owid_service.task_admin_update_fact_table()
+    rki_vaccination_service.task_admin_update_fact_table()
+    # rki_service_bundeslaender.task_admin_update_fact_table()
+    # rki_service_landkreise.task_admin_update_fact_table()
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_fact_table_incremental_only [done] ")
     logger.info("------------------------------------------------------------")
@@ -201,19 +194,19 @@ def task_admin_update_fact_table_incremental_only(self):
 
 
 @celery.task(bind=True)
-def task_admin_update_star_schema_initial(self):
+def task_admin_full_update_star_schema(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_star_schema_initial [start] ")
     logger.info("------------------------------------------------------------")
-    who_service.run_update_star_schema_initial()
-    # divi_service.run_update_star_schema_initial()
-    ecdc_service.run_update_star_schema_initial()
-    owid_service.run_update_star_schema_initial()
-    rki_vaccination_service.run_update_star_schema_initial()
-    # rki_service_bundeslaender.run_update_star_schema_initial()
-    # rki_service_landkreise.run_update_star_schema_initial()
+    who_service.task_admin_full_update_star_schema()
+    # divi_service.task_admin_full_update_star_schema()
+    ecdc_service.task_admin_full_update_star_schema()
+    owid_service.task_admin_full_update_star_schema()
+    rki_vaccination_service.task_admin_full_update_star_schema()
+    # rki_service_bundeslaender.task_admin_full_update_star_schema()
+    # rki_service_landkreise.task_admin_full_update_star_schema()
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_star_schema_initial [done] ")
     logger.info("------------------------------------------------------------")
@@ -223,19 +216,19 @@ def task_admin_update_star_schema_initial(self):
 
 
 @celery.task(bind=True)
-def task_admin_update_star_schema_incremental(self):
+def task_admin_update_star_schema(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_star_schema_incremental [start] ")
     logger.info("------------------------------------------------------------")
-    who_service.run_update_star_schema_incremental()
-    # divi_service.run_update_star_schema_incremental()
-    ecdc_service.run_update_star_schema_incremental()
-    owid_service.run_update_star_schema_incremental()
-    rki_vaccination_service.run_update_star_schema_incremental()
-    # rki_service_bundeslaender.run_update_star_schema_incremental()
-    # rki_service_landkreise.run_update_star_schema_incremental()
+    who_service.task_admin_update_star_schema()
+    # divi_service.task_admin_update_star_schema()
+    ecdc_service.task_admin_update_star_schema()
+    owid_service.task_admin_update_star_schema()
+    rki_vaccination_service.task_admin_update_star_schema()
+    # rki_service_bundeslaender.task_admin_update_star_schema()
+    # rki_service_landkreise.task_admin_update_star_schema()
     logger.info("------------------------------------------------------------")
     logger.info(" task_admin_update_star_schema_incremental [done] ")
     logger.info("------------------------------------------------------------")
@@ -248,7 +241,7 @@ def task_admin_update_star_schema_incremental(self):
 # ----------------------------------------------------------------------------------------------------------------
 
 
-@app_admin.route('/task/alive_message')
+@blueprint_app_all.route('/task/alive_message')
 def url_task_admin_alive_message():
     app.logger.info("url_task_admin_message_start [start]")
     task_admin_alive_message.apply_async()
@@ -257,38 +250,38 @@ def url_task_admin_alive_message():
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/database/dump')
+@blueprint_app_all.route('/task/database/dump')
 def url_task_admin_database_dump():
     app.logger.info("url_task_admin_database_dump [start]")
-    admin_service.run_admin_database_dump()
+    app_admin_service.run_admin_database_dump()
     flash("admin_service.run_admin_database_dump started")
     app.logger.info("url_task_admin_database_dump [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/database/reimport')
+@blueprint_app_all.route('/task/database/reimport')
 def url_task_admin_database_dump_reimport():
     app.logger.info("url_task_admin_database_dump_reimport [start]")
-    admin_service.run_admin_database_dump_reimport()
+    app_admin_service.run_admin_database_dump_reimport()
     flash("admin_service.run_admin_database_import started")
     app.logger.info("url_task_admin_database_dump_reimport [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/database/drop_create')
+@blueprint_app_all.route('/task/database/drop_create')
 def url_task_admin_database_dropcreate():
     app.logger.info("url_task_admin_database_dropcreate [start]")
-    admin_service.run_admin_database_drop_and_create()
+    app_admin_service.run_admin_database_drop_and_create()
     flash("admin_service.run_admin_database_drop started")
     app.logger.info("url_task_admin_database_dropcreate [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/database/drop')
+@blueprint_app_all.route('/task/database/drop')
 def url_task_admin_database_drop():
     flash("url_task_admin_database_drop [start]")
     app.logger.info("admin_service.run_admin_database_drop_and_create [start]")
-    admin_service.run_admin_database_drop_and_create()
+    app_admin_service.run_admin_database_drop_and_create()
     flash("admin_service.run_admin_database_drop_and_create() [done]")
     app.logger.info("admin_service.run_admin_database_drop_and_create() [done]")
     if drop_and_create_data_again:
@@ -306,7 +299,7 @@ def url_task_admin_database_drop():
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/files/all/download')
+@blueprint_app_all.route('/task/files/all/download')
 def url_task_admin_download_all_files():
     app.logger.info("url_task_admin_download_all_files [start]")
     who_service.download_all_files()
@@ -314,13 +307,12 @@ def url_task_admin_download_all_files():
     ecdc_service.download_all_files()
     owid_service.download_all_files()
     rki_vaccination_service.download_all_files()
-    rki_service_bundeslaender.download_all_files()
-    rki_service_landkreise.download_all_files()
+    rki_service.download_all_files()
     app.logger.info("url_task_admin_download_all_files [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/files/all/import')
+@blueprint_app_all.route('/task/files/all/import')
 def url_task_admin_import_all_files():
     app.logger.info("url_task_admin_import_all_files [start]")
     task_admin_import_all_files.apply_async()
@@ -330,17 +322,17 @@ def url_task_admin_import_all_files():
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/update/all/dimension_tables')
+@blueprint_app_all.route('/task/update/all/dimension_tables')
 def url_task_admin_update_dimension_tables():
     app.logger.info("url_task_admin_update_dimension_tables [start]")
-    task_admin_update_dimension_tables_only.apply_async()
-    flash(message="async task_admin_update_dimension_tables_only [start]", category="warning")
-    app.logger.warn("async task_admin_update_dimension_tables_only [start]")
+    task_admin_update_dimension_tables.apply_async()
+    flash(message="async task_admin_update_dimension_tables [start]", category="warning")
+    app.logger.warn("async task_admin_update_dimension_tables [start]")
     app.logger.info("url_task_admin_update_dimension_tables [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/update/full/all/dimension_tables')
+@blueprint_app_all.route('/task/full/update/all/dimension_tables')
 def url_task_admin_update_full_dimension_tables():
     app.logger.info("url_task_admin_update_full_dimension_tables [start]")
     task_admin_update_full_dimension_tables.apply_async()
@@ -350,52 +342,52 @@ def url_task_admin_update_full_dimension_tables():
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/update/full/all/fact_tables')
-def url_task_admin_update_full_fact_tables():
-    app.logger.info("url_task_admin_update_full_fact_tables [start]")
-    task_admin_update_fact_table_initial_only.apply_async()
-    flash(message="async task_admin_update_fact_table_initial_only [start]", category="warning")
-    app.logger.warn("async task_admin_update_fact_table_initial_only [start]")
-    app.logger.info("url_task_admin_update_full_fact_tables [done]")
+@blueprint_app_all.route('/task/full/update/all/fact_tables')
+def url_task_admin_full_update_fact_table():
+    app.logger.info("url_task_admin_full_update_fact_table [start]")
+    task_admin_full_update_fact_table.apply_async()
+    flash(message="async task_admin_full_update_fact_table [start]", category="warning")
+    app.logger.warn("async task_admin_full_update_fact_table [start]")
+    app.logger.info("url_task_admin_full_update_fact_table [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/update/all/fact_tables')
-def url_task_admin_update_fact_tables():
-    app.logger.info("url_admin_update_fact_table_incremental_only [start]")
-    task_admin_update_fact_table_incremental_only.apply_async()
-    flash(message="async task_admin_update_fact_table_incremental_only [start]", category="warning")
-    app.logger.warn("async task_admin_update_fact_table_incremental_only [start]")
-    app.logger.info("url_admin_update_fact_table_incremental_only [done]")
+@blueprint_app_all.route('/task/update/all/fact_tables')
+def url_task_admin_update_fact_table():
+    app.logger.info("url_task_admin_update_fact_table [start]")
+    task_admin_update_fact_table.apply_async()
+    flash(message="async task_admin_update_fact_table [start]", category="warning")
+    app.logger.warn("async task_admin_update_fact_table [start]")
+    app.logger.info("url_task_admin_update_fact_table [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/update/full/star_schema')
+@blueprint_app_all.route('/task/full/update/star_schema')
 def url_task_admin_full_update_star_schema():
     app.logger.info("url_task_admin_full_update_star_schema [start]")
-    task_admin_update_star_schema_initial.apply_async()
-    flash(message="async task_admin_update_star_schema_initial [start]", category="warning")
-    app.logger.warn("async task_admin_update_star_schema_initial [start]")
+    task_admin_full_update_star_schema.apply_async()
+    flash(message="async task_admin_full_update_star_schema [start]", category="warning")
+    app.logger.warn("async task_admin_full_update_star_schema [start]")
     app.logger.info("url_task_admin_full_update_star_schema [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/update/star_schema')
+@blueprint_app_all.route('/task/update/star_schema')
 def url_task_admin_update_star_schema():
     app.logger.info("url_task_admin_update_star_schema [start]")
-    task_admin_update_star_schema_incremental.apply_async()
-    flash(message="async task_admin_update_star_schema_incremental [start]", category="warning")
-    app.logger.warn("async task_admin_update_star_schema_incremental [start]")
+    task_admin_update_star_schema.apply_async()
+    flash(message="async task_admin_update_star_schema [start]", category="warning")
+    app.logger.warn("async task_admin_update_star_schema [start]")
     app.logger.info("url_task_admin_update_star_schema [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
 
 
-@app_admin.route('/task/update/do/all/initial')
+@blueprint_app_all.route('/task/full/update/do/all')
 def url_task_admin_full_update_do_all():
-    app.logger.info("url_admin_update_do_all_initial [start]")
+    app.logger.info("url_task_admin_full_update_do_all [start]")
     who_service.download_files()
     flash("who_service.download_files() [done]")
-    divi_service.download_files()
+    # divi_service.download_files()
     flash("divi_service.download_files() [done]")
     ecdc_service.download_all_files()
     flash("ecdc_service.download_all_files() [done]")
@@ -403,12 +395,10 @@ def url_task_admin_full_update_do_all():
     flash("owid_service.download_all_files() [done]")
     rki_vaccination_service.download_all_files()
     flash("rki_vaccination_service.download_all_files() [done]")
-    rki_service_bundeslaender.download_all_files()
+    rki_service.download_all_files()
     flash("rki_service_bundeslaender.download_all_files() [done]")
-    rki_service_landkreise.download_all_files()
-    flash("rki_service_landkreise.download_all_files() [done]")
-    task_admin_update_star_schema_initial.apply_async()
-    flash(message="async task_admin_update_star_schema_initial [start]", category="warning")
-    app.logger.warn("async task_admin_update_star_schema_initial [start]")
-    app.logger.info("url_admin_update_do_all_initial [done]")
+    task_admin_full_update_star_schema.apply_async()
+    flash(message="async task_admin_full_update_star_schema [start]", category="warning")
+    app.logger.warn("async task_admin_full_update_star_schema [start]")
+    app.logger.info("url_task_admin_full_update_do_all [done]")
     return redirect(url_for('app_admin.url_admin_tasks'))
diff --git a/src/covid19/blueprints/rki/__init__.py b/src/covid19/blueprints/app_all/templates/__init__.py
similarity index 100%
rename from src/covid19/blueprints/rki/__init__.py
rename to src/covid19/blueprints/app_all/templates/__init__.py
diff --git a/src/covid19/blueprints/admin/templates/admin/admin_tasks.html b/src/covid19/blueprints/app_all/templates/app_all/app_all_tasks.html
similarity index 96%
rename from src/covid19/blueprints/admin/templates/admin/admin_tasks.html
rename to src/covid19/blueprints/app_all/templates/app_all/app_all_tasks.html
index b180b9efc9811d7d3298e0aa729f825735ce6d1f..c65e0647e5b78f984ca7aaebf7ead30d604bd428 100644
--- a/src/covid19/blueprints/admin/templates/admin/admin_tasks.html
+++ b/src/covid19/blueprints/app_all/templates/app_all/app_all_tasks.html
@@ -1,8 +1,8 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
-    {% include 'admin/navigation/admin_navtabs.html' %}
+    {% include 'app_all/navigation/app_all_navtabs.html' %}
 
     <div class="container">
         <div class="row">
@@ -55,7 +55,7 @@
                        href="{{ url_for( 'app_admin.url_task_admin_update_full_dimension_tables') }}"
                        role="button">Admin :: update :: dimension_tables :: full</a>
                     <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'app_admin.url_task_admin_update_full_fact_tables') }}"
+                       href="{{ url_for( 'app_admin.url_task_admin_full_update_fact_table') }}"
                        role="button">Admin :: update :: fact_tables :: full</a>
                 </div>
             </div>
@@ -72,7 +72,7 @@
                        href="{{ url_for( 'app_admin.url_task_admin_update_dimension_tables') }}"
                        role="button">Admin :: update :: dimension_tables</a>
                     <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'app_admin.url_task_admin_update_fact_tables') }}"
+                       href="{{ url_for( 'app_admin.url_task_admin_update_fact_table') }}"
                        role="button">Admin :: update :: fact_table</a>
                 </div>
             </div>
diff --git a/src/covid19/blueprints/application/templates/application/fragments/fragment_flashed_messages.html b/src/covid19/blueprints/app_all/templates/app_all/fragments/fragment_flashed_messages.html
similarity index 100%
rename from src/covid19/blueprints/application/templates/application/fragments/fragment_flashed_messages.html
rename to src/covid19/blueprints/app_all/templates/app_all/fragments/fragment_flashed_messages.html
diff --git a/src/covid19/blueprints/application/templates/application/fragments/fragment_pagination.html b/src/covid19/blueprints/app_all/templates/app_all/fragments/fragment_pagination.html
similarity index 100%
rename from src/covid19/blueprints/application/templates/application/fragments/fragment_pagination.html
rename to src/covid19/blueprints/app_all/templates/app_all/fragments/fragment_pagination.html
diff --git a/src/covid19/blueprints/application/templates/application/page_layout.html b/src/covid19/blueprints/app_all/templates/app_all/layout/page_layout.html
similarity index 78%
rename from src/covid19/blueprints/application/templates/application/page_layout.html
rename to src/covid19/blueprints/app_all/templates/app_all/layout/page_layout.html
index 61c45d80fb01d662a2569db288a8968235337af9..9df897c13b28ca911c0f78ef8b680cc65be041b7 100644
--- a/src/covid19/blueprints/application/templates/application/page_layout.html
+++ b/src/covid19/blueprints/app_all/templates/app_all/layout/page_layout.html
@@ -13,7 +13,7 @@
 
 
 {% block navbar %}
-  {% include 'application/navigation/navbar.html' %}
+  {% include 'app_application/navigation/navbar.html' %}
 {% endblock %}
 
 {% block content %}
@@ -23,10 +23,10 @@
                 <h1 class="display-3">{{page_info.title}} | <small class="display-4">{{page_info.subtitle}}</small></h1>
             </div>
             <div class="row-cols-1">
-                {% include 'application/fragments/fragment_flashed_messages.html' %}
+                {% include 'app_application/fragments/fragment_flashed_messages.html' %}
             </div>
             <div class="row-cols-1">
-                {% include 'application/navigation/navtabs.html' %}
+                {% include 'app_application/navigation/navtabs.html' %}
             </div>
     </div>
 {% endblock %}
diff --git a/src/covid19/blueprints/application/templates/application/page_layout_old.html b/src/covid19/blueprints/app_all/templates/app_all/layout/page_layout_old.html
similarity index 85%
rename from src/covid19/blueprints/application/templates/application/page_layout_old.html
rename to src/covid19/blueprints/app_all/templates/app_all/layout/page_layout_old.html
index 7737bfc1ae97091ac3af7abfcfd2faec0b7f5fe8..28d8cd9205a4db400d8cf7a99bcf7b18be404297 100644
--- a/src/covid19/blueprints/application/templates/application/page_layout_old.html
+++ b/src/covid19/blueprints/app_all/templates/app_all/layout/page_layout_old.html
@@ -11,13 +11,13 @@
 
     <header>
         <div class="container tw_padding">
-            {% include 'application/fragments/fragment_navbar.html' %}
+            {% include 'app_application/fragments/fragment_navbar.html' %}
         </div>
     </header>
 
     <section>
         <div class="container tw_padding">
-            {% include 'application/fragments/fragment_navtabs.html' %}
+            {% include 'app_application/fragments/fragment_navtabs.html' %}
         </div>
         <div class="container">
             {% block navigation_navtabs %}{% endblock %}
@@ -29,7 +29,7 @@
 
     <main>
         <div class="container tw_padding">
-            {% include 'application/fragments/fragment_flashed_messages.html' %}
+            {% include 'app_application/fragments/fragment_flashed_messages.html' %}
         </div>
         <div class="container tw_padding">
             {% block main_container %}{% endblock %}
diff --git a/src/covid19/blueprints/app_all/templates/app_all/navigation/app_all_navbar_dropdown.html b/src/covid19/blueprints/app_all/templates/app_all/navigation/app_all_navbar_dropdown.html
new file mode 100644
index 0000000000000000000000000000000000000000..4155fc29baf59332b5e8e358b456b0ac5198d160
--- /dev/null
+++ b/src/covid19/blueprints/app_all/templates/app_all/navigation/app_all_navbar_dropdown.html
@@ -0,0 +1,32 @@
+                <li class="dropdown">
+                    <a class="dropdown-toggle nav-link" data-toggle="dropdown" href="javascript:void(0)">
+                        Admin<i class="glyphicon glyphicon-chevron-down small"></i>
+                    </a>
+                    <ul class="dropdown-menu">
+                        <li>
+                            <a class="dropdown-item" href="{{ url_for( 'app_all.url_admin_index') }}">
+                                Admin
+                            </a>
+                        </li>
+                        <li>
+                            <div class="dropdown-divider"></div>
+                        </li>
+                        {% if current_user.is_authenticated %}
+                        <li>
+                            <a class="dropdown-item" href="{{ url_for( 'app_all.url_admin_tasks') }}">
+                                Admin Tasks
+                            </a>
+                        </li>
+                        {% endif %}
+                        <li>
+                            <a class="dropdown-item" href="{{ url_for( 'app_all.url_admin_info') }}">
+                                Admin info
+                            </a>
+                        </li>
+                        <li>
+                            <a class="dropdown-item" href="{{ url_for( 'app_all.url_admin_index') }}">
+                                Flask Admin (CRUD)
+                            </a>
+                        </li>
+                    </ul>
+                </li>
\ No newline at end of file
diff --git a/src/covid19/blueprints/app_all/templates/app_all/navigation/app_all_navtabs.html b/src/covid19/blueprints/app_all/templates/app_all/navigation/app_all_navtabs.html
new file mode 100644
index 0000000000000000000000000000000000000000..9b8a454a099ed798e8c2c9bf81b784d5c3032ef8
--- /dev/null
+++ b/src/covid19/blueprints/app_all/templates/app_all/navigation/app_all_navtabs.html
@@ -0,0 +1,21 @@
+
+    <div class="container">
+        <div class="row">
+            <div class="col">
+                <nav>
+                    <ul class="nav nav-tabs">
+                        {% if current_user.is_authenticated %}
+                        <li class="nav-item">
+                            <a class="nav-link"
+                               href="{{ url_for( 'app_all.url_admin_tasks') }}">Admin Tasks</a>
+                        </li>
+                        {% endif %}
+                        <li class="nav-item">
+                            <a class="nav-link"
+                               href="{{ url_for( 'app_all.url_admin_index') }}">Database CRUD (flask admin)</a>
+                        </li>
+                    </ul>
+                </nav>
+            </div>
+        </div>
+    </div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/__init__.py b/src/covid19/blueprints/app_application/__init__.py
similarity index 100%
rename from src/covid19/blueprints/rki/rki_bundeslaender/__init__.py
rename to src/covid19/blueprints/app_application/__init__.py
diff --git a/src/covid19/blueprints/application/application_model_transient.py b/src/covid19/blueprints/app_application/application_model_transient.py
similarity index 100%
rename from src/covid19/blueprints/application/application_model_transient.py
rename to src/covid19/blueprints/app_application/application_model_transient.py
diff --git a/src/covid19/blueprints/application/application_service.py b/src/covid19/blueprints/app_application/application_service.py
similarity index 99%
rename from src/covid19/blueprints/application/application_service.py
rename to src/covid19/blueprints/app_application/application_service.py
index 6e8f2200c3eb41088dbf9d98d18055b97fcee20f..17b5b6763fa37016cddb539bf9482fa1b0118d20 100644
--- a/src/covid19/blueprints/application/application_service.py
+++ b/src/covid19/blueprints/app_application/application_service.py
@@ -1,5 +1,6 @@
 from database import app
 
+
 class ApplicationService:
     def __init__(self, database, user_service):
         app.logger.debug("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/application/application_views.py b/src/covid19/blueprints/app_application/application_views.py
similarity index 51%
rename from src/covid19/blueprints/application/application_views.py
rename to src/covid19/blueprints/app_application/application_views.py
index 9aa4ef9059000cf68ffc626b886e3f2026f21344..d57c7526007b486679cba5de0dc765231b77e485 100644
--- a/src/covid19/blueprints/application/application_views.py
+++ b/src/covid19/blueprints/app_application/application_views.py
@@ -1,37 +1,46 @@
 from flask import render_template, redirect, url_for, Blueprint
 
 from database import app
-from covid19.blueprints.application.application_model_transient import ApplicationPage
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
+
+
+from covid19.blueprints.app_user.user_views import blueprint_app_user
+from covid19.blueprints.app_admin.app_admin_views import blueprint_app_admin
+from covid19.blueprints.app_all.all_views import blueprint_app_all
 
-from covid19.blueprints.admin.admin_views import app_admin
-from covid19.blueprints.ecdc.ecdc_views import app_ecdc
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_views import app_rki_bundeslaender
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_views import app_rki_landkreise
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_views import app_rki_vaccination
 from covid19.blueprints.who.who_views import app_who
 from covid19.blueprints.owid.owid_views import app_owid
-from covid19.blueprints.user.user_views import app_user
+from covid19.blueprints.ecdc.ecdc_views import app_ecdc
+from covid19.blueprints.rki_vaccination.rki_vaccination_views import app_rki_vaccination
+from covid19.blueprints.rki_cases.rki_views import app_rki
 from covid19.blueprints.intensivregister.divi_views import app_divi
-from covid19.blueprints.intensivregister_test.divi_test_views import app_divi_test
 
-from covid19.blueprints.owid_test.owid_test_views import app_owid_test
 from covid19.blueprints.who_test.who_test_views import app_who_test
+from covid19.blueprints.owid_test.owid_test_views import app_owid_test
+from covid19.blueprints.ecdc_test.ecdc_test_views import app_ecdc_test
+from covid19.blueprints.rki_cases_test.rki_test_views import app_rki_test
+from covid19.blueprints.intensivregister_test.divi_test_views import app_divi_test
 
-app_application = Blueprint('application', __name__, template_folder='templates', url_prefix='/')
+blueprint_application = Blueprint('application', __name__, template_folder='templates', url_prefix='/')
+
+app.register_blueprint(blueprint_application, url_prefix='/')
+
+app.register_blueprint(blueprint_app_user, url_prefix='/app/usr')
+app.register_blueprint(blueprint_app_admin, url_prefix='/app/admin')
+app.register_blueprint(blueprint_app_all, url_prefix='/app/all')
 
-app.register_blueprint(app_admin, url_prefix='/admin')
-app.register_blueprint(app_application, url_prefix='/application')
-app.register_blueprint(app_ecdc, url_prefix='/ecdc')
-app.register_blueprint(app_rki_bundeslaender, url_prefix='/rki/bundeslaender')
-app.register_blueprint(app_rki_landkreise, url_prefix='/rki/landkreise')
-app.register_blueprint(app_rki_vaccination, url_prefix='/rki/vaccination')
 app.register_blueprint(app_who, url_prefix='/who')
 app.register_blueprint(app_owid, url_prefix='/owid')
-app.register_blueprint(app_user, url_prefix='/usr')
+app.register_blueprint(app_ecdc, url_prefix='/ecdc')
+app.register_blueprint(app_rki_vaccination, url_prefix='/rki/vaccination')
+app.register_blueprint(app_rki, url_prefix='/rki/cases')
 app.register_blueprint(app_divi, url_prefix='/divi')
 
-app.register_blueprint(app_owid_test, url_prefix='/owid/test')
 app.register_blueprint(app_who_test, url_prefix='/who/test')
+app.register_blueprint(app_owid_test, url_prefix='/owid/test')
+app.register_blueprint(app_ecdc_test, url_prefix='/ecdc/test')
+# app.register_blueprint(app_rki_vaccination_test, url_prefix='/rki/vaccination/test')
+app.register_blueprint(app_rki_test, url_prefix='/rki/cases/test')
 app.register_blueprint(app_divi_test, url_prefix='/divi/test')
 
 
@@ -43,7 +52,7 @@ app.register_blueprint(app_divi_test, url_prefix='/divi/test')
 def url_home():
     page_info = ApplicationPage('Home', "Covid19 Data")
     return render_template(
-        'application/page_home.html',
+        'app_application/page_home.html',
         page_info=page_info)
 
 
diff --git a/src/covid19/blueprints/app_application/templates/app_application/fragments/fragment_flashed_messages.html b/src/covid19/blueprints/app_application/templates/app_application/fragments/fragment_flashed_messages.html
new file mode 100644
index 0000000000000000000000000000000000000000..b2b376229bec5e5bfa6b0a9c3e5a9beab518ec22
--- /dev/null
+++ b/src/covid19/blueprints/app_application/templates/app_application/fragments/fragment_flashed_messages.html
@@ -0,0 +1,38 @@
+<div class="fragment-flash-messages">
+{% with errors = get_flashed_messages(category_filter=["error"]) %}
+    {% if errors %}
+        {% for message in errors %}
+            <div class="alert alert-danger" role="alert">
+                <span>{{ message }}</span>
+                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+        {% endfor %}
+    {% endif %}
+{% endwith %}
+{% with errors = get_flashed_messages(category_filter=["warning"]) %}
+    {% if errors %}
+        {% for message in errors %}
+            <div class="alert alert-warning" role="alert">
+                <span>{{ message }}</span>
+                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+        {% endfor %}
+    {% endif %}
+{% endwith %}
+{% with messages = get_flashed_messages(category_filter=["message"]) %}
+    {% if messages %}
+        {% for message in messages %}
+            <div class="alert alert-success" role="alert">
+                <span>{{ message }}</span>
+                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+        {% endfor %}
+    {% endif %}
+{% endwith %}
+</div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/app_application/templates/app_application/fragments/fragment_pagination.html b/src/covid19/blueprints/app_application/templates/app_application/fragments/fragment_pagination.html
new file mode 100644
index 0000000000000000000000000000000000000000..65df8fa2b159e956b886312cff8639a6c3c37622
--- /dev/null
+++ b/src/covid19/blueprints/app_application/templates/app_application/fragments/fragment_pagination.html
@@ -0,0 +1,43 @@
+{% macro pagination_for_url( url_for_pagination ) -%}
+    <!-- previous page -->
+    <ul class="pagination">
+        {% if page_data.has_prev %}
+        <li class="page-item">
+            <a class="page-link"
+               href="{{ url_for( url_for_pagination, country_id=who_country.id, page=page_data.prev_num) }}">
+                Previous
+            </a>
+        </li>
+        {% endif %}
+        <!-- all page numbers -->
+        {% for page_num in page_data.iter_pages() %}
+            {% if page_num %}
+                {% if page_num != page_data.page %}
+                    <li class="page-item">
+                        <a class="page-link"
+                           href="{{ url_for( url_for_pagination, country_id=who_country.id, page=page_num) }}">
+                            {{ page_num }}
+                        </a>
+                    </li>
+                {% else %}
+                    <li class="page-item active">
+                        <a class="page-link" href="#">{{ page_num }}</a>
+                    </li>
+                {% endif %}
+           {% else %}
+               <li class="page-item">
+                   <span class="ellipsis page-link my-page-item-ellipsis-page-link">…</span>
+               </li>
+           {% endif %}
+        {% endfor %}
+        <!-- next page -->
+        {% if page_data.has_next %}
+        <li class="page-item">
+            <a class="page-link"
+               href="{{ url_for( url_for_pagination, country_id=who_country.id, page=page_data.next_num) }}">
+                Next
+            </a>
+        </li>
+        {% endif %}
+    </ul>
+{%- endmacro %}
\ No newline at end of file
diff --git a/src/covid19/blueprints/application/templates/application/navigation/navbar.html b/src/covid19/blueprints/app_application/templates/app_application/navigation/navbar.html
similarity index 89%
rename from src/covid19/blueprints/application/templates/application/navigation/navbar.html
rename to src/covid19/blueprints/app_application/templates/app_application/navigation/navbar.html
index 154f4a42546c3794ce9d40108c1392be407729a2..4754814e661c534f89a1e877d7dd26d90e469184 100644
--- a/src/covid19/blueprints/application/templates/application/navigation/navbar.html
+++ b/src/covid19/blueprints/app_application/templates/app_application/navigation/navbar.html
@@ -16,17 +16,19 @@
 
                     {% include 'who/navigation/who_navbar_dropdown.html' %}
 
-                    {% include 'divi/navigation/divi_navbar_dropdown.html' %}
+                    {% include 'owid/navigation/owid_navbar_dropdown.html' %}
 
                     {% include 'ecdc/navigation/ecdc_navbar_dropdown.html' %}
 
-                    {% include 'owid/navigation/owid_navbar_dropdown.html' %}
-
                     {% include 'rki_vaccination/navigation/rki_vaccination_navbar_dropdown.html' %}
 
+                    {% include 'rki/navigation/rki_navbar_dropdown.html' %}
+
+                    {% include 'divi/navigation/divi_navbar_dropdown.html' %}
+
                     {% include 'usr/navigation/usr_navbar_dropdown.html' %}
 
-                    {% include 'admin/navigation/admin_navbar_dropdown.html' %}
+                    {% include 'app_admin/navigation/app_admin_navbar_dropdown.html' %}
 
                 </ul>
             </div>
diff --git a/src/covid19/blueprints/application/templates/application/navigation/navtabs.html b/src/covid19/blueprints/app_application/templates/app_application/navigation/navtabs.html
similarity index 80%
rename from src/covid19/blueprints/application/templates/application/navigation/navtabs.html
rename to src/covid19/blueprints/app_application/templates/app_application/navigation/navtabs.html
index d4e1684086bf977db97950c000b4fc8e951ee693..142582967d7a35a3e36b0da40f9c47397ceac007 100644
--- a/src/covid19/blueprints/application/templates/application/navigation/navtabs.html
+++ b/src/covid19/blueprints/app_application/templates/app_application/navigation/navtabs.html
@@ -14,8 +14,8 @@
                     </li>
                     <li class="nav-item">
                         <a class="nav-link"
-                           href="{{ url_for( 'divi.url_divi_info') }}">
-                            DIVI
+                           href="{{ url_for( 'owid.url_owid_info') }}">
+                            OWID
                         </a>
                     </li>
                     <li class="nav-item">
@@ -26,14 +26,26 @@
                     </li>
                     <li class="nav-item">
                         <a class="nav-link"
-                           href="{{ url_for( 'owid.url_owid_info') }}">
-                            OWID
+                           href="{{ url_for( 'rki_vaccination.url_vaccination_info') }}">
+                            RKI Vaccination
                         </a>
                     </li>
                     <li class="nav-item">
                         <a class="nav-link"
-                           href="{{ url_for( 'rki_vaccination.url_vaccination_info') }}">
-                            RKI Vaccination
+                           href="{{ url_for( 'rki.url_rki_info') }}">
+                            RKI
+                        </a>
+                    </li>
+                    <li class="nav-item">
+                        <a class="nav-link"
+                           href="{{ url_for( 'divi.url_divi_info') }}">
+                            DIVI
+                        </a>
+                    </li>
+                    <li class="nav-item">
+                        <a class="nav-link"
+                           href="{{ url_for( 'app_all.url_admin_tasks') }}">
+                            All
                         </a>
                     </li>
                     <li class="nav-item">
diff --git a/src/covid19/blueprints/application/templates/application/page_home.html b/src/covid19/blueprints/app_application/templates/app_application/page_home.html
similarity index 90%
rename from src/covid19/blueprints/application/templates/application/page_home.html
rename to src/covid19/blueprints/app_application/templates/app_application/page_home.html
index 2c42f67b0b8c021db72aca405c195dd1d48b9368..30bca9edcbfea68203177cb281e76a8c24b171b8 100644
--- a/src/covid19/blueprints/application/templates/application/page_home.html
+++ b/src/covid19/blueprints/app_application/templates/app_application/page_home.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/templates/__init__.py b/src/covid19/blueprints/app_mq/__init__.py
similarity index 100%
rename from src/covid19/blueprints/rki/rki_bundeslaender/templates/__init__.py
rename to src/covid19/blueprints/app_mq/__init__.py
diff --git a/src/covid19/blueprints/application/application_workers.py b/src/covid19/blueprints/app_mq/application_workers.py
similarity index 68%
rename from src/covid19/blueprints/application/application_workers.py
rename to src/covid19/blueprints/app_mq/application_workers.py
index 51fbe15c1772da2f67973d84e83daef67a0d0a47..3c0be69de70756d8074ac86fe59044cf885b82d9 100644
--- a/src/covid19/blueprints/application/application_workers.py
+++ b/src/covid19/blueprints/app_mq/application_workers.py
@@ -1,8 +1,8 @@
 import sys
 from covid19 import app
 from database import create_celery, db
-from covid19.blueprints.application.application_services import user_service
-from covid19.blueprints.application.application_service import ApplicationService
+from covid19.blueprints.app_all.all_services import app_user_service
+from covid19.blueprints.app_application.application_service import ApplicationService
 
 
 def start_redis(application_service):
@@ -13,7 +13,7 @@ def start_redis(application_service):
 
 
 def run_mq(my_app, my_celery):
-    application_service = ApplicationService(db, user_service)
+    application_service = ApplicationService(db, app_user_service)
     start_redis(application_service)
     application_service.prepare_run_mq()
     args = ['worker', '-l', 'INFO']
diff --git a/src/covid19/blueprints/rki/rki_landkreise/__init__.py b/src/covid19/blueprints/app_user/__init__.py
similarity index 100%
rename from src/covid19/blueprints/rki/rki_landkreise/__init__.py
rename to src/covid19/blueprints/app_user/__init__.py
diff --git a/src/covid19/blueprints/rki/rki_landkreise/templates/__init__.py b/src/covid19/blueprints/app_user/templates/__init__.py
similarity index 100%
rename from src/covid19/blueprints/rki/rki_landkreise/templates/__init__.py
rename to src/covid19/blueprints/app_user/templates/__init__.py
diff --git a/src/covid19/blueprints/user/templates/usr/login.html b/src/covid19/blueprints/app_user/templates/usr/login.html
similarity index 98%
rename from src/covid19/blueprints/user/templates/usr/login.html
rename to src/covid19/blueprints/app_user/templates/usr/login.html
index cba0f3dcb4429d10a5e0e6e0a395c68eb178ca69..e6573c294f6e25299711ac3735aa49822017d5f6 100644
--- a/src/covid19/blueprints/user/templates/usr/login.html
+++ b/src/covid19/blueprints/app_user/templates/usr/login.html
@@ -1,5 +1,4 @@
-{% extends 'application/page_layout.html' %}
-
+{% extends 'app_all/layout/page_layout.html' %}
 {% block content %}
     {{super()}}
     {% include 'usr/navigation/usr_navtabs.html' %}
diff --git a/src/covid19/blueprints/user/templates/usr/navigation/usr_navbar_dropdown.html b/src/covid19/blueprints/app_user/templates/usr/navigation/usr_navbar_dropdown.html
similarity index 100%
rename from src/covid19/blueprints/user/templates/usr/navigation/usr_navbar_dropdown.html
rename to src/covid19/blueprints/app_user/templates/usr/navigation/usr_navbar_dropdown.html
diff --git a/src/covid19/blueprints/user/templates/usr/navigation/usr_navtabs.html b/src/covid19/blueprints/app_user/templates/usr/navigation/usr_navtabs.html
similarity index 100%
rename from src/covid19/blueprints/user/templates/usr/navigation/usr_navtabs.html
rename to src/covid19/blueprints/app_user/templates/usr/navigation/usr_navtabs.html
diff --git a/src/covid19/blueprints/user/templates/usr/profile.html b/src/covid19/blueprints/app_user/templates/usr/profile.html
similarity index 85%
rename from src/covid19/blueprints/user/templates/usr/profile.html
rename to src/covid19/blueprints/app_user/templates/usr/profile.html
index dbcf3c5165a09426f7200495e7a30dab070d1e52..202fa8fa04565c52f84cfaf7aca45cfd7cc666f2 100644
--- a/src/covid19/blueprints/user/templates/usr/profile.html
+++ b/src/covid19/blueprints/app_user/templates/usr/profile.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/user/templates/usr/user_info.html b/src/covid19/blueprints/app_user/templates/usr/user_info.html
similarity index 88%
rename from src/covid19/blueprints/user/templates/usr/user_info.html
rename to src/covid19/blueprints/app_user/templates/usr/user_info.html
index 66af388f4d8a1701e59594d7915efdef1d187a72..6bf18411f42acd9c07f73e6be8bb53e48020e46a 100644
--- a/src/covid19/blueprints/user/templates/usr/user_info.html
+++ b/src/covid19/blueprints/app_user/templates/usr/user_info.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/user/templates/usr/user_tasks.html b/src/covid19/blueprints/app_user/templates/usr/user_tasks.html
similarity index 97%
rename from src/covid19/blueprints/user/templates/usr/user_tasks.html
rename to src/covid19/blueprints/app_user/templates/usr/user_tasks.html
index 868afa3cc2450d7681c83b58815b2e5422e8dec0..55d5a8d7725d35d98420952dd7bea09e986cbf2d 100644
--- a/src/covid19/blueprints/user/templates/usr/user_tasks.html
+++ b/src/covid19/blueprints/app_user/templates/usr/user_tasks.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/user/templates/usr/usr_table.html b/src/covid19/blueprints/app_user/templates/usr/usr_table.html
similarity index 100%
rename from src/covid19/blueprints/user/templates/usr/usr_table.html
rename to src/covid19/blueprints/app_user/templates/usr/usr_table.html
diff --git a/src/covid19/blueprints/user/user_model.py b/src/covid19/blueprints/app_user/user_model.py
similarity index 100%
rename from src/covid19/blueprints/user/user_model.py
rename to src/covid19/blueprints/app_user/user_model.py
diff --git a/src/covid19/blueprints/user/user_service.py b/src/covid19/blueprints/app_user/user_service.py
similarity index 94%
rename from src/covid19/blueprints/user/user_service.py
rename to src/covid19/blueprints/app_user/user_service.py
index 240d6acfafc26b01f370996a56acf7edf3ac600a..c4a503f2fc711a8b495cc0bd361e0f94794b7d95 100644
--- a/src/covid19/blueprints/user/user_service.py
+++ b/src/covid19/blueprints/app_user/user_service.py
@@ -1,5 +1,5 @@
 from database import app
-from covid19.blueprints.user.user_model import User, LoginForm
+from covid19.blueprints.app_user.user_model import User, LoginForm
 
 
 class UserService:
diff --git a/src/covid19/blueprints/user/user_views.py b/src/covid19/blueprints/app_user/user_views.py
similarity index 75%
rename from src/covid19/blueprints/user/user_views.py
rename to src/covid19/blueprints/app_user/user_views.py
index e1b15b42130a68881a3f33e2baf2dd74a45eee2e..4a9a5587ea423a152a957f9202c88c63c50b61a2 100644
--- a/src/covid19/blueprints/user/user_views.py
+++ b/src/covid19/blueprints/app_user/user_views.py
@@ -8,13 +8,13 @@ import flask
 
 from database import admin, db, login_manager
 
-from covid19.blueprints.user.user_model import User, LoginForm
-from covid19.blueprints.application.application_model_transient import ApplicationPage
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
+from covid19.blueprints.app_user.user_model import User, LoginForm
 
 
-app_user = Blueprint('usr', __name__, template_folder='templates', url_prefix='/usr')
+blueprint_app_user = Blueprint('usr', __name__, template_folder='templates', url_prefix='/app/usr')
 
-admin.add_view(ModelView(User, db.session, category="usr"))
+admin.add_view(ModelView(User, db.session, category="USR"))
 
 
 # ---------------------------------------------------------------------------------------------------------------
@@ -22,7 +22,7 @@ admin.add_view(ModelView(User, db.session, category="usr"))
 # ---------------------------------------------------------------------------------------------------------------
 
 
-@app_user.route('/login', methods=['GET'])
+@blueprint_app_user.route('/login', methods=['GET'])
 def login_form():
     page_info = ApplicationPage('usr', "Login")
     if current_user.is_authenticated:
@@ -31,9 +31,9 @@ def login_form():
     return flask.render_template('usr/login.html', form=form, page_info=page_info)
 
 
-@app_user.route('/login', methods=['POST'])
+@blueprint_app_user.route('/login', methods=['POST'])
 def login():
-    page_info = ApplicationPage('usr', "Login")
+    page_info = ApplicationPage('USR', "Login")
     if current_user.is_authenticated:
         return redirect(url_for('usr.profile'))
     form = LoginForm()
@@ -47,14 +47,14 @@ def login():
     return flask.render_template('usr/login.html', form=form, page_info=page_info)
 
 
-@app_user.route("/profile")
+@blueprint_app_user.route("/profile")
 @login_required
 def profile():
-    page_info = ApplicationPage('usr', "profile")
+    page_info = ApplicationPage('USR', "profile")
     return flask.render_template('usr/profile.html', page_info=page_info)
 
 
-@app_user.route("/logout")
+@blueprint_app_user.route("/logout")
 @login_required
 def logout():
     logout_user()
@@ -75,10 +75,11 @@ def unauthorized():
 #  Url Routes Frontend
 # ---------------------------------------------------------------------------------------------------------------
 
-@app_user.route('/info/page/<int:page>')
-@app_user.route('/info')
+
+@blueprint_app_user.route('/info/page/<int:page>')
+@blueprint_app_user.route('/info')
 def url_user_info(page=1):
-    page_info = ApplicationPage('usr', "Info")
+    page_info = ApplicationPage('USR', "Info")
     try:
         page_data = User.get_all_as_page(page)
     except OperationalError:
@@ -90,9 +91,9 @@ def url_user_info(page=1):
         page_info=page_info)
 
 
-@app_user.route('/tasks')
+@blueprint_app_user.route('/tasks')
 def url_user_tasks():
-    page_info = ApplicationPage('usr', "Tasks")
+    page_info = ApplicationPage('USR', "Tasks")
     return render_template(
         'usr/user_tasks.html',
         page_info=page_info)
diff --git a/src/covid19/blueprints/application/application_services.py b/src/covid19/blueprints/application/application_services.py
deleted file mode 100644
index 514cfb76ac4c8de2204a887a43ce5a115786176a..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/application/application_services.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from database import db
-
-from covid19.blueprints.admin.admin_service import AdminService
-from covid19.blueprints.ecdc.ecdc_service import EcdcService
-from covid19.blueprints.owid.owid_service import OwidService
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_service import RkiBundeslaenderService
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_service import RkiLandkreiseService
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_service import RkiVaccinationService
-from covid19.blueprints.who.who_service import WhoService
-from covid19.blueprints.user.user_service import UserService
-from covid19.blueprints.intensivregister.divi_service import DiviService
-
-############################################################################################
-#
-# Services
-#
-admin_service = AdminService(db)
-ecdc_service = EcdcService(db)
-owid_service = OwidService(db)
-rki_service_bundeslaender = RkiBundeslaenderService(db)
-rki_service_landkreise = RkiLandkreiseService(db)
-rki_vaccination_service = RkiVaccinationService(db)
-who_service = WhoService(db)
-user_service = UserService(db)
-divi_service = DiviService(db)
-db.create_all()
diff --git a/src/covid19/blueprints/ecdc/ecdc_model.py b/src/covid19/blueprints/ecdc/ecdc_model.py
index 3d82d4fe9de24cb494612105f42584e6f329442d..d7127da319d1f6db0b16e6520c4b16e91a586f86 100644
--- a/src/covid19/blueprints/ecdc/ecdc_model.py
+++ b/src/covid19/blueprints/ecdc/ecdc_model.py
@@ -1,6 +1,6 @@
 from sqlalchemy import and_
 from database import db, ITEMS_PER_PAGE
-from covid19.blueprints.application.application_model import ApplicationDateReported, ApplicationRegion
+from covid19.blueprints.app_all.all_model import ApplicationDateReported, ApplicationRegion
 
 
 class EcdcDateReported(ApplicationDateReported):
@@ -119,10 +119,13 @@ class EcdcCountry(db.Model):
 
     @classmethod
     def remove_all(cls):
-        for one in cls.get_all():
-            db.session.delete(one)
-        db.session.commit()
-        return None
+        num_rows_deleted = 0
+        try:
+            num_rows_deleted = db.session.query(cls).delete()
+            db.session.commit()
+        except Exception:
+            db.session.rollback()
+        return num_rows_deleted
 
     @classmethod
     def get_all_as_page(cls, page):
@@ -209,10 +212,13 @@ class EcdcData(db.Model):
 
     @classmethod
     def remove_all(cls):
-        for one in cls.get_all():
-            db.session.delete(one)
-        db.session.commit()
-        return None
+        num_rows_deleted = 0
+        try:
+            num_rows_deleted = db.session.query(cls).delete()
+            db.session.commit()
+        except Exception:
+            db.session.rollback()
+        return num_rows_deleted
 
     @classmethod
     def get_all_as_page(cls, page):
diff --git a/src/covid19/blueprints/ecdc/ecdc_model_import.py b/src/covid19/blueprints/ecdc/ecdc_model_import.py
index 1aacdf88fb39801c2a495d37b5fee444a3965ea2..fba66476d352f72928a1e5d1c0248fcca4ee5e6d 100644
--- a/src/covid19/blueprints/ecdc/ecdc_model_import.py
+++ b/src/covid19/blueprints/ecdc/ecdc_model_import.py
@@ -6,9 +6,9 @@ class EcdcImport(db.Model):
 
     id = db.Column(db.Integer, primary_key=True)
     date_rep = db.Column(db.String(255), nullable=False)
-    day = db.Column(db.String(255), nullable=False)
-    month = db.Column(db.String(255), nullable=False)
-    year = db.Column(db.String(255), nullable=False)
+    date_rep_day = db.Column(db.String(255), nullable=False)
+    date_rep_month = db.Column(db.String(255), nullable=False)
+    date_rep_year = db.Column(db.String(255), nullable=False)
     cases = db.Column(db.String(255), nullable=False)
     deaths = db.Column(db.String(255), nullable=False)
     pop_data_2019 = db.Column(db.String(255), nullable=False)
@@ -17,29 +17,39 @@ class EcdcImport(db.Model):
     country_territory_code = db.Column(db.String(255), nullable=False)
     continent_exp = db.Column(db.String(255), nullable=False)
     cumulative_number_for_14_days_of_covid19_cases_per_100000 = db.Column(db.String(255), nullable=False)
+    datum = db.Column(db.Date, nullable=False)
+    year = db.Column(db.Integer, nullable=False)
+    month = db.Column(db.Integer, nullable=False)
+    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)
+    year_week = db.Column(db.String(255), nullable=False)
 
     @classmethod
     def remove_all(cls):
-        for one in cls.get_all():
-            db.session.delete(one)
-        db.session.commit()
-        return None
+        num_rows_deleted = 0
+        try:
+            num_rows_deleted = db.session.query(cls).delete()
+            db.session.commit()
+        except Exception:
+            db.session.rollback()
+        return num_rows_deleted
 
     @classmethod
     def get_all_as_page(cls, page: int):
         return db.session.query(cls).order_by(
-            cls.year,
-            cls.month,
-            cls.day,
+            cls.date_rep_year,
+            cls.date_rep_month,
+            cls.date_rep_day,
             cls.countries_and_territories
         ).paginate(page, per_page=ITEMS_PER_PAGE)
 
     @classmethod
     def get_all(cls):
         return db.session.query(cls).order_by(
-            cls.year,
-            cls.month,
-            cls.day,
+            cls.date_rep_year,
+            cls.date_rep_month,
+            cls.date_rep_day,
             cls.countries_and_territories
         ).all()
 
diff --git a/src/covid19/blueprints/ecdc/ecdc_service.py b/src/covid19/blueprints/ecdc/ecdc_service.py
index 6978f07b87b17763444ea02767065cb96a71664b..3bcde8a62e9990ff915b3d12e6696c41d514c8d8 100644
--- a/src/covid19/blueprints/ecdc/ecdc_service.py
+++ b/src/covid19/blueprints/ecdc/ecdc_service.py
@@ -1,10 +1,8 @@
-from flask import flash
-
 from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_service_download import ApplicationServiceDownload
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_download import ApplicationServiceDownload
 from covid19.blueprints.ecdc.ecdc_service_import import EcdcServiceImport
-from covid19.blueprints.ecdc.ecdc_service_update import EcdcServiceUpdate
+from covid19.blueprints.ecdc.ecdc_service_update import EcdcServiceUpdate, EcdcServiceUpdateFull
 
 
 class EcdcService:
@@ -17,22 +15,17 @@ class EcdcService:
         self.service_download = ApplicationServiceDownload(database, self.cfg)
         self.service_import = EcdcServiceImport(database, self.cfg)
         self.service_update = EcdcServiceUpdate(database, self.cfg)
+        self.service_update_full = EcdcServiceUpdateFull(database, self.cfg)
         app.logger.debug("------------------------------------------------------------")
         app.logger.info(" ECDC Service [ready] ")
 
     def pretask_database_drop_create(self):
-        flash("ecdc_service.download started")
-        app.logger.info("ecdc_service.download started")
         self.service_download.download_file()
-        app.logger.info("ecdc_service.download done")
-        flash("ecdc_service.download done")
         return self
 
     def task_database_drop_create(self):
-        app.logger.info("ecdc_service.task_database_drop_create started")
         self.service_import.import_file()
-        self.service_update.update_star_schema_initial()
-        app.logger.info("ecdc_service.task_database_drop_create done")
+        self.service_update_full.full_update_star_schema()
         return self
 
     def run_download_only(self):
@@ -43,48 +36,48 @@ class EcdcService:
         self.service_import.import_file()
         return self
 
-    def full_update_dimension_tables(self):
-        # self.service_update_full.full_update_dimension_tables()
+    def run_full_update_dimension_tables(self):
+        self.service_update_full.full_update_dimension_tables()
         return self
 
-    def run_update_dimension_tables_only(self):
-        self.service_update.update_dimension_tables_only()
+    def run_update_dimension_tables(self):
+        self.service_update.update_dimension_tables()
         return self
 
-    def run_update_fact_table_incremental_only(self):
-        self.service_update.update_fact_table_incremental_only()
+    def run_update_fact_table(self):
+        self.service_update.update_fact_table()
         return self
 
-    def run_update_fact_table_initial_only(self):
-        self.service_update.update_fact_table_initial_only()
+    def run_full_update_fact_table(self):
+        self.service_update_full.full_update_fact_table()
         return self
 
-    def run_update_star_schema_incremental(self):
+    def run_update_star_schema(self):
         self.service_import.import_file()
-        self.service_update.update_star_schema_incremental()
+        self.service_update.update_star_schema()
         return self
 
-    def run_update_star_schema_initial(self):
+    def task_admin_full_update_star_schema(self):
         self.service_import.import_file()
-        self.service_update.update_star_schema_initial()
+        self.service_update_full.full_update_star_schema()
         return self
 
     def download_all_files(self):
         self.service_download.download_file()
         return self
 
-    def task_import_all_files(self):
+    def task_admin_import_all_files(self):
         self.service_import.import_file()
         return self
 
-    def update_dimension_tables_only(self):
-        self.service_update.update_dimension_tables_only()
+    def task_admin_update_dimension_tables(self):
+        self.service_update.update_dimension_tables()
         return self
 
     def update_fact_table_initial_only(self):
-        self.service_update.update_fact_table_initial_only()
+        self.service_update_full.full_update_fact_table()
         return self
 
     def update_fact_table_incremental_only(self):
-        self.service_update.update_fact_table_incremental_only()
+        self.service_update.update_fact_table()
         return self
diff --git a/src/covid19/blueprints/ecdc/ecdc_service_import.py b/src/covid19/blueprints/ecdc/ecdc_service_import.py
index a56b1a666004845b33d2f5cc6d1162abe4587450..6c19fca07733dfac733b30b7b43db5813857fb13 100644
--- a/src/covid19/blueprints/ecdc/ecdc_service_import.py
+++ b/src/covid19/blueprints/ecdc/ecdc_service_import.py
@@ -2,7 +2,8 @@ import csv
 import psycopg2
 
 from database import db, app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.ecdc.ecdc_model import EcdcDateReported
 from covid19.blueprints.ecdc.ecdc_model_import import EcdcImport
 
 
@@ -27,11 +28,13 @@ class EcdcServiceImport:
             with open(self.cfg.cvsfile_path, newline='') as csv_file:
                 file_reader = csv.DictReader(csv_file, delimiter=',', quotechar='"')
                 for row in file_reader:
+                    date_rep = row['dateRep']
+                    d = EcdcDateReported.create_new_object_factory(my_date_rep=date_rep)
                     o = EcdcImport(
-                        date_rep=row['dateRep'],
-                        day=row['day'],
-                        month=row['month'],
-                        year=row['year'],
+                        date_rep=date_rep,
+                        date_rep_day=row['day'],
+                        date_rep_month=row['month'],
+                        date_rep_year=row['year'],
                         cases=row['cases'],
                         deaths=row['deaths'],
                         countries_and_territories=row['countriesAndTerritories'],
@@ -40,7 +43,14 @@ class EcdcServiceImport:
                         pop_data_2019=row['popData2019'],
                         continent_exp=row['continentExp'],
                         cumulative_number_for_14_days_of_covid19_cases_per_100000
-                        =row['Cumulative_number_for_14_days_of_COVID-19_cases_per_100000']
+                        =row['Cumulative_number_for_14_days_of_COVID-19_cases_per_100000'],
+                        datum=d.datum,
+                        year=d.year,
+                        month=d.month,
+                        day_of_month=d.day_of_month,
+                        day_of_week=d.day_of_week,
+                        week_of_year=d.day_of_week,
+                        year_week=d.year_week
                     )
                     db.session.add(o)
                     k = k + 1
diff --git a/src/covid19/blueprints/ecdc/ecdc_service_update.py b/src/covid19/blueprints/ecdc/ecdc_service_update.py
index 3ae12a06130e7d3149c3633ba75bb9bb420bc4bd..102bba879a74f6a9f53050807209a6bc2f20e13b 100644
--- a/src/covid19/blueprints/ecdc/ecdc_service_update.py
+++ b/src/covid19/blueprints/ecdc/ecdc_service_update.py
@@ -1,10 +1,10 @@
 from database import db, app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 from covid19.blueprints.ecdc.ecdc_model_import import EcdcImport
 from covid19.blueprints.ecdc.ecdc_model import EcdcDateReported, EcdcContinent, EcdcCountry, EcdcData
 
 
-class EcdcServiceUpdate:
+class EcdcServiceUpdateBase:
     def __init__(self, database, config: ApplicationServiceConfig):
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" ECDC Service Update [init]")
@@ -14,6 +14,201 @@ class EcdcServiceUpdate:
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" ECDC Service Update [ready] ")
 
+
+class EcdcServiceUpdateFull(EcdcServiceUpdateBase):
+
+    def __full_update_date_reported(self):
+        app.logger.info(" __full_update_date_reported [begin]")
+        app.logger.info("------------------------------------------------------------")
+        EcdcData.remove_all()
+        EcdcDateReported.remove_all()
+        result_date_rep = EcdcImport.get_date_rep()
+        k = 0
+        for result_item in result_date_rep:
+            k += 1
+            my_date_rep = result_item[0]
+            o = EcdcDateReported.create_new_object_factory(
+                my_date_rep=my_date_rep
+            )
+            db.session.add(o)
+            app.logger.info("| full update date_reported " + str(o) + " | " + str(k) + " rows ")
+        db.session.commit()
+        app.logger.info(" __full_update_date_reported [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
+    def __full_update_continent(self):
+        app.logger.info(" __full_update_continent [begin]")
+        app.logger.info("------------------------------------------------------------")
+        EcdcContinent.remove_all()
+        result_continent = EcdcImport.get_continent()
+        for result_item in result_continent:
+            my_continent_exp = result_item[0]
+            o = EcdcContinent(
+                region=my_continent_exp
+            )
+            app.logger.info(" full update continent | " + str(o) + " |")
+            db.session.add(o)
+        db.session.commit()
+        app.logger.info(" __full_update_continent [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
+    def __full_update_country(self):
+        app.logger.info(" __full_update_country [begin]")
+        app.logger.info("------------------------------------------------------------")
+        EcdcData.remove_all()
+        EcdcCountry.remove_all()
+        self.__full_update_continent()
+        all_continents = EcdcContinent.get_all()
+        for my_continent in all_continents:
+            result_countries_of_continent = EcdcImport.get_countries_of_continent(my_continent)
+            for c in result_countries_of_continent:
+                o = EcdcCountry(
+                    countries_and_territories=c[0],
+                    pop_data_2019=c[1],
+                    geo_id=c[2],
+                    country_territory_code=c[3],
+                    continent=my_continent)
+                app.logger.info(" full update country | " + str(o) + " |")
+                db.session.add(o)
+        db.session.commit()
+        app.logger.info(" __full_update_country [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
+    def __get_date_reported_from_import(self):
+        dict_date_reported_from_import = {}
+        result_date_str_from_ecdc_import = EcdcImport.get_date_rep()
+        for item_date_str_from_ecdc_import in result_date_str_from_ecdc_import:
+            item_date_str_from_ecdc_import_str = str(item_date_str_from_ecdc_import[0])
+            app.logger.info(item_date_str_from_ecdc_import_str)
+            my_date_reported_search_str = EcdcDateReported.get_date_format_from_ecdc_import_format(
+                date_reported_ecdc_import_fomat=item_date_str_from_ecdc_import_str
+            )
+            app.logger.debug(my_date_reported_search_str)
+            my_ecdc_date_reported_obj = EcdcDateReported.find_by_date_reported(
+                p_date_reported=my_date_reported_search_str
+            )
+            if my_ecdc_date_reported_obj is None:
+                my_ecdc_date_reported_obj = EcdcDateReported.create_new_object_factory(
+                    my_date_rep=item_date_str_from_ecdc_import_str
+                )
+                db.session.add(my_ecdc_date_reported_obj)
+                db.session.commit()
+            my_ecdc_date_reported_obj = EcdcDateReported.get_by_date_reported(
+                p_date_reported=my_date_reported_search_str
+            )
+            dict_date_reported_from_import[item_date_str_from_ecdc_import_str] = my_ecdc_date_reported_obj
+        return dict_date_reported_from_import
+
+    def __get_continent_from_import(self, ecdc_import: EcdcImport):
+        my_a = ecdc_import.continent_exp
+        ecdc_continent = EcdcContinent.find_by_region(my_a)
+        if ecdc_continent in None:
+            ecdc_continent = EcdcContinent(region=my_a)
+            db.session.add(ecdc_continent)
+            db.session.commit()
+        ecdc_continent = EcdcContinent.find_by_region(my_a)
+        return ecdc_continent
+
+    def __get_country_from_import(self, ecdc_import: EcdcImport):
+        my_countries_and_territories = ecdc_import.countries_and_territories
+        my_geo_id = ecdc_import.geo_id
+        my_country_territory_code = ecdc_import.country_territory_code
+        my_pop_data_2019 = ecdc_import.pop_data_2019
+        ecdc_country = EcdcCountry.find_by(
+            countries_and_territories=my_countries_and_territories,
+            geo_id=my_geo_id,
+            country_territory_code=my_country_territory_code
+        )
+        if ecdc_country is None:
+            my_continent = self.__get_continent_from_import(ecdc_import)
+            app.logger.info(my_continent.id + " "+my_continent.region)
+            o = EcdcCountry(
+                countries_and_territories=my_countries_and_territories,
+                pop_data_2019=my_pop_data_2019,
+                geo_id=my_geo_id,
+                country_territory_code=my_country_territory_code,
+                continent=my_continent
+            )
+            db.session.add(o)
+            db.session.commit()
+            ecdc_country = EcdcCountry.get_by(
+                countries_and_territories=my_countries_and_territories,
+                geo_id=my_geo_id,
+                country_territory_code=my_country_territory_code
+            )
+        return ecdc_country
+
+    def __full_update_data(self):
+        app.logger.info(" __update_data_initial [begin]")
+        app.logger.info("------------------------------------------------------------")
+        EcdcData.remove_all()
+        i = 0
+        k = 0
+        d = 0
+        dict_date_reported_from_import = self.__get_date_reported_from_import()
+        for my_date_reported in dict_date_reported_from_import.keys():
+            ecdc_datereported = dict_date_reported_from_import[my_date_reported]
+            d += 1
+            for ecdc_import in EcdcImport.find_by_date_reported(my_date_reported):
+                ecdc_country = self.__get_country_from_import(ecdc_import)
+                my_deaths = int(ecdc_import.deaths)
+                my_cases = int(ecdc_import.cases)
+                if ecdc_import.cumulative_number_for_14_days_of_covid19_cases_per_100000 == '':
+                    my_cumulative_number = 0.0
+                else:
+                    my_cumulative_number = \
+                        float(ecdc_import.cumulative_number_for_14_days_of_covid19_cases_per_100000)
+                o = EcdcData(
+                    ecdc_country=ecdc_country,
+                    ecdc_datereported=ecdc_datereported,
+                    deaths=my_deaths,
+                    cases=my_cases,
+                    cumulative_number_for_14_days_of_covid19_cases_per_100000=my_cumulative_number
+                )
+                db.session.add(o)
+                i += 1
+                k += 1
+            if d % 7 == 0:
+                app.logger.info(" full update EDCD ... " + str(i) + " rows for " + str(ecdc_datereported) + " ("+str(k)+")")
+                k = 0
+                db.session.commit()
+        db.session.commit()
+        app.logger.info(" update ECDC initial ... " + str(i) + " rows total")
+        app.logger.info(" __update_data_initial [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
+    def full_update_fact_table(self):
+        self.__full_update_data()
+        return self
+
+    def full_update_dimension_tables(self):
+        EcdcData.remove_all()
+        EcdcCountry.remove_all()
+        EcdcContinent.remove_all()
+        EcdcDateReported.remove_all()
+        self.__full_update_date_reported()
+        self.__full_update_continent()
+        self.__full_update_country()
+        return self
+
+    def full_update_star_schema(self):
+        EcdcData.remove_all()
+        EcdcCountry.remove_all()
+        EcdcContinent.remove_all()
+        EcdcDateReported.remove_all()
+        self.__full_update_date_reported()
+        self.__full_update_continent()
+        self.__full_update_country()
+        self.__full_update_data()
+        return self
+
+
+class EcdcServiceUpdate(EcdcServiceUpdateBase):
+
     def __update_date_reported(self):
         app.logger.info(" __update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
@@ -141,7 +336,16 @@ class EcdcServiceUpdate:
             dict_date_reported_from_import[item_date_str_from_ecdc_import_str] = my_ecdc_date_reported_obj
         return dict_date_reported_from_import
 
-    def __update_data_initial(self):
+    def update_dimension_tables(self):
+        EcdcData.remove_all()
+        EcdcCountry.remove_all()
+        EcdcContinent.remove_all()
+        self.__update_date_reported()
+        self.__update_continent()
+        self.__update_country()
+        return self
+
+    def __update_data(self):
         app.logger.info(" __update_data_initial [begin]")
         app.logger.info("------------------------------------------------------------")
         EcdcData.remove_all()
@@ -176,24 +380,11 @@ class EcdcServiceUpdate:
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def update_dimension_tables_only(self):
-        EcdcData.remove_all()
-        EcdcCountry.remove_all()
-        EcdcContinent.remove_all()
-        self.__update_date_reported()
-        self.__update_continent()
-        self.__update_country()
-        return self
-
-    def update_fact_table_incremental_only(self):
-        self.__update_data_initial()
-        return self
-
-    def update_fact_table_initial_only(self):
-        self.__update_data_initial()
+    def update_fact_table(self):
+        self.__update_data()
         return self
 
-    def update_star_schema_incremental(self):
+    def update_star_schema(self):
         EcdcData.remove_all()
         EcdcCountry.remove_all()
         EcdcContinent.remove_all()
@@ -201,16 +392,6 @@ class EcdcServiceUpdate:
         self.__update_date_reported()
         self.__update_continent()
         self.__update_country()
-        self.__update_data_initial()
+        self.__update_data()
         return self
 
-    def update_star_schema_initial(self):
-        EcdcData.remove_all()
-        EcdcCountry.remove_all()
-        EcdcContinent.remove_all()
-        EcdcDateReported.remove_all()
-        self.__update_date_reported()
-        self.__update_continent()
-        self.__update_country()
-        self.__update_data_initial()
-        return self
diff --git a/src/covid19/blueprints/ecdc/ecdc_views.py b/src/covid19/blueprints/ecdc/ecdc_views.py
index a7e011edf9d0beba1cf81fd1f0672e43532ad2d3..438851cf54bb6547e0499c3dcf86b2c2d39bb66c 100644
--- a/src/covid19/blueprints/ecdc/ecdc_views.py
+++ b/src/covid19/blueprints/ecdc/ecdc_views.py
@@ -4,12 +4,15 @@ from celery.utils.log import get_task_logger
 from flask_admin.contrib.sqla import ModelView
 
 from database import admin, db
-from covid19.blueprints.application.application_services import ecdc_service
-from covid19.blueprints.application.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
 
 from covid19.blueprints.ecdc.ecdc_model_import import EcdcImport
 from covid19.blueprints.ecdc.ecdc_model import EcdcDateReported, EcdcContinent, EcdcCountry, EcdcData
-from covid19.blueprints.application.application_model_transient import ApplicationPage
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 
 
 app_ecdc = Blueprint('ecdc', __name__, template_folder='templates', url_prefix='/ecdc')
@@ -176,106 +179,119 @@ def url_ecdc_country_germany(page=1):
 
 
 @celery.task(bind=True)
-def task_ecdc_download_only(self):
+def task_ecdc_import(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_ecdc_download_only [OK] ")
+    logger.info(" Received: task_ecdc_import [OK] ")
     logger.info("------------------------------------------------------------")
-    ecdc_service.run_download_only()
+    ecdc_service.run_import_only()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_ecdc_download_only)"
+    result = "OK (task_ecdc_import)"
     return result
 
 
 @celery.task(bind=True)
-def task_ecdc_import_only(self):
+def task_ecdc_full_update_dimension_tables(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_ecdc_import_only [OK] ")
+    logger.info(" Received: task_ecdc_full_update_dimension_tables [OK] ")
     logger.info("------------------------------------------------------------")
-    ecdc_service.run_import_only()
+    ecdc_service.run_full_update_dimension_tables()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_ecdc_import_only)"
+    result = "OK (task_ecdc_full_update_dimension_tables)"
     return result
 
 
 @celery.task(bind=True)
-def task_ecdc_update_dimension_tables_only(self):
+def task_ecdc_update_dimension_tables(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_ecdc_update_dimension_tables_only [OK] ")
+    logger.info(" Received: task_ecdc_update_dimension_tables [OK] ")
     logger.info("------------------------------------------------------------")
-    ecdc_service.run_update_dimension_tables_only()
+    ecdc_service.run_update_dimension_tables()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_ecdc_update_dimension_tables_only)"
+    result = "OK (task_ecdc_update_dimension_tables)"
     return result
 
 
 @celery.task(bind=True)
-def task_ecdc_update_fact_table_incremental_only(self):
+def task_ecdc_full_update_fact_table(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_ecdc_update_fact_table_incremental_only [OK] ")
+    logger.info(" Received: task_ecdc_full_update_fact_table [OK] ")
     logger.info("------------------------------------------------------------")
-    ecdc_service.run_update_fact_table_incremental_only()
+    ecdc_service.run_full_update_fact_table()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_ecdc_update_fact_table_incremental_only)"
+    result = "OK (task_ecdc_full_update_fact_table)"
     return result
 
 
 @celery.task(bind=True)
-def task_ecdc_update_fact_table_incremental_only(self):
+def task_ecdc_update_fact_table(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_ecdc_update_fact_table_incremental_only [OK] ")
+    logger.info(" Received: task_ecdc_update_fact_table [OK] ")
     logger.info("------------------------------------------------------------")
-    ecdc_service.run_update_fact_table_incremental_only()
+    ecdc_service.run_update_fact_table()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_ecdc_update_fact_table_incremental_only)"
+    result = "OK (task_ecdc_update_fact_table)"
     return result
 
 
 @celery.task(bind=True)
-def task_ecdc_update_fact_table_initial_only(self):
+def task_ecdc_full_update_fact_table(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_ecdc_update_fact_table_initial_only [OK] ")
+    logger.info(" Received: task_ecdc_full_update_fact_table [OK] ")
     logger.info("------------------------------------------------------------")
-    ecdc_service.run_update_fact_table_initial_only()
+    ecdc_service.run_full_update_fact_table()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_ecdc_update_fact_table_initial_only)"
+    result = "OK (task_ecdc_full_update_fact_table)"
     return result
 
 
 @celery.task(bind=True)
-def task_ecdc_update_star_schema_incremental(self):
+def task_ecdc_full_update_star_schema(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_ecdc_update_star_schema_incremental [OK] ")
+    logger.info(" Received: task_ecdc_full_update_star_schema [OK] ")
     logger.info("------------------------------------------------------------")
-    ecdc_service.run_update_star_schema_incremental()
+    ecdc_service.run_full_update_star_schema()
     self.update_state(state=states.SUCCESS)
     result = "OK (task_ecdc_update_star_schema_incremental)"
     return result
 
 
 @celery.task(bind=True)
-def task_ecdc_update_star_schema_initial(self):
+def task_ecdc_update_star_schema(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_ecdc_update_star_schema_initial [OK] ")
+    logger.info(" Received: task_ecdc_update_star_schema [OK] ")
     logger.info("------------------------------------------------------------")
-    ecdc_service.run_update_star_schema_initial()
+    ecdc_service.run_update_star_schema()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_ecdc_update_star_schema_initial)"
+    result = "OK (task_ecdc_update_star_schema)"
+    return result
+
+
+@celery.task(bind=True)
+def task_ecdc_full_update_star_schema(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" Received: task_ecdc_full_update_star_schema [OK] ")
+    logger.info("------------------------------------------------------------")
+    ecdc_service.run_full_update_star_schema()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_ecdc_full_update_star_schema)"
     return result
 
 # ----------------------------------------------------------------------------------------------------------------
@@ -283,59 +299,59 @@ def task_ecdc_update_star_schema_initial(self):
 # ----------------------------------------------------------------------------------------------------------------
 
 
-# TODO: #163 implement url_ecdc_task_update_star_schema_initial in europe_views.py
-@app_ecdc.route('/task/update/star_schema/initial')
-def url_ecdc_task_update_star_schema_initial():
-    flash("url_ecdc_task_update_star_schema_initial started")
+@app_ecdc.route('/task/download')
+def url_ecdc_task_download():
+    flash("url_ecdc_task_download started")
     ecdc_service.run_download_only()
-    task_ecdc_update_star_schema_initial.apply_async()
     return redirect(url_for('ecdc.url_ecdc_tasks'))
 
 
-# TODO: #164 implement url_ecdc_task_update_starschema_incremental in europe_views.py
-@app_ecdc.route('/task/update/star_schema/incremental')
-def url_ecdc_task_update_starschema_incremental():
-    flash("url_ecdc_task_update_starschema_incremental started")
-    ecdc_service.run_download_only()
-    task_ecdc_update_star_schema_incremental.apply_async()
+@app_ecdc.route('/task/import')
+def url_ecdc_task_import():
+    flash("url_ecdc_task_import started")
+    task_ecdc_import.apply_async()
     return redirect(url_for('ecdc.url_ecdc_tasks'))
 
 
-# TODO: #165 implement url_ecdc_task_download_only in europe_views.py
-@app_ecdc.route('/task/download/only')
-def url_ecdc_task_download_only():
-    flash("url_ecdc_task_download_only started")
-    ecdc_service.run_download_only()
+@app_ecdc.route('/task/update/dimension-tables')
+def url_ecdc_task_update_dimensiontables():
+    flash("url_ecdc_task_update_dimensiontables started")
+    task_ecdc_update_dimension_tables.apply_async()
     return redirect(url_for('ecdc.url_ecdc_tasks'))
 
 
-# TODO: #166 implement url_ecdc_task_import_only in europe_views.py
-@app_ecdc.route('/task/import/only')
-def url_ecdc_task_import_only():
-    flash("url_ecdc_task_import_only started")
-    task_ecdc_import_only.apply_async()
+@app_ecdc.route('/task/update/full/dimension-tables')
+def url_ecdc_task_full_update_dimensiontables():
+    flash("url_ecdc_task_full_update_dimensiontables started")
+    task_ecdc_full_update_dimension_tables.apply_async()
     return redirect(url_for('ecdc.url_ecdc_tasks'))
 
 
-# TODO: #167 implement url_ecdc_task_update_dimensiontables_only in europe_views.py
-@app_ecdc.route('/task/update/dimension-tables/only')
-def url_ecdc_task_update_dimensiontables_only():
-    flash("url_ecdc_task_update_dimensiontables_only started")
-    task_ecdc_update_dimension_tables_only.apply_async()
+@app_ecdc.route('/task/update/fact-table')
+def url_task_ecdc_update_fact_table():
+    flash("url_ecdc_task_update_facttable started")
+    task_ecdc_update_fact_table.apply_async()
     return redirect(url_for('ecdc.url_ecdc_tasks'))
 
 
-# TODO: #168 implement url_ecdc_task_update_facttable_incremental_only in europe_views.py
-@app_ecdc.route('/task/update/fact-table/incremental/only')
-def url_ecdc_task_update_facttable_incremental_only():
-    flash("url_ecdc_task_update_facttable_incremental_only started")
-    task_ecdc_update_fact_table_incremental_only.apply_async()
+@app_ecdc.route('/task/full/update/fact-table')
+def url_task_ecdc_full_update_fact_table():
+    flash("url_ecdc_task_full_update_facttable started")
+    task_ecdc_full_update_fact_table.apply_async()
     return redirect(url_for('ecdc.url_ecdc_tasks'))
 
 
-# TODO: #169 implement url_ecdc_task_update_facttable_initial_only in europe_views.py
-@app_ecdc.route('/task/update/fact-table/initial/only')
-def url_ecdc_task_update_facttable_initial_only():
-    flash("url_ecdc_task_update_facttable_initial_only started")
-    task_ecdc_update_fact_table_initial_only.apply_async()
+@app_ecdc.route('/task/update/full/star_schema')
+def url_task_ecdc_full_update_star_schema():
+    flash("url_ecdc_task_full_update_star_schema started")
+    ecdc_service.run_download_only()
+    task_ecdc_full_update_star_schema.apply_async()
+    return redirect(url_for('ecdc.url_ecdc_tasks'))
+
+
+@app_ecdc.route('/task/update/star_schema')
+def url_task_ecdc_update_star_schema():
+    flash("url_ecdc_task_update_starschema started")
+    ecdc_service.run_download_only()
+    task_ecdc_update_star_schema.apply_async()
     return redirect(url_for('ecdc.url_ecdc_tasks'))
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/continent/ecdc_continent_all.html b/src/covid19/blueprints/ecdc/templates/ecdc/continent/ecdc_continent_all.html
index e95a022bdddd3da1cff1581b7e9f84ca9b4d7a4a..c73766edde2b13de3fadf86bc8dd5e36319d695e 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/continent/ecdc_continent_all.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/continent/ecdc_continent_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/continent/ecdc_continent_one.html b/src/covid19/blueprints/ecdc/templates/ecdc/continent/ecdc_continent_one.html
index c49b6f3b7c79933d892021f4253a65fa86a5d343..5c91944b04bbcfc9153489e5cbde32bbdb0b2cc3 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/continent/ecdc_continent_one.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/continent/ecdc_continent_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_all.html b/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_all.html
index ca07d13d72e84eebdd525463fca52eb5e6d84a17..daad877ca84b41c5024ea4f25e00e1d7280d7bf0 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_all.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_germany.html b/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_germany.html
index 61bbe32ecab690e73f20df2159ca8ad42b635cb3..7934f52cae81cdfe9a1f62801b3b010de812d5f8 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_germany.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_germany.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_one.html b/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_one.html
index b15f0c5513d61b44caf5cb2672c574c20600248a..3c97a76e46085d0ac32b365a657e04d39267b99a 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_one.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/country/ecdc_country_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_all.html b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_all.html
index f1ab8fb0340938fb988b2dca61e5f44e56095a0d..c0d5a0b0f944a4091a93693a7b1c6b3907b269ea 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_all.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one.html b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one.html
index 6c49dceca6c6e681292bf281b38f22537daeff1e..1413508e2f75506bfdd9fedd6e53f6b780b33946 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_cases_weekly.html b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_cases_weekly.html
index 7201c1dbafe755fec4755821629080bcbba706f5..19b50872c3f9bcda23687e408ba49400b7324e5d 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_cases_weekly.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_cases_weekly.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_deaths_weekly.html b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_deaths_weekly.html
index 3f64c59be09f3c0922e210cee01a3e0d9901f489..50dd2c345f1255ee1ed811febfc47a2bb9bb0d3c 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_deaths_weekly.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_deaths_weekly.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_notification_rate.html b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_notification_rate.html
index cba646907eb781a479bffecce3637ce318a1964e..59800018961f5663d868e4452f71eb811d406cd0 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_notification_rate.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/date_reported/ecdc_date_reported_one_notification_rate.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_data/ecdc_data.html b/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_data/ecdc_data.html
index bbfcd08a419e1ed38110a8ae5cd61e7d7233c5cd..80ee2dd70557717ccb9e96fd99e8c8287ef3381c 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_data/ecdc_data.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_data/ecdc_data.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_info.html b/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_info.html
index 4b5230adafd1562647b673efb9e877d4c4d9ffac..a24d699ac4a6a192ebec3d2409af519722ed327a 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_info.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_info.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_tasks.html b/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_tasks.html
index 7051468374b437ddced452acad054ff76783de81..0c4d387f1ebcb493e3bb1147c4a4ff9eb748b583 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_tasks.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/ecdc_tasks.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
@@ -6,33 +6,53 @@
 
     <div class="container">
         <div class="row">
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc.url_task_ecdc_full_update_star_schema') }}"
+                       role="button">ECDC :: Task :: update :: star_schema :: full</a>
+                </div>
+            </div>
             <div class="col">
                 <div class="btn-group-vertical" role="group" aria-label="Views">
                     <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for( 'ecdc.url_ecdc_task_update_star_schema_initial') }}"
-                       role="button">ECDC :: Task :: update :: star_schema :: initial</a>
-                    <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for( 'ecdc.url_ecdc_task_update_starschema_incremental') }}"
-                       role="button">ECDC :: Task :: update :: star_schema :: incremental</a>
+                       href="{{ url_for( 'ecdc.url_task_ecdc_update_star_schema') }}"
+                       role="button">ECDC :: Task :: update :: star_schema</a>
                 </div>
             </div>
+        </div>
+        <p></p>
+        <div class="row">
             <div class="col">
                 <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-success btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc.url_ecdc_task_download') }}"
+                       role="button">ECDC :: Task :: download</a>
+                    <a class="btn btn-info btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc.url_ecdc_task_import') }}"
+                       role="button">ECDC :: Task :: import</a>
+                    <a class="btn btn-warning btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc.url_ecdc_task_full_update_dimensiontables') }}"
+                       role="button">ECDC :: Task :: update :: dimension-tables :: full</a>
                     <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'ecdc.url_ecdc_task_download_only') }}"
-                       role="button">ECDC :: Task :: download :: only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'ecdc.url_ecdc_task_import_only') }}"
-                       role="button">ECDC :: Task :: import :: only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'ecdc.url_ecdc_task_update_dimensiontables_only') }}"
-                       role="button">ECDC :: Task :: update :: dimension-tables : only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'ecdc.url_ecdc_task_update_facttable_incremental_only') }}"
-                       role="button">ECDC :: Task :: update :: fact-table :: only :: incremental</a>
+                       href="{{ url_for( 'ecdc.url_task_ecdc_full_update_fact_table') }}"
+                       role="button">ECDC :: Task :: update :: fact-table :: full</a>
+                </div>
+            </div>
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-success btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc.url_ecdc_task_download') }}"
+                       role="button">ECDC :: Task :: download</a>
+                    <a class="btn btn-info btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc.url_ecdc_task_import') }}"
+                       role="button">ECDC :: Task :: import</a>
+                    <a class="btn btn-warning btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc.url_ecdc_task_update_dimensiontables') }}"
+                       role="button">ECDC :: Task :: update :: dimension-tables</a>
                     <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'ecdc.url_ecdc_task_update_facttable_initial_only') }}"
-                       role="button">ECDC :: Task :: update :: fact-table :: only :: initial</a>
+                       href="{{ url_for( 'ecdc.url_task_ecdc_update_fact_table') }}"
+                       role="button">ECDC :: Task :: update :: fact-table</a>
                 </div>
             </div>
         </div>
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/imported/ecdc_imported.html b/src/covid19/blueprints/ecdc/templates/ecdc/imported/ecdc_imported.html
index 157df00e27fdcb19ef9aea0d6b5d8a2101df1ed6..f59ecbbda75554d4448838295461cafd0c9d3dd9 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/imported/ecdc_imported.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/imported/ecdc_imported.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/imported/ecdc_imported_table.html b/src/covid19/blueprints/ecdc/templates/ecdc/imported/ecdc_imported_table.html
index fe122cb04e714b7b57bc64d66239c5f4a9936ff2..b6a794f336b02e2885d848eaf9d4c5a0bcefb281 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/imported/ecdc_imported_table.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/imported/ecdc_imported_table.html
@@ -2,7 +2,9 @@
         <thead class="table-secondary">
             <tr>
                 <th scope="col">date reported</th>
-                <th scope="col">year_week</th>
+                <th scope="col">date rep year</th>
+                <th scope="col">date rep month</th>
+                <th scope="col">date rep day</th>
                 <th scope="col">cases weekly</th>
                 <th scope="col">deaths weekly</th>
                 <th scope="col">population data 2019</th>
@@ -17,7 +19,9 @@
         {% for o in page_data.items %}
             <tr>
                 <td>{{ o.date_rep }}</td>
-                <td>{{ o.year }}</td>
+                <td>{{ o.date_rep_year }}</td>
+                <td>{{ o.date_rep_month }}</td>
+                <td>{{ o.date_rep_day }}</td>
                 <td>{{ o.cases }}</td>
                 <td>{{ o.deaths }}</td>
                 <td>{{ o.pop_data_2019 }}</td>
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/navigation/ecdc_navbar_dropdown.html b/src/covid19/blueprints/ecdc/templates/ecdc/navigation/ecdc_navbar_dropdown.html
index df37584a01592b9b5baa489db0c4c2bbf84e5c18..ddadab92d7e714d41f612008da3f113fb46d2a78 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/navigation/ecdc_navbar_dropdown.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/navigation/ecdc_navbar_dropdown.html
@@ -43,13 +43,13 @@
                             <div class="dropdown-divider"></div>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'ecdc.url_ecdc_task_update_star_schema_initial') }}">
-                                Task: ECDC :: update :: initial
+                            <a class="dropdown-item" href="{{ url_for( 'ecdc.url_task_ecdc_full_update_star_schema') }}">
+                                Task: ECDC :: update :: full
                             </a>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'ecdc.url_ecdc_task_update_starschema_incremental') }}">
-                                Task: ECDC :: update :: incremental
+                            <a class="dropdown-item" href="{{ url_for( 'ecdc.url_task_ecdc_update_star_schema') }}">
+                                Task: ECDC :: update
                             </a>
                         </li>
                         <li>
diff --git a/src/covid19/blueprints/ecdc/templates/ecdc/navigation/ecdc_navtabs.html b/src/covid19/blueprints/ecdc/templates/ecdc/navigation/ecdc_navtabs.html
index 20f4f779fce7ff71a241e33f2b70b6338d06664e..6d31235a5bc96137ac1b4ded252d85f86273ff2b 100644
--- a/src/covid19/blueprints/ecdc/templates/ecdc/navigation/ecdc_navtabs.html
+++ b/src/covid19/blueprints/ecdc/templates/ecdc/navigation/ecdc_navtabs.html
@@ -11,12 +11,14 @@
                         <a class="nav-link"
                            href="{{ url_for( 'ecdc.url_ecdc_tasks') }}">ECDC tasks</a>
                     </li>
+                    <li class="nav-item">
+                        <a class="nav-link"
+                           href="{{ url_for( 'ecdc.url_ecdc_data_imported') }}">ECDC imported</a>
+                    </li>
                     {% endif %}
                     <li class="nav-item">
                         <a class="nav-link"
-                           href="{{ url_for( 'ecdc.url_ecdc_date_reported_all') }}">
-                            ECDC date_reported
-                        </a>
+                           href="{{ url_for( 'ecdc.url_ecdc_date_reported_all') }}">ECDC date_reported</a>
                     </li>
                     <li class="nav-item">
                         <a class="nav-link"
@@ -30,12 +32,6 @@
                         <a class="nav-link"
                            href="{{ url_for( 'ecdc.url_ecdc_country_all') }}">ECDC country</a>
                     </li>
-                    {% if current_user.is_authenticated %}
-                    <li class="nav-item">
-                        <a class="nav-link"
-                           href="{{ url_for( 'ecdc.url_ecdc_data_imported') }}">ECDC imported</a>
-                    </li>
-                    {% endif %}
                 </ul>
             </nav>
         </div>
diff --git a/src/covid19/blueprints/rki/rki_vaccination/__init__.py b/src/covid19/blueprints/ecdc_test/__init__.py
similarity index 100%
rename from src/covid19/blueprints/rki/rki_vaccination/__init__.py
rename to src/covid19/blueprints/ecdc_test/__init__.py
diff --git a/src/covid19/blueprints/ecdc_test/ecdc_test_service.py b/src/covid19/blueprints/ecdc_test/ecdc_test_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..987c724ba5acf544ef8fd604638041c29046118b
--- /dev/null
+++ b/src/covid19/blueprints/ecdc_test/ecdc_test_service.py
@@ -0,0 +1,44 @@
+from database import app
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.ecdc.ecdc_model import EcdcDateReported, EcdcData
+
+
+class EcdcTestService:
+    def __init__(self, database, ecdc_service):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" ECDC Test Service [init]")
+        app.logger.debug("------------------------------------------------------------")
+        self.__database = database
+        self.__ecdc_service = ecdc_service
+        self.cfg = ApplicationServiceConfig.create_config_for_ecdc()
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.info(" ECDC Test Service [ready]")
+
+    def delete_last_day(self):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" EcdcTestService.delete_last_day() [START]")
+        app.logger.debug("------------------------------------------------------------")
+        joungest_datum_str = EcdcData.get_joungest_datum()
+        joungest_datum = EcdcDateReported.find_by_date_reported(joungest_datum_str)
+        app.logger.info("joungest_datum:")
+        app.logger.info(joungest_datum)
+        app.logger.info("WhoData.get_data_for_one_day(joungest_datum):")
+        i = 0
+        for data in EcdcData.get_data_for_one_day(joungest_datum):
+            i += 1
+            line = " | " + str(i) + " | " + str(data.date_reported) + " | " + data.country.country + " | to be deleted"
+            app.logger.info(line)
+        app.logger.info("WhoData.delete_data_for_one_day(joungest_datum)")
+        EcdcData.delete_data_for_one_day(joungest_datum)
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" EcdcTestService.delete_last_day() [DONE]")
+        app.logger.debug("------------------------------------------------------------")
+
+    def run_update_star_schema_incremental(self):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" EcdcTestService.run_update_star_schema_incremental() [START]")
+        app.logger.debug("------------------------------------------------------------")
+        self.__ecdc_service.run_update_star_schema_incremental()
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" EcdcTestService.run_update_star_schema_incremental() [DONE]")
+        app.logger.debug("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/ecdc_test/ecdc_test_views.py b/src/covid19/blueprints/ecdc_test/ecdc_test_views.py
new file mode 100644
index 0000000000000000000000000000000000000000..dd6bac1cba18ebf2696441347d5cba61c04c8e45
--- /dev/null
+++ b/src/covid19/blueprints/ecdc_test/ecdc_test_views.py
@@ -0,0 +1,143 @@
+from flask import render_template, redirect, url_for, flash, Blueprint
+from celery import states
+from celery.utils.log import get_task_logger
+from flask_login import login_required
+
+from database import app, db
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
+
+from covid19.blueprints.ecdc.ecdc_model_import import EcdcImport
+from covid19.blueprints.ecdc_test.ecdc_test_service import EcdcTestService
+
+ecdc_test_service = EcdcTestService(db, ecdc_service)
+
+app_ecdc_test = Blueprint('ecdc_test', __name__, template_folder='templates', url_prefix='/ecdc/test')
+
+# ---------------------------------------------------------------------------------------------------------------
+#  Url Routes Frontend
+# ---------------------------------------------------------------------------------------------------------------
+
+
+@app_ecdc_test.route('/tests')
+@login_required
+def url_ecdc_test_tests():
+    page_info = ApplicationPage('ECDC', "Tests")
+    return render_template(
+        'ecdc_test/ecdc_tests.html',
+        page_info=page_info)
+
+
+@app_ecdc_test.route('/ecdc_import/countries')
+@login_required
+def url_ecdc_test_ecdc_import_countries():
+    flash("url_ecdc_test_ecdc_import_countries - START: EcdcImport.countries()")
+    app.logger.info("url_ecdc_test_ecdc_import_countries - START: EcdcImport.countries()")
+    i = 0
+    for c in EcdcImport.countries():
+        i += 1
+        line = " | " + str(i) + " | " + c.countries.country_code + " | " + c.countries.country + " | " + c.countries.ecdc_region + " | "
+        app.logger.info(line)
+    flash("url_ecdc_test_ecdc_import_countries - DONE: EcdcImport.countries()")
+    return redirect(url_for('ecdc_test.url_ecdc_test_tests'))
+
+
+@app_ecdc_test.route('/ecdc_import/get_new_dates_as_array')
+@login_required
+def url_ecdc_test_ecdc_import_get_new_dates_as_array():
+    app.logger.info("url_ecdc_mytest - DONE: EcdcImport.countries()")
+    flash("url_ecdc_mytest - START: EcdcImport.get_new_dates_as_array()")
+    app.logger.info("url_ecdc_mytest - START: EcdcImport.get_new_dates_as_array()")
+    app.logger.info("EcdcImport.get_new_dates_as_array():")
+    i = 0
+    for date_reported in EcdcImport.get_new_dates_as_array():
+        i += 1
+        line = " | " + str(i) + " | " + date_reported + " | "
+        app.logger.info(line)
+    flash("url_ecdc_mytest - DONE: EcdcImport.get_new_dates_as_array()")
+    app.logger.info("url_ecdc_mytest - DONE: EcdcImport.get_new_dates_as_array()")
+    return redirect(url_for('ecdc_test.url_ecdc_test_tests'))
+
+
+@app_ecdc_test.route('/ecdc_data/get_datum_of_all_ecdc_data')
+@login_required
+def url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_data():
+    app.logger.info("url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_data - DONE: EcdcData.get_datum_of_all_ecdc_data()")
+    flash("url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_data - START: EcdcData.get_datum_of_all_ecdc_data()")
+    for datum in EcdcImport.get_datum_of_all_data():
+        app.logger.info(str(datum))
+    flash("url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_data - DONE: EcdcData.get_datum_of_all_ecdc_data()")
+    app.logger.info("url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_data - DONE: EcdcData.get_datum_of_all_ecdc_data()")
+    return redirect(url_for('ecdc_test.url_ecdc_test_tests'))
+
+
+@app_ecdc_test.route('/ecdc_data/get_datum_of_all_ecdc_import')
+@login_required
+def url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_import():
+    app.logger.info("url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_import - START: EcdcImport.get_datum_of_all_ecdc_import()")
+    flash("url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_import - START: EcdcImport.get_datum_of_all_ecdc_import()")
+    for datum in EcdcImport.get_datum_of_all_ecdc_import():
+        app.logger.info(str(datum))
+    flash("url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_import - DONE: EcdcImport.get_datum_of_all_ecdc_import()")
+    app.logger.info("url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_import - DONE: EcdcImport.get_datum_of_all_ecdc_import()")
+    return redirect(url_for('ecdc_test.url_ecdc_test_tests'))
+
+
+@app_ecdc_test.route('/ecdc_service/service_update/ecdc_import_get_new_dates_as_array')
+@login_required
+def url_ecdc_test_ecdc_service_ecdc_import_get_new_dates_as_array():
+    app.logger.info("url_ecdc_test_ecdc_import_get_new_dates_as_array - START: EcdcService.ecdc_import_get_new_dates_as_array()")
+    flash("url_ecdc_test_ecdc_import_get_new_dates_as_array - START: EcdcService.ecdc_import_get_new_dates_as_array()")
+    for datum in ecdc_service.service_update.ecdc_import_get_new_dates_as_array():
+        app.logger.info(str(datum))
+    flash("url_ecdc_test_ecdc_import_get_new_dates_as_array - DONE: EcdcService.ecdc_import_get_new_dates_as_array()")
+    app.logger.info("url_ecdc_test_ecdc_import_get_new_dates_as_array - DONE: EcdcService.ecdc_import_get_new_dates_as_array()")
+    return redirect(url_for('ecdc_test.url_ecdc_test_tests'))
+
+
+@app_ecdc_test.route('/ecdc_test_service/delete_last_day')
+@login_required
+def url_ecdc_test_ecdc_test_service_delete_last_days_data():
+    app.logger.info("url_ecdc_test_ecdc_test_service_delete_last_days_data - START: EcdcService.ecdc_import_get_new_dates_as_array()")
+    flash("url_ecdc_test_ecdc_test_service_delete_last_days_data - START: EcdcService.ecdc_import_get_new_dates_as_array()")
+    ecdc_test_service.delete_last_day()
+    flash("url_ecdc_test_ecdc_test_service_delete_last_days_data - DONE: EcdcService.ecdc_import_get_new_dates_as_array()")
+    app.logger.info("url_ecdc_test_ecdc_test_service_delete_last_days_data - DONE: EcdcService.ecdc_import_get_new_dates_as_array()")
+    return redirect(url_for('ecdc_test.url_ecdc_test_tests'))
+
+
+# ----------------------------------------------------------------------------------------------------------------
+#  Celery TASKS
+# ----------------------------------------------------------------------------------------------------------------
+
+
+@celery.task(bind=True)
+def task_ecdc_test_update_star_schema_incremental(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" Received: task_ecdc_test_update_star_schema_incremental [OK] ")
+    logger.info("------------------------------------------------------------")
+    ecdc_test_service.run_update_star_schema_incremental()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_ecdc_test_update_star_schema_incremental)"
+    return result
+
+# ----------------------------------------------------------------------------------------------------------------
+#  URL Routes for Celery TASKS
+# ----------------------------------------------------------------------------------------------------------------
+
+
+@app_ecdc_test.route('/task/update_star_schema_incremental')
+@login_required
+def url_task_ecdc_test_update_star_schema_incremental():
+    app.logger.info("url_task_ecdc_test_update_star_schema_incremental - START: task_ecdc_test_update_star_schema_incremental()")
+    flash("url_task_ecdc_test_update_star_schema_incremental - START: task_ecdc_test_update_star_schema_incremental()")
+    task_ecdc_test_update_star_schema_incremental.apply_async()
+    flash("url_task_ecdc_test_update_star_schema_incremental - DONE: task_ecdc_test_update_star_schema_incremental()")
+    app.logger.info("url_task_ecdc_test_update_star_schema_incremental - DONE: task_ecdc_test_update_star_schema_incremental()")
+    return redirect(url_for('ecdc_test.url_ecdc_test_tests'))
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/__init__.py b/src/covid19/blueprints/ecdc_test/templates/__init__.py
similarity index 100%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/__init__.py
rename to src/covid19/blueprints/ecdc_test/templates/__init__.py
diff --git a/src/covid19/blueprints/ecdc_test/templates/ecdc_test/ecdc_tests.html b/src/covid19/blueprints/ecdc_test/templates/ecdc_test/ecdc_tests.html
new file mode 100644
index 0000000000000000000000000000000000000000..a8a283e6ef653a25cc264c33c566610300928c09
--- /dev/null
+++ b/src/covid19/blueprints/ecdc_test/templates/ecdc_test/ecdc_tests.html
@@ -0,0 +1,59 @@
+{% extends 'app_all/layout/page_layout.html' %}
+
+{% block content %}
+    {{super()}}
+    {% include 'ecdc/navigation/ecdc_navtabs.html' %}
+
+    <div class="container">
+        <div class="row">
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc.url_ecdc_tasks') }}"
+                       role="button">ECDC :: Tasks</a>
+                </div>
+            </div>
+        </div>
+        <p></p>
+        <div class="row">
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc_test.url_ecdc_test_ecdc_import_countries') }}"
+                       role="button">url_who_test_who_import_countries</a>
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc_test.url_ecdc_test_ecdc_import_get_new_dates_as_array') }}"
+                       role="button">url_who_test_who_import_get_new_dates_as_array</a>
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc_test.url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_data') }}"
+                       role="button">url_who_test_who_data_get_datum_of_all_who_data</a>
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc_test.url_ecdc_test_ecdc_data_get_datum_of_all_ecdc_import') }}"
+                       role="button">url_who_test_who_data_get_datum_of_all_who_import</a>
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc_test.url_ecdc_test_ecdc_service_ecdc_import_get_new_dates_as_array') }}"
+                       role="button">url_who_test_who_service_who_import_get_new_dates_as_array</a>
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc_test.url_ecdc_test_ecdc_test_service_delete_last_days_data') }}"
+                       role="button">url_who_test_who_test_service_delete_last_days_data</a>
+                </div>
+            </div>
+            <div class="col">
+                 <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'ecdc_test.url_task_ecdc_test_update_star_schema_incremental') }}"
+                       role="button">url_task_who_test_update_star_schema_incremental</a>
+                </div>
+            </div>
+        </div>
+    </div>
+{% endblock %}
+
+
+
+{% block footer_container %}
+
+{% endblock %}
+
+
+
diff --git a/src/covid19/blueprints/intensivregister/divi_model.py b/src/covid19/blueprints/intensivregister/divi_model.py
index 6738dc4a947a79a17061a5cdbc4e3ba787d45b52..f1b6eadfeefc404d263ef8ab858c14cb3f0cd88a 100644
--- a/src/covid19/blueprints/intensivregister/divi_model.py
+++ b/src/covid19/blueprints/intensivregister/divi_model.py
@@ -2,7 +2,7 @@ from sqlalchemy import and_
 from datetime import date
 from sqlalchemy.orm import joinedload, subqueryload
 from database import db, ITEMS_PER_PAGE
-from covid19.blueprints.application.application_model import ApplicationDateReported, ApplicationRegion
+from covid19.blueprints.app_all.all_model import ApplicationDateReported, ApplicationRegion
 
 
 class DiviDateReported(ApplicationDateReported):
diff --git a/src/covid19/blueprints/intensivregister/divi_service.py b/src/covid19/blueprints/intensivregister/divi_service.py
index 7b57959322e84681885c4f479c50463abb37b8f8..52f330a096960554c3598710e6caada1ce78e15b 100644
--- a/src/covid19/blueprints/intensivregister/divi_service.py
+++ b/src/covid19/blueprints/intensivregister/divi_service.py
@@ -1,8 +1,8 @@
 from flask import flash
 
 from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_service_download import ApplicationServiceDownload
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_download import ApplicationServiceDownload
 from covid19.blueprints.intensivregister.divi_service_import import DiviServiceImport
 from covid19.blueprints.intensivregister.divi_service_update import DiviServiceUpdate
 
@@ -69,7 +69,7 @@ class DiviService:
         self.service_update.update_star_schema_incremental()
         return self
 
-    def run_update_star_schema_initial(self):
+    def task_admin_full_update_star_schema(self):
         self.service_import.import_file()
         self.service_update.update_star_schema_initial()
         return self
diff --git a/src/covid19/blueprints/intensivregister/divi_service_import.py b/src/covid19/blueprints/intensivregister/divi_service_import.py
index 40fd7cbbeb516f18bc48d0eee6c6be7775b17631..efa299a06b890a471c21579e750d51e420881656 100644
--- a/src/covid19/blueprints/intensivregister/divi_service_import.py
+++ b/src/covid19/blueprints/intensivregister/divi_service_import.py
@@ -1,9 +1,10 @@
 import sys
 import csv
 import psycopg2
+
 from database import db, app
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 from covid19.blueprints.intensivregister.divi_model_import import DiviImport
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
 
 
 class DiviServiceImport:
diff --git a/src/covid19/blueprints/intensivregister/divi_service_update.py b/src/covid19/blueprints/intensivregister/divi_service_update.py
index 153467070ec83e78aec60dfe66aa68f6c336c3f6..2194c9e571c8cd234b8d8fe074e653e61ee4875b 100644
--- a/src/covid19/blueprints/intensivregister/divi_service_update.py
+++ b/src/covid19/blueprints/intensivregister/divi_service_update.py
@@ -1,9 +1,11 @@
 from database import db, app
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+
 from covid19.blueprints.intensivregister.divi_model import DiviRegion, DiviDateReported, DiviCountry, DiviData
 from covid19.blueprints.intensivregister.divi_model_import import DiviImport
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
 
 
+# TODO: Split into two Services
 class DiviServiceUpdate:
     def __init__(self, database, config: ApplicationServiceConfig):
         app.logger.debug("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/intensivregister/divi_views.py b/src/covid19/blueprints/intensivregister/divi_views.py
index c39e2489bedad9ad736701d313d6de3a1fa143ce..4eb79a7624baf72bd59cf1445a8d3f40c005c245 100644
--- a/src/covid19/blueprints/intensivregister/divi_views.py
+++ b/src/covid19/blueprints/intensivregister/divi_views.py
@@ -6,12 +6,15 @@ from flask_admin.contrib.sqla import ModelView
 from flask_login import login_required
 
 from database import app, admin, db
-from covid19.blueprints.application.application_services import divi_service
-from covid19.blueprints.application.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 
 from covid19.blueprints.intensivregister.divi_model import DiviRegion, DiviDateReported, DiviCountry, DiviData
 from covid19.blueprints.intensivregister.divi_model_import import DiviImport
-from covid19.blueprints.application.application_model_transient import ApplicationPage
 
 
 app_divi = Blueprint('divi', __name__, template_folder='templates', url_prefix='/divi')
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_all.html b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_all.html
index 4cf33bb185d154c1912746e73b3d3dd5b880bbf4..11d174f35eb3aa9639f086539f17f18af3e5cc1a 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_all.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_germany.html b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_germany.html
index 2ed20c2cf902a2e4a1252300bcecb4f481a9acf1..418cd0d22c1afdb743847dd916cd89daca84c4b6 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_germany.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_germany.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one.html b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one.html
index 2df755993825bf9a6c4b13a08c7674853cc30f82..24707cc6c37dcb71791c17e050cdc20296a59b44 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_cases_cumulative.html b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_cases_cumulative.html
index 52ffbeb0c25c13c099f271ca51389692313c6877..d00d2b42fd965150fd2431444cfd58c102d92c8a 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_cases_cumulative.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_cases_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_cases_new.html b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_cases_new.html
index 2de058934da0aa6fc2d54113b717846e5b5e64c8..c69425fc881528eb8c7e3abb0214fca209736401 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_cases_new.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_cases_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_deaths_cumulative.html b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_deaths_cumulative.html
index 204f21353713a9690cb208f2f752d5970be3dc78..79a06e8d2aed8e6996fa183aebcf67db51b125fd 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_deaths_cumulative.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_deaths_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_deaths_new.html b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_deaths_new.html
index 843cbfeca23f687f597e510119169a0581f4f715..10a6dfc36d48b27fefe90867cde7a7b62d448614 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_deaths_new.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/country/divi_country_one_deaths_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_all.html b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_all.html
index fb27e4642fdff7cbfd7b48c4ea2c77a7e9be6ea2..8043263de87d2e9c10a0dec6b8aec8c6578d96fe 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_all.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one.html b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one.html
index ca967bdab4944dd98620e121fa660bf9fe80a9f4..d0ff5b66db16cf425c20b52fcbc8afb60a69b6ca 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_cases_cumulative.html b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_cases_cumulative.html
index a5a52426a8edf9de5852035f16b5fb314e19efbc..d3f18c90e66016c8e590ab6cd2adf08efb519373 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_cases_cumulative.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_cases_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_cases_new.html b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_cases_new.html
index ca967bdab4944dd98620e121fa660bf9fe80a9f4..d0ff5b66db16cf425c20b52fcbc8afb60a69b6ca 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_cases_new.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_cases_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_deaths_cumulative.html b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_deaths_cumulative.html
index f296b13745eb259a179f12d6ee1954bd1d07f8a5..661ddff5a7993873b9d25149bf362567a2fd48bd 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_deaths_cumulative.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_deaths_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_deaths_new.html b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_deaths_new.html
index 3e5b23329ef96799b90df030454ceb51de106d67..5bebe730368c524eaf6b80bc39969c9c85618f65 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_deaths_new.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/date_reported/divi_date_reported_one_deaths_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/divi_imported.html b/src/covid19/blueprints/intensivregister/templates/divi/divi_imported.html
index 8dbdc54648f6570b88c512297ab33bacdb1ef30d..631dafa31cf4b66c9ac2040573c1eb20dd1c3e90 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/divi_imported.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/divi_imported.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/divi_info.html b/src/covid19/blueprints/intensivregister/templates/divi/divi_info.html
index a4dc0e5c8cbf545d3603987da136649c69067dde..c5fd34d550495ba59b5379f1836e28ce46b72b39 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/divi_info.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/divi_info.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/divi_tasks.html b/src/covid19/blueprints/intensivregister/templates/divi/divi_tasks.html
index de4351b7d7a2612c4a40317485e8287e40dbfc7f..095ce8eafa49fc537191cd6a274dc0c4f7e525fc 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/divi_tasks.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/divi_tasks.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/region/divi_region_all.html b/src/covid19/blueprints/intensivregister/templates/divi/region/divi_region_all.html
index 54bb8dc1109ab75359be94ffabd164d3443ba802..d8c915355c78c41fb45aea89581b849858b6d35d 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/region/divi_region_all.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/region/divi_region_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister/templates/divi/region/divi_region_one.html b/src/covid19/blueprints/intensivregister/templates/divi/region/divi_region_one.html
index 1847e5d5cbe26faeebf98ca3571096a6a6128674..652fdf4adda2ca5e4c6b5298929e9e7d1f20ef98 100644
--- a/src/covid19/blueprints/intensivregister/templates/divi/region/divi_region_one.html
+++ b/src/covid19/blueprints/intensivregister/templates/divi/region/divi_region_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/intensivregister_test/divi_test_service.py b/src/covid19/blueprints/intensivregister_test/divi_test_service.py
index ec3297ece1dec62515ea2d873c0fcb524d1b695d..83cf4a573b3be7fb9b190ea3fcf19b1d1c1495dc 100644
--- a/src/covid19/blueprints/intensivregister_test/divi_test_service.py
+++ b/src/covid19/blueprints/intensivregister_test/divi_test_service.py
@@ -1,5 +1,5 @@
 from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 from covid19.blueprints.intensivregister.divi_model import DiviDateReported, DiviData
 
 
diff --git a/src/covid19/blueprints/intensivregister_test/divi_test_views.py b/src/covid19/blueprints/intensivregister_test/divi_test_views.py
index ee72ad804dd2da984201017f84417cba447af2c4..277e7ac76bd2435fc226ca2e7c1cdfd3af9e0994 100644
--- a/src/covid19/blueprints/intensivregister_test/divi_test_views.py
+++ b/src/covid19/blueprints/intensivregister_test/divi_test_views.py
@@ -4,12 +4,15 @@ from celery.utils.log import get_task_logger
 from flask_login import login_required
 
 from database import app, db
-from covid19.blueprints.application.application_services import divi_service
-from covid19.blueprints.application.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 
 from covid19.blueprints.intensivregister.divi_model_import import DiviImport
 from covid19.blueprints.intensivregister.divi_model import DiviData
-from covid19.blueprints.application.application_model_transient import ApplicationPage
 
 from covid19.blueprints.intensivregister_test.divi_test_service import DiviTestService
 
diff --git a/src/covid19/blueprints/intensivregister_test/templates/divi_test/divi_tests.html b/src/covid19/blueprints/intensivregister_test/templates/divi_test/divi_tests.html
index cdbd748e597af8d0199bb4202a9d1562d10c7766..8768b5ec07983fd8103a04260c62e5d4fb38a83b 100644
--- a/src/covid19/blueprints/intensivregister_test/templates/divi_test/divi_tests.html
+++ b/src/covid19/blueprints/intensivregister_test/templates/divi_test/divi_tests.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/owid_model.py b/src/covid19/blueprints/owid/owid_model.py
index 92c10d19bfe24554aecfdf7d1e5ced930fa19737..591028bc73d48e650dfd6bf9269375f1dbc69869 100644
--- a/src/covid19/blueprints/owid/owid_model.py
+++ b/src/covid19/blueprints/owid/owid_model.py
@@ -3,7 +3,7 @@ from datetime import date
 from sqlalchemy.orm import joinedload, subqueryload
 
 from database import db, ITEMS_PER_PAGE
-from covid19.blueprints.application.application_model import ApplicationDateReported, ApplicationRegion
+from covid19.blueprints.app_all.all_model import ApplicationDateReported, ApplicationRegion
 
 
 class OwidDateReported(ApplicationDateReported):
@@ -13,6 +13,21 @@ class OwidDateReported(ApplicationDateReported):
         db.UniqueConstraint('date_reported_import_str', 'datum', name="uix_owid_datereported"),
     )
 
+    def __str__(self):
+        result = ""
+        if self.day_of_month < 10:
+            result += "0" + str(self.day_of_month)
+        else:
+            result += "" + str(self.day_of_month)
+        if self.month < 10:
+            result += ".0" + str(self.month)
+        else:
+            result += "." + str(self.month)
+        result += "." + str(self.year)
+        # result += " processed:  " + str(self.processed)
+        return result
+
+
     id = db.Column(db.Integer, primary_key=True)
     date_reported_import_str = db.Column(db.String(255), nullable=False, unique=True)
     year_week = db.Column(db.String(255), nullable=False)
@@ -22,16 +37,45 @@ class OwidDateReported(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)
+    processed = db.Column(db.BOOLEAN, nullable=False)
+
+    def get_sql_notion(self):
+        result = str(self.year)
+        if self.month < 10:
+            result += "-0" + str(self.month)
+        else:
+            result += "-" + str(self.month)
+
+        if self.day_of_month < 10:
+            result += "-0" + str(self.day_of_month)
+        else:
+            result += "-" + str(self.day_of_month)
+        return result
+
+    @classmethod
+    def set_all_to_processed(cls):
+        for o in cls.get_unprocessed():
+            o.set_processed()
+        db.session.commit()
+        return None
+
+    def set_processed(self):
+        self.processed = True
+        return self
 
     @classmethod
-    def create_new_object_factory(cls, my_date_rep):
+    def get_unprocessed(cls):
+        return db.session.query(cls).filter(cls.processed == False).all()
+
+    @classmethod
+    def create_new_object_factory(cls, my_date_rep: str):
         my_datum = date.fromisoformat(my_date_rep)
         (my_iso_year, week_number, weekday) = my_datum.isocalendar()
         my_year_week = "" + str(my_iso_year)
         if week_number < 10:
-            my_year_week += "-0"
+            my_year_week += '-0'
         else:
-            my_year_week += "-"
+            my_year_week += '-'
         my_year_week += str(week_number)
         return OwidDateReported(
             date_reported_import_str=my_date_rep,
@@ -41,7 +85,8 @@ class OwidDateReported(ApplicationDateReported):
             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,
+            processed=False
         )
 
 
@@ -52,12 +97,69 @@ class OwidContinent(ApplicationRegion):
         db.UniqueConstraint('region', name="uix_owid_country_continent"),
     )
 
+    def __str__(self):
+        result = "" + self.region + " "
+        return result
+
     id = db.Column(db.Integer, primary_key=True)
     region = db.Column(db.String(255), nullable=False, unique=True)
 
+    @classmethod
+    def get_last_continent(cls):
+        return db.session.query(cls).all().pop()
+
 
 class OwidCountry(db.Model):
     __tablename__ = 'owid_country'
+    __table_args__ = (
+        db.UniqueConstraint('iso_code', 'location', name="uix_owid_country"),
+    )
+
+    def __str__(self):
+        result = "" + self.iso_code + " | " + self.location + " | " # + str(self.continent)
+        return result
+
+    def __str__(self):
+        result2 = "("
+        result2 += self.population
+        result2 += ", "
+        result2 += self.population_density
+        result2 += ", "
+        result2 += self.median_age
+        result2 += ", "
+        result2 += self.aged_65_older
+        result2 += ", "
+        result2 += self.aged_70_older
+        result2 += ", "
+        result2 += self.gdp_per_capita
+        result2 += ", "
+        result2 += self.extreme_poverty
+        result2 += ", "
+        result2 += self.cardiovasc_death_rate
+        result2 += ", "
+        result2 += self.diabetes_prevalence
+        result2 += ", "
+        result2 += self.female_smokers
+        result2 += ", "
+        result2 += self.male_smokers
+        result2 += ", "
+        result2 += self.handwashing_facilities
+        result2 += ", "
+        result2 += self.hospital_beds_per_thousand
+        result2 += ", "
+        result2 += self.life_expectancy
+        result2 += ", "
+        result2 += self.human_development_index
+        result2 += " )"
+        result = " [ "
+        result += self.iso_code
+        result += ", "
+        result += self.location
+        # result += ", "
+        # result += self.continent.region
+        result += " ] "
+        result += result2
+        return result
 
     id = db.Column(db.Integer, primary_key=True)
     continent_id = db.Column(db.Integer,
@@ -85,15 +187,12 @@ class OwidCountry(db.Model):
     life_expectancy = db.Column(db.String(255), nullable=False)
     human_development_index = db.Column(db.String(255), nullable=False)
 
-    def __str__(self):
-        result = ""
-        result += self.iso_code
-        result += " "
-        result += self.location
-        result += " "
-        result += self.continent.region
-        result += " "
-        return result
+    @classmethod
+    def delete_all_countries_for_continent(cls, owid_continent_one):
+        db.session.query(cls).filter(cls.continent == owid_continent_one).delete()
+        db.session.delete(owid_continent_one)
+        db.session.commit()
+        return None
 
     @classmethod
     def get_germany(cls):
@@ -105,10 +204,18 @@ class OwidCountry(db.Model):
     def get_countries_for_continent(cls, owid_continent_one: OwidContinent, page: int):
         return db.session.query(cls).filter(cls.continent == owid_continent_one).paginate(page, per_page=ITEMS_PER_PAGE)
 
+    @classmethod
+    def get_all_countries_for_continent(cls, owid_continent_one: OwidContinent):
+        return db.session.query(cls).filter(cls.continent == owid_continent_one).all()
+
     @classmethod
     def find_by_iso_code_and_location(cls, iso_code, location):
         return db.session.query(cls).filter(and_((cls.iso_code == iso_code), (cls.location == location))).one_or_none()
 
+    @classmethod
+    def get_by_iso_code_and_location(cls, iso_code, location):
+        return db.session.query(cls).filter(and_((cls.iso_code == iso_code), (cls.location == location))).one()
+
     @classmethod
     def remove_all(cls):
         num_rows_deleted = 0
@@ -191,6 +298,26 @@ class OwidData(db.Model):
     new_vaccinations_smoothed_per_million = db.Column(db.String(255), nullable=False)
     stringency_index = db.Column(db.String(255), nullable=False)
 
+    @classmethod
+    def delete_all_data_for_country(cls, owid_country_one):
+        db.session.query(cls).filter(
+            cls.country == owid_country_one
+        ).populate_existing().options(
+            joinedload(cls.country),
+            joinedload(cls.date_reported),
+        ).delete()
+        db.session.commit()
+        return None
+
+    @classmethod
+    def get_all_data_for_country(cls, owid_country_one):
+        return db.session.query(cls).filter(
+            cls.country == owid_country_one
+        ).populate_existing().options(
+            joinedload(cls.country),
+            joinedload(cls.date_reported),
+        ).all()
+
     @classmethod
     def get_data_for_country(cls, owid_country_one, page):
         return db.session.query(cls).filter(
@@ -273,7 +400,9 @@ class OwidData(db.Model):
     @classmethod
     def get_datum_of_all_data(cls):
         datum_of_all_who_data = []
-        for data in db.session.query(cls).options(subqueryload("date_reported").load_only("date_reported_import_str")):
+        for data in db.session.query(cls).options(
+            subqueryload("date_reported").load_only("date_reported_import_str")
+        ):
             datum = data.date_reported.date_reported_import_str
             if not datum in datum_of_all_who_data:
                 datum_of_all_who_data.append(datum)
@@ -282,10 +411,15 @@ class OwidData(db.Model):
 
     @classmethod
     def get_joungest_datum(cls):
-        return cls.get_datum_of_all_data().pop()
+        data = cls.get_datum_of_all_data()
+        if len(data) > 0:
+            return data.pop()
+        else:
+            return None
 
     @classmethod
     def delete_data_for_one_day(cls, date_reported):
         for data in cls.get_data_for_one_day(date_reported):
             db.session.delete(data)
-            db.session.commit()
+        db.session.delete(date_reported)
+        db.session.commit()
diff --git a/src/covid19/blueprints/owid/owid_model_import.py b/src/covid19/blueprints/owid/owid_model_import.py
index 9e71c7b1225d6e205f1993be56110edc8ce218fc..a187a3d1833033737034cbb37d533ab0d812fabf 100644
--- a/src/covid19/blueprints/owid/owid_model_import.py
+++ b/src/covid19/blueprints/owid/owid_model_import.py
@@ -1,5 +1,6 @@
 from sqlalchemy.orm import Bundle
 from database import db, ITEMS_PER_PAGE
+from sqlalchemy import and_
 
 
 class OwidImport(db.Model):
@@ -65,6 +66,13 @@ class OwidImport(db.Model):
     hospital_beds_per_thousand = db.Column(db.String(255), nullable=False)
     life_expectancy = db.Column(db.String(255), nullable=False)
     human_development_index = db.Column(db.String(255), nullable=False)
+    datum = db.Column(db.Date, nullable=False)
+    year = db.Column(db.Integer, nullable=False)
+    month = db.Column(db.Integer, nullable=False)
+    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)
+    year_week = db.Column(db.String(255), nullable=False)
 
     @classmethod
     def remove_all(cls):
@@ -125,9 +133,13 @@ class OwidImport(db.Model):
     def get_new_dates_reported_as_array(cls):
         return cls.get_dates_reported_as_array()
 
+    # TODO: deprecated
     @classmethod
     def get_datum_of_all_import(cls):
-        return cls.get_dates_reported_as_array()
+        return db.session.query(cls.date)\
+            .order_by(cls.date.desc())\
+            .group_by(cls.date)\
+            .distinct().all()
 
     @classmethod
     def get_all_continents(cls):
@@ -149,3 +161,127 @@ class OwidImport(db.Model):
     def countries(cls):
         bu = Bundle('countries', cls.iso_code, cls.location, cls.continent)
         return db.session.query(bu).distinct()
+
+    @classmethod
+    def get_all_countries(cls):
+        return db.session.query(
+                cls.location,
+                cls.iso_code,
+                cls.continent,
+                cls.population,
+                cls.population_density,
+                cls.median_age,
+                cls.aged_65_older,
+                cls.aged_70_older,
+                cls.gdp_per_capita,
+                cls.extreme_poverty,
+                cls.cardiovasc_death_rate,
+                cls.diabetes_prevalence,
+                cls.female_smokers,
+                cls.male_smokers,
+                cls.handwashing_facilities,
+                cls.hospital_beds_per_thousand,
+                cls.life_expectancy,
+                cls.human_development_index
+            ).group_by(
+                cls.location,
+                cls.iso_code,
+                cls.continent,
+                cls.population,
+                cls.population_density,
+                cls.median_age,
+                cls.aged_65_older,
+                cls.aged_70_older,
+                cls.gdp_per_capita,
+                cls.extreme_poverty,
+                cls.cardiovasc_death_rate,
+                cls.diabetes_prevalence,
+                cls.female_smokers,
+                cls.male_smokers,
+                cls.handwashing_facilities,
+                cls.hospital_beds_per_thousand,
+                cls.life_expectancy,
+                cls.human_development_index
+            ).distinct().order_by(cls.location.asc()).all()
+
+    @classmethod
+    def get_countries(cls, continent_str):
+        return db.session.query(
+            cls.location,
+            cls.iso_code,
+            cls.population,
+            cls.population_density,
+            cls.median_age,
+            cls.aged_65_older,
+            cls.aged_70_older,
+            cls.gdp_per_capita,
+            cls.extreme_poverty,
+            cls.cardiovasc_death_rate,
+            cls.diabetes_prevalence,
+            cls.female_smokers,
+            cls.male_smokers,
+            cls.handwashing_facilities,
+            cls.hospital_beds_per_thousand,
+            cls.life_expectancy,
+            cls.human_development_index
+        ).filter(cls.continent == continent_str).group_by(
+            cls.location,
+            cls.iso_code,
+            cls.population,
+            cls.population_density,
+            cls.median_age,
+            cls.aged_65_older,
+            cls.aged_70_older,
+            cls.gdp_per_capita,
+            cls.extreme_poverty,
+            cls.cardiovasc_death_rate,
+            cls.diabetes_prevalence,
+            cls.female_smokers,
+            cls.male_smokers,
+            cls.handwashing_facilities,
+            cls.hospital_beds_per_thousand,
+            cls.life_expectancy,
+            cls.human_development_index
+        ).distinct().order_by(cls.location.asc()).all()
+
+    @classmethod
+    def get_country_for(cls, iso_code, location):
+        return db.session.query(
+                cls.location,
+                cls.continent,
+                cls.iso_code,
+                cls.population,
+                cls.population_density,
+                cls.median_age,
+                cls.aged_65_older,
+                cls.aged_70_older,
+                cls.gdp_per_capita,
+                cls.extreme_poverty,
+                cls.cardiovasc_death_rate,
+                cls.diabetes_prevalence,
+                cls.female_smokers,
+                cls.male_smokers,
+                cls.handwashing_facilities,
+                cls.hospital_beds_per_thousand,
+                cls.life_expectancy,
+                cls.human_development_index
+            ).filter(and_((cls.iso_code == iso_code), (cls.location == location))).group_by(
+                cls.location,
+                cls.continent,
+                cls.iso_code,
+                cls.population,
+                cls.population_density,
+                cls.median_age,
+                cls.aged_65_older,
+                cls.aged_70_older,
+                cls.gdp_per_capita,
+                cls.extreme_poverty,
+                cls.cardiovasc_death_rate,
+                cls.diabetes_prevalence,
+                cls.female_smokers,
+                cls.male_smokers,
+                cls.handwashing_facilities,
+                cls.hospital_beds_per_thousand,
+                cls.life_expectancy,
+                cls.human_development_index
+            ).distinct().one()
diff --git a/src/covid19/blueprints/owid/owid_service.py b/src/covid19/blueprints/owid/owid_service.py
index e4b9c70726d71a837fcfb5c957436f9dce8ad793..445adf7236930259a5ec30eeeca6d600060f0407 100644
--- a/src/covid19/blueprints/owid/owid_service.py
+++ b/src/covid19/blueprints/owid/owid_service.py
@@ -2,8 +2,8 @@ from flask import flash
 
 from database import app
 
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_service_download import ApplicationServiceDownload
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_download import ApplicationServiceDownload
 from covid19.blueprints.owid.owid_service_import import OwidServiceImport
 from covid19.blueprints.owid.owid_service_update import OwidServiceUpdate, OwidServiceUpdateFull
 
@@ -45,11 +45,15 @@ class OwidService:
         app.logger.info("OwidService.task_database_drop_create done")
         return self
 
-    def run_download_only(self):
+    def run_download(self):
         self.service_download.download_file()
         return self
 
-    def run_import_only(self):
+    def run_import(self):
+        self.service_import.import_file()
+        return self
+
+    def task_admin_import_all_files(self):
         self.service_import.import_file()
         return self
 
@@ -63,4 +67,16 @@ class OwidService:
         self.service_update_full.full_update_star_schema()
         return self
 
+    def task_admin_full_update_star_schema(self):
+        self.service_import.import_file()
+        self.service_update_full.full_update_star_schema()
+        return self
+
+    def task_admin_update_full_dimension_tables(self):
+        self.service_update_full.full_update_dimension_tables()
+        return self
+
+    def task_admin_update_dimension_tables(self):
+        self.service_update.update_dimension_tables()
+        return self
 
diff --git a/src/covid19/blueprints/owid/owid_service_import.py b/src/covid19/blueprints/owid/owid_service_import.py
index 750359b6f63188421b502a869550e9c85a99e28c..2201e96322e68e45998b535667f97aed279ddabb 100644
--- a/src/covid19/blueprints/owid/owid_service_import.py
+++ b/src/covid19/blueprints/owid/owid_service_import.py
@@ -1,7 +1,8 @@
 import csv
 import psycopg2
 from database import db, app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.owid.owid_model import OwidDateReported
 from covid19.blueprints.owid.owid_model_import import OwidImport
 
 
@@ -27,11 +28,13 @@ class OwidServiceImport:
                 file_reader = csv.DictReader(csv_file, delimiter=',', quotechar='"')
                 k = 0
                 for row in file_reader:
+                    date_reported = row['date']
+                    d = OwidDateReported.create_new_object_factory(my_date_rep=date_reported)
                     o = OwidImport(
                         iso_code=row['iso_code'],
                         continent=row['continent'],
                         location=row['location'],
-                        date=row['date'],
+                        date=date_reported,
                         total_cases=row['total_cases'],
                         new_cases=row['new_cases'],
                         new_cases_smoothed=row['new_cases_smoothed'],
@@ -87,6 +90,13 @@ class OwidServiceImport:
                         hospital_beds_per_thousand=row['hospital_beds_per_thousand'],
                         life_expectancy=row['life_expectancy'],
                         human_development_index=row['human_development_index'],
+                        datum=d.datum,
+                        year=d.year,
+                        month=d.month,
+                        day_of_month=d.day_of_month,
+                        day_of_week=d.day_of_week,
+                        week_of_year=d.day_of_week,
+                        year_week=d.year_week
                     )
                     db.session.add(o)
                     k += 1
diff --git a/src/covid19/blueprints/owid/owid_service_update.py b/src/covid19/blueprints/owid/owid_service_update.py
index 0fae0f48f8089df89f82620857051a27356ecc79..02b4c44d57d97af1af25d790d976694a35691e0c 100644
--- a/src/covid19/blueprints/owid/owid_service_update.py
+++ b/src/covid19/blueprints/owid/owid_service_update.py
@@ -1,5 +1,5 @@
 from database import db, app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 from covid19.blueprints.owid.owid_model import OwidDateReported, OwidData, OwidContinent, OwidCountry
 from covid19.blueprints.owid.owid_model_import import OwidImport
 
@@ -17,15 +17,6 @@ class OwidServiceUpdateBase:
 
 class OwidServiceUpdateFull(OwidServiceUpdateBase):
 
-    def full_update_dimension_tables(self):
-        return self.__full_update_dimension_tables()
-
-    def __full_update_dimension_tables(self):
-        OwidData.remove_all()
-        self.__full_update_date_reported()
-        self.__full_update_country()
-        return self
-
     def __full_update_date_reported(self):
         app.logger.info(" WhoServiceUpdateFull.__full_update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
@@ -34,14 +25,9 @@ class OwidServiceUpdateFull(OwidServiceUpdateBase):
         log_lines = []
         for i_date_reported, in OwidImport.get_dates():
             i += 1
-            output = " [ " + str(i) + " ] " + i_date_reported
-            c = OwidDateReported.find_by_date_reported(i_date_reported)
-            if c is None:
-                o = OwidDateReported.create_new_object_factory(my_date_rep=i_date_reported)
-                db.session.add(o)
-                output += " added"
-            else:
-                output += " NOT added "+str(c.id)
+            o = OwidDateReported.create_new_object_factory(my_date_rep=i_date_reported)
+            db.session.add(o)
+            output = " full update date_reported [ " + str(i) + " ] " + i_date_reported + " added"
             log_lines.append(output)
         for log_line in log_lines:
             app.logger.info(log_line)
@@ -57,10 +43,13 @@ class OwidServiceUpdateFull(OwidServiceUpdateBase):
         app.logger.info("")
         log_lines = []
         OwidContinent.remove_all()
-        for oi in OwidImport.get_continents():
+        i = 0
+        for oi in OwidImport.get_all_continents():
             my_OwidContinent = OwidContinent(region=oi.continent)
             db.session.add(my_OwidContinent)
-            log_lines.append("added "+str(my_OwidContinent))
+            i += 1
+            output = " full update continent:  [ " + str(i) + " ] " + str(my_OwidContinent) + " added"
+            log_lines.append(output)
         for log_line in log_lines:
             app.logger.info(log_line)
         db.session.commit()
@@ -72,77 +61,62 @@ class OwidServiceUpdateFull(OwidServiceUpdateBase):
         app.logger.info(" OwidServiceUpdate.__full_update_country [begin]")
         app.logger.info("------------------------------------------------------------")
         app.logger.info("")
+        OwidData.remove_all()
         OwidCountry.remove_all()
         self.__full_update_continent()
+        log_lines = []
+        i = 0
+        for continent in OwidContinent.get_all():
+            log_lines.append("continent.region: " + continent.region)
+            for oi in OwidImport.get_countries(continent.region):
+                i += 1
+                o = OwidCountry(
+                    continent_id=continent.id,
+                    continent=continent,
+                    location=oi.location,
+                    iso_code=oi.iso_code,
+                    population=oi.population,
+                    population_density=oi.population_density,
+                    median_age=oi.median_age,
+                    aged_65_older=oi.aged_65_older,
+                    aged_70_older=oi.aged_70_older,
+                    gdp_per_capita=oi.gdp_per_capita,
+                    extreme_poverty=oi.extreme_poverty,
+                    cardiovasc_death_rate=oi.cardiovasc_death_rate,
+                    diabetes_prevalence=oi.diabetes_prevalence,
+                    female_smokers=oi.female_smokers,
+                    male_smokers=oi.male_smokers,
+                    handwashing_facilities=oi.handwashing_facilities,
+                    hospital_beds_per_thousand=oi.hospital_beds_per_thousand,
+                    life_expectancy=oi.life_expectancy,
+                    human_development_index=oi.human_development_index
+                )
+                db.session.add(o)
+                output = " full update country: [ " + str(i) + " ] " + str(o) + " added"
+                log_lines.append(output)
+        for log_line in log_lines:
+            app.logger.info(log_line)
+        db.session.commit()
         app.logger.info(" OwidServiceUpdate.__full_update_country [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
     def __full_update_fact_table(self):
-        app.logger.info(" WhoServiceUpdateFull.__full_update_fact_table [begin]")
+        app.logger.info(" OwidServiceUpdate.__full_update_fact_table [begin]")
         app.logger.info("------------------------------------------------------------")
+        anzahl_db_zeilen_persistent = 0
+        anzahl_db_zeilen_transient = 0
+        lfd_nr_tage = 0
         OwidData.remove_all()
-        new_dates_reported_from_import = OwidImport.get_dates_reported_as_array()
-        i = 0
-        d = 0
-        k = 0
-        for my_date_reported in new_dates_reported_from_import:
-            my_OwidDateReported = OwidDateReported.find_by_date_reported(my_date_reported)
-            if my_OwidDateReported is None:
-                myday = OwidDateReported.create_new_object_factory(my_date_reported)
-                db.session.add(myday)
-                db.session.commit()
-                my_OwidDateReported = OwidDateReported.get_by_date_reported(my_date_reported)
-                app.logger.info(str(my_OwidDateReported) + " added")
-            # else:
-            #     app.logger.info(str(my_OwidDateReported) + " not added" + str(my_OwidDateReported.id))
-            for oi in OwidImport.get_for_one_day(my_date_reported):
-                my_OwidContinent = OwidContinent.find_by_region(i_region=oi.continent)
-                if my_OwidContinent is None:
-                    my_OwidContinent = OwidContinent(region=oi.continent)
-                    db.session.add(my_OwidContinent)
-                    db.session.commit()
-                    my_OwidContinent = OwidContinent.find_by_region(i_region=oi.continent)
-                    app.logger.info(str(my_OwidContinent) + " added")
-                # else:
-                #     app.logger.info(str(my_OwidContinent) + " not added" + str(my_OwidContinent.id))
-                my_OwidCountry = OwidCountry.find_by_iso_code_and_location(
+        for my_owid_date_reported in OwidDateReported.get_all():
+            for oi in OwidImport.get_for_one_day(my_owid_date_reported.date_reported_import_str):
+                pers_owid_country = OwidCountry.get_by_iso_code_and_location(
                     iso_code=oi.iso_code,
                     location=oi.location
                 )
-                if my_OwidCountry is None:
-                    my_OwidCountry = OwidCountry(
-                        continent=my_OwidContinent,
-                        iso_code=oi.iso_code,
-                        location=oi.location,
-                        population=oi.population,
-                        population_density=oi.population_density,
-                        median_age=oi.median_age,
-                        aged_65_older=oi.aged_65_older,
-                        aged_70_older=oi.aged_70_older,
-                        gdp_per_capita=oi.gdp_per_capita,
-                        extreme_poverty=oi.extreme_poverty,
-                        cardiovasc_death_rate=oi.cardiovasc_death_rate,
-                        diabetes_prevalence=oi.diabetes_prevalence,
-                        female_smokers=oi.female_smokers,
-                        male_smokers=oi.male_smokers,
-                        handwashing_facilities=oi.handwashing_facilities,
-                        hospital_beds_per_thousand=oi.hospital_beds_per_thousand,
-                        life_expectancy=oi.life_expectancy,
-                        human_development_index=oi.human_development_index,
-                    )
-                    db.session.add(my_OwidCountry)
-                    db.session.commit()
-                    my_OwidCountry = OwidCountry.find_by_iso_code_and_location(
-                        iso_code=oi.iso_code,
-                        location=oi.location
-                    )
-                    app.logger.info(str(my_OwidCountry) + " added")
-                # else:
-                #     app.logger.info(str(my_OwidCountry) + " not added" + str(my_OwidCountry.id))
                 o = OwidData(
-                    date_reported=my_OwidDateReported,
-                    country=my_OwidCountry,
+                    date_reported=my_owid_date_reported,
+                    country=pers_owid_country,
                     total_cases=oi.total_cases,
                     new_cases=oi.new_cases,
                     new_cases_smoothed=oi.new_cases_smoothed,
@@ -185,23 +159,35 @@ class OwidServiceUpdateFull(OwidServiceUpdateBase):
                     stringency_index=oi.stringency_index,
                 )
                 db.session.add(o)
-                i += 1
-                k += 1
-            d += 1
-            if d % 7 == 0:
+                anzahl_db_zeilen_persistent += 1
+                anzahl_db_zeilen_transient += 1
+            my_owid_date_reported.set_processed()
+            db.session.add(my_owid_date_reported)
+            lfd_nr_tage += 1
+            if lfd_nr_tage % 7 == 0:
                 db.session.commit()
-                app.logger.info(" full update OWID  " + str(my_OwidDateReported) + " ... " + str(i) + " rows ( " + str(k) + " )")
-                k = 0
+                app.logger.info(" full update OWID  "
+                                + str(my_owid_date_reported) + " ... "
+                                + str(anzahl_db_zeilen_persistent)
+                                + " rows ( " + str(anzahl_db_zeilen_transient) + " )")
+                anzahl_db_zeilen_transient = 0
         db.session.commit()
-        app.logger.info(" full update OWID  "+str(i)+" rows total")
-        app.logger.info(" WhoServiceUpdateFull.__full_update_fact_table [done]")
+        app.logger.info(" full update OWID  :  "+str(anzahl_db_zeilen_persistent) +" rows total - for "+str(lfd_nr_tage)+" days")
+        app.logger.info(" OwidServiceUpdate.__full_update_fact_table [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
+    def full_update_dimension_tables(self):
+        OwidData.remove_all()
+        self.__full_update_date_reported()
+        self.__full_update_country()
+        return self
+
     def full_update_fact_table(self):
         app.logger.info(" WhoServiceUpdateFull.update_fact_table_initial_only [begin]")
         app.logger.info("------------------------------------------------------------")
         # TODO #216 implement OwidServiceUpdate.update_fact_table_initial_only()
+        OwidData.remove_all()
         self.__full_update_fact_table()
         app.logger.info(" WhoServiceUpdateFull.update_fact_table_initial_only [done]")
         app.logger.info("------------------------------------------------------------")
@@ -211,7 +197,9 @@ class OwidServiceUpdateFull(OwidServiceUpdateBase):
         app.logger.info(" WhoServiceUpdateFull.full_update_star_schema [begin]")
         app.logger.info("------------------------------------------------------------")
         # TODO #218 implement OwidServiceUpdate.update_star_schema_initial()
-        self.__full_update_dimension_tables()
+        OwidData.remove_all()
+        self.__full_update_date_reported()
+        self.__full_update_country()
         self.__full_update_fact_table()
         app.logger.info(" WhoServiceUpdateFull.full_update_star_schema [done]")
         app.logger.info("------------------------------------------------------------")
@@ -221,30 +209,57 @@ class OwidServiceUpdateFull(OwidServiceUpdateBase):
 class OwidServiceUpdate(OwidServiceUpdateBase):
 
     def __get_new_dates_reported_from_import(self):
-        new_dates_reported_from_import = []
-        list_datum_of_all_data = OwidData.get_datum_of_all_data()
-        for item in OwidImport.get_datum_of_all_import():
-            if not item in list_datum_of_all_data:
-                new_dates_reported_from_import.append(item)
-        return new_dates_reported_from_import
+        todo = []
+        owid_date_reported_all = []
+        for i in OwidDateReported.get_all():
+            owid_date_reported_all.append(i.date_reported_import_str)
+        for datum_from_import in OwidImport.get_datum_of_all_import():
+            if datum_from_import.date not in owid_date_reported_all:
+                todo.append(datum_from_import[0])
+        return todo
+
+    def __get_new_continents_from_import(self):
+        todo = []
+        owid_continent_all = []
+        for i in OwidContinent.get_all():
+            owid_continent_all.append(i.region)
+        for oi in OwidImport.get_all_continents():
+            item = oi.continent
+            if item not in owid_continent_all:
+                todo.append(item)
+        return todo
+
+    def __get_new_countries_from_import(self):
+        todo = []
+        owid_countries = []
+        for oc in OwidCountry.get_all():
+            oc_key = (
+                oc.iso_code,
+                oc.location,
+                oc.continent.region
+            )
+            owid_countries.append(oc_key)
+        for oi in OwidImport.get_all_countries():
+            country = (
+                oi.iso_code,
+                oi.location,
+                oi.continent
+            )
+            if country not in owid_countries:
+                todo.append(country)
+        return todo
 
     def __update_date_reported(self):
         app.logger.info(" OwidServiceUpdate.__update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
-        OwidData.remove_all()
-        OwidDateReported.remove_all()
         i = 0
         log_lines = []
-        for i_date_reported, in OwidImport.get_dates():
+        for i_date_reported in self.__get_new_dates_reported_from_import():
+            # app.logger.info(i_date_reported)
             i += 1
-            output = " [ " + str(i) + " ] " + i_date_reported
-            c = OwidDateReported.find_by_date_reported(i_date_reported)
-            if c is None:
-                o = OwidDateReported.create_new_object_factory(my_date_rep=i_date_reported)
-                db.session.add(o)
-                output += " added"
-            else:
-                output += " NOT added "+str(c.id)
+            o = OwidDateReported.create_new_object_factory(my_date_rep=i_date_reported)
+            db.session.add(o)
+            output = " added OwidDateReported: [ " + str(i) + " ] " + str(o) + " "
             log_lines.append(output)
         for log_line in log_lines:
             app.logger.info(log_line)
@@ -258,12 +273,11 @@ class OwidServiceUpdate(OwidServiceUpdateBase):
         app.logger.info(" OwidServiceUpdate.__update_continent [begin]")
         app.logger.info("------------------------------------------------------------")
         app.logger.info("")
-        OwidContinent.remove_all()
         log_lines = []
-        for oi in OwidImport.get_all_continents():
-            my_OwidContinent = OwidContinent(region=oi.continent)
-            db.session.add(my_OwidContinent)
-            log_lines.append("added "+str(my_OwidContinent))
+        for continent in self.__get_new_continents_from_import():
+            my_owid_continent = OwidContinent(region=continent)
+            db.session.add(my_owid_continent)
+            log_lines.append("added OwidContinent: "+str(my_owid_continent))
         for log_line in log_lines:
             app.logger.info(log_line)
         db.session.commit()
@@ -275,68 +289,58 @@ class OwidServiceUpdate(OwidServiceUpdateBase):
         app.logger.info(" OwidServiceUpdate.__update_country [begin]")
         app.logger.info("------------------------------------------------------------")
         app.logger.info("")
-        OwidCountry.remove_all()
         self.__update_continent()
+        for ci in self.__get_new_countries_from_import():
+            iso_code = ci[0]
+            location = ci[1]
+            continent = ci[2]
+            # app.logger.info("iso_code: " + iso_code + " - location: " + location + " - continent: " + continent)
+            oi = OwidImport.get_country_for(iso_code=iso_code, location=location)
+            owid_continent = OwidContinent.find_by_region(continent)
+            o = OwidCountry(
+                continent=owid_continent,
+                location=oi.location,
+                iso_code=oi.iso_code,
+                population=oi.population,
+                population_density=oi.population_density,
+                median_age=oi.median_age,
+                aged_65_older=oi.aged_65_older,
+                aged_70_older=oi.aged_70_older,
+                gdp_per_capita=oi.gdp_per_capita,
+                extreme_poverty=oi.extreme_poverty,
+                cardiovasc_death_rate=oi.cardiovasc_death_rate,
+                diabetes_prevalence=oi.diabetes_prevalence,
+                female_smokers=oi.female_smokers,
+                male_smokers=oi.male_smokers,
+                handwashing_facilities=oi.handwashing_facilities,
+                hospital_beds_per_thousand=oi.hospital_beds_per_thousand,
+                life_expectancy=oi.life_expectancy,
+                human_development_index=oi.human_development_index
+            )
+            db.session.add(o)
+            app.logger.info("added OwidCountry: " + str(o) + " ")
+        db.session.commit()
         app.logger.info(" OwidServiceUpdate.__update_country [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
     def __update_fact_table(self):
-        app.logger.info(" OwidServiceUpdate.__update_fact_table [begin]")
+        app.logger.info(" WhoServiceUpdateFull.__update_fact_table [begin]")
         app.logger.info("------------------------------------------------------------")
-        new_dates_reported_from_import = self.__get_new_dates_reported_from_import()
-        i = 0
-        d = 0
-        k = 0
-        for my_date_reported in new_dates_reported_from_import:
-            my_OwidDateReported = OwidDateReported.find_by_date_reported(my_date_reported)
-            if my_OwidDateReported is None:
-                myday = OwidDateReported.create_new_object_factory(my_date_reported)
-                db.session.add(myday)
-                db.session.commit()
-                my_OwidDateReported = OwidDateReported.get_by_date_reported(my_date_reported)
-                app.logger.info(str(my_OwidDateReported) + " added")
-            for oi in OwidImport.get_for_one_day(my_date_reported):
-                my_OwidContinent = OwidContinent.find_by_region(i_region=oi.continent)
-                if my_OwidContinent is None:
-                    my_OwidContinent = OwidContinent(region=oi.continent)
-                    db.session.add(my_OwidContinent)
-                    db.session.commit()
-                    my_OwidContinent = OwidContinent.find_by_region(i_region=oi.continent)
-                    app.logger.info(str(my_OwidContinent) + " added")
-                # else:
-                #     app.logger.info(str(my_OwidContinent) + " not added" + str(my_OwidContinent.id))
-                my_OwidCountry = OwidCountry.find_by_iso_code_and_location(iso_code=oi.iso_code, location=oi.location)
-                if my_OwidCountry is None:
-                    my_OwidCountry = OwidCountry(
-                        continent=my_OwidContinent,
-                        iso_code=oi.iso_code,
-                        location=oi.location,
-                        population=oi.population,
-                        population_density=oi.population_density,
-                        median_age=oi.median_age,
-                        aged_65_older=oi.aged_65_older,
-                        aged_70_older=oi.aged_70_older,
-                        gdp_per_capita=oi.gdp_per_capita,
-                        extreme_poverty=oi.extreme_poverty,
-                        cardiovasc_death_rate=oi.cardiovasc_death_rate,
-                        diabetes_prevalence=oi.diabetes_prevalence,
-                        female_smokers=oi.female_smokers,
-                        male_smokers=oi.male_smokers,
-                        handwashing_facilities=oi.handwashing_facilities,
-                        hospital_beds_per_thousand=oi.hospital_beds_per_thousand,
-                        life_expectancy=oi.life_expectancy,
-                        human_development_index=oi.human_development_index,
-                    )
-                    db.session.add(my_OwidCountry)
-                    db.session.commit()
-                    my_OwidCountry = OwidCountry.find_by_iso_code_and_location(iso_code=oi.iso_code, location=oi.location)
-                    app.logger.info(str(my_OwidCountry) + " added")
-                # else:
-                #     app.logger.info(str(my_OwidCountry) + " not added" + str(my_OwidCountry.id))
+        anzahl_db_zeilen_persistent = 0
+        anzahl_db_zeilen_transient = 0
+        lfd_nr_tage = 0
+        for unprocessed_owid_date_reported in OwidDateReported.get_unprocessed():
+            unprocessed_owid_date_reported.set_processed()
+            app.logger.info("unprocessed_date: " + str(unprocessed_owid_date_reported))
+            for oi in OwidImport.get_for_one_day(unprocessed_owid_date_reported.date_reported_import_str):
+                owid_country = OwidCountry.find_by_iso_code_and_location(
+                    iso_code=oi.iso_code,
+                    location=oi.location
+                )
                 o = OwidData(
-                    date_reported=my_OwidDateReported,
-                    country=my_OwidCountry,
+                    date_reported=unprocessed_owid_date_reported,
+                    country=owid_country,
                     total_cases=oi.total_cases,
                     new_cases=oi.new_cases,
                     new_cases_smoothed=oi.new_cases_smoothed,
@@ -379,31 +383,33 @@ class OwidServiceUpdate(OwidServiceUpdateBase):
                     stringency_index=oi.stringency_index,
                 )
                 db.session.add(o)
-                i += 1
-                k += 1
-            d += 1
-            if d % 7 == 0:
+                anzahl_db_zeilen_persistent += 1
+                anzahl_db_zeilen_transient += 1
+            lfd_nr_tage += 1
+            if lfd_nr_tage % 7 == 0:
                 db.session.commit()
-                app.logger.info(" update OWID  " + str(my_OwidDateReported) + " ... " + str(i) + " rows ( " + str(k) + " )")
-                k = 0
+                app.logger.info(
+                    " update OWID  :  added OwidData " + str(unprocessed_owid_date_reported)
+                    + " ... " + str(anzahl_db_zeilen_persistent)
+                    + " rows ( " + str(anzahl_db_zeilen_transient)
+                    + " )")
+                anzahl_db_zeilen_transient = 0
         db.session.commit()
-        app.logger.info(" update OWID  :  "+str(i)+" rows total")
-        app.logger.info(" OwidServiceUpdate.__update_fact_table [done]")
+        app.logger.info(" update OWID  :  added OwidData "
+                        + str(anzahl_db_zeilen_persistent)
+                        + " rows total - for "+str(lfd_nr_tage)+" days")
+        app.logger.info(" WhoServiceUpdateFull.__update_fact_table [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_dimension_tables(self):
-        OwidData.remove_all()
-        self.__update_date_reported()
-        self.__update_country()
-        return self
-
     def update_dimension_tables(self):
-        app.logger.info(" OwidServiceUpdate.update_dimension_tables_only [begin]")
+        app.logger.info(" OwidServiceUpdate.update_dimension_tables [begin]")
         app.logger.info("------------------------------------------------------------")
         # TODO #214 implement OwidServiceUpdate.update_dimension_tables_only()
-        self.__update_dimension_tables()
-        app.logger.info(" OwidServiceUpdate.update_dimension_tables_only [done]")
+        OwidData.remove_all()
+        self.__update_date_reported()
+        self.__update_country()
+        app.logger.info(" OwidServiceUpdate.update_dimension_tables [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
@@ -420,7 +426,9 @@ class OwidServiceUpdate(OwidServiceUpdateBase):
         app.logger.info(" OwidServiceUpdate.update_star_schema [begin]")
         app.logger.info("------------------------------------------------------------")
         # TODO #217 implement OwidServiceUpdate.update_star_schema_incremental()
-        self.__update_dimension_tables()
+        OwidData.remove_all()
+        self.__update_date_reported()
+        self.__update_country()
         self.__update_fact_table()
         app.logger.info(" OwidServiceUpdate.update_star_schema [done]")
         app.logger.info("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/owid/owid_views.py b/src/covid19/blueprints/owid/owid_views.py
index 1198135db0e13fd50e981056557a28d82287a838..cf5c4c8df9635dc6fc43dff230b290f2c090d0cd 100644
--- a/src/covid19/blueprints/owid/owid_views.py
+++ b/src/covid19/blueprints/owid/owid_views.py
@@ -5,11 +5,14 @@ from celery.utils.log import get_task_logger
 from flask_admin.contrib.sqla import ModelView
 
 from database import app, admin, db
-from covid19.blueprints.application.application_services import owid_service
-from covid19.blueprints.application.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 from covid19.blueprints.owid.owid_model import OwidDateReported, OwidData, OwidContinent, OwidCountry
 from covid19.blueprints.owid.owid_model_import import OwidImport
-from covid19.blueprints.application.application_model_transient import ApplicationPage
 
 
 app_owid = Blueprint('owid', __name__, template_folder='templates', url_prefix='/owid ')
@@ -246,9 +249,9 @@ def url_owid_date_reported_all(page: int = 1):
 def url_owid_date_reported_one(date_reported_id: int, page: int = 1):
     date_reported = OwidDateReported.get_by_id(date_reported_id)
     page_info = ApplicationPage(
-        "Date Reported: " + date_reported.date_reported,
+        "Date Reported: " + str(date_reported),
         'OWID',
-        "data of all reported countries for OWID date reported " + date_reported.date_reported + " "
+        "data of all reported countries for OWID date reported " + str(date_reported) + " "
     )
     try:
         page_data = OwidData.get_data_for_day(date_reported, page)
@@ -267,9 +270,9 @@ def url_owid_date_reported_one(date_reported_id: int, page: int = 1):
 def url_owid_date_reported_one_cases_new(date_reported_id: int, page: int = 1):
     date_reported = OwidDateReported.get_by_id(date_reported_id)
     page_info = ApplicationPage(
-        "Date Reported: " + date_reported.date_reported,
+        "Date Reported: " + str(date_reported),
         'OWID',
-        "data of all reported countries for OWID date reported " + date_reported.date_reported + " "
+        "data of all reported countries for OWID date reported " + str(date_reported) + " "
     )
     try:
         page_data = OwidData.get_data_for_day_order_by_cases_new(date_reported, page)
@@ -288,9 +291,9 @@ def url_owid_date_reported_one_cases_new(date_reported_id: int, page: int = 1):
 def url_owid_date_reported_one_cases_cumulative(date_reported_id: int, page: int = 1):
     date_reported = OwidDateReported.get_by_id(date_reported_id)
     page_info = ApplicationPage(
-        "Date Reported: " + date_reported.date_reported,
+        "Date Reported: " + str(date_reported),
         'OWID',
-        "data of all reported countries for OWID date reported " + date_reported.date_reported + " "
+        "data of all reported countries for OWID date reported " + str(date_reported) + " "
     )
     try:
         page_data = OwidData.get_data_for_day_order_by_cases_cumulative(date_reported, page)
@@ -309,9 +312,9 @@ def url_owid_date_reported_one_cases_cumulative(date_reported_id: int, page: int
 def url_owid_date_reported_one_deaths_new(date_reported_id: int, page: int = 1):
     date_reported = OwidDateReported.get_by_id(date_reported_id)
     page_info = ApplicationPage(
-        "Date Reported: " + date_reported.date_reported,
+        "Date Reported: " + str(date_reported),
         'OWID',
-        "data of all reported countries for OWID date reported " + date_reported.date_reported + " "
+        "data of all reported countries for OWID date reported " + str(date_reported) + " "
     )
     try:
         page_data = OwidData.get_data_for_day_order_by_deaths_new(date_reported, page)
@@ -330,9 +333,9 @@ def url_owid_date_reported_one_deaths_new(date_reported_id: int, page: int = 1):
 def url_owid_date_reported_one_deaths_cumulative(date_reported_id: int, page: int = 1):
     date_reported = OwidDateReported.get_by_id(date_reported_id)
     page_info = ApplicationPage(
-        "Date Reported: " + date_reported.date_reported,
+        "Date Reported: " + str(date_reported),
         'OWID',
-        "data of all reported countries for OWID date reported " + date_reported.date_reported + " "
+        "data of all reported countries for OWID date reported " + str(date_reported) + " "
     )
     try:
         page_data = OwidData.get_data_for_day_order_by_deaths_cumulative(date_reported, page)
@@ -451,26 +454,13 @@ def url_owid_country_one_germany(page: int = 1):
 
 
 @celery.task(bind=True)
-def task_owid_download_only(self):
-    logger = get_task_logger(__name__)
-    self.update_state(state=states.STARTED)
-    logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_owid_download_only [OK] ")
-    logger.info("------------------------------------------------------------")
-    owid_service.run_download_only()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_owid_download_only)"
-    return result
-
-
-@celery.task(bind=True)
-def task_owid_import_only(self):
+def task_owid_import(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_owid_import_only [OK] ")
     logger.info("------------------------------------------------------------")
-    owid_service.run_import_only()
+    owid_service.run_import()
     self.update_state(state=states.SUCCESS)
     result = "OK (task_owid_import_only)"
     return result
@@ -535,7 +525,7 @@ def task_owid_full_update_star_schema(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_owid_full_update_star_schema [OK] ")
     logger.info("------------------------------------------------------------")
-    owid_service.service_update_full.full_update_star_schema()
+    owid_service.full_update_star_schema()
     self.update_state(state=states.SUCCESS)
     result = "OK (task_owid_update_star_schema_incremental)"
     return result
@@ -548,7 +538,7 @@ def task_owid_update_star_schema(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_owid_update_star_schema [OK] ")
     logger.info("------------------------------------------------------------")
-    owid_service.service_update.update_star_schema()
+    owid_service.update_star_schema()
     self.update_state(state=states.SUCCESS)
     result = "OK (task_owid_update_star_schema_initial)"
     return result
@@ -571,7 +561,7 @@ def url_task_owid_download():
 @app_owid.route('/task/import/only')
 def url_task_owid_import():
     app.logger.info("url_task_owid_import_only [start]")
-    task_owid_import_only.apply_async()
+    task_owid_import.apply_async()
     flash(message="started task_owid_import_only", category="warning")
     app.logger.warn("started task_owid_import_only")
     app.logger.info("url_task_owid_import_only [done]")
@@ -588,7 +578,7 @@ def url_task_owid_full_update_dimension_tables():
     return redirect(url_for('owid.url_owid_tasks'))
 
 
-@app_owid.route('/task/update/dimension-tables/initial/only')
+@app_owid.route('/task/update/dimension-tables')
 def url_task_owid_update_dimension_tables():
     app.logger.info("url_task_owid_update_dimension_tables [start]")
     task_owid_update_dimension_tables.apply_async()
diff --git a/src/covid19/blueprints/owid/templates/owid/continent/owid_continent_all.html b/src/covid19/blueprints/owid/templates/owid/continent/owid_continent_all.html
index 3137b1ec9e5eeab575e1a7f175d8dc1859684dd1..717ea29770a2030bf1ea1c8ab51148155f54399b 100644
--- a/src/covid19/blueprints/owid/templates/owid/continent/owid_continent_all.html
+++ b/src/covid19/blueprints/owid/templates/owid/continent/owid_continent_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/continent/owid_continent_one.html b/src/covid19/blueprints/owid/templates/owid/continent/owid_continent_one.html
index 96ccd639b8d89a48283c8ab791b4a532f13b59dc..15bfb5bfdac86ffaa042757f27d7ea554692bb34 100644
--- a/src/covid19/blueprints/owid/templates/owid/continent/owid_continent_one.html
+++ b/src/covid19/blueprints/owid/templates/owid/continent/owid_continent_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/country/owid_country_all.html b/src/covid19/blueprints/owid/templates/owid/country/owid_country_all.html
index a7cddc477d4aec6b41b3cf48da304573fb2351d2..516a86a2ea389e4d0818e9f7b9ae90198990566b 100644
--- a/src/covid19/blueprints/owid/templates/owid/country/owid_country_all.html
+++ b/src/covid19/blueprints/owid/templates/owid/country/owid_country_all.html
@@ -1,10 +1,10 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
     {% include 'owid/navigation/owid_navtabs.html' %}
 
-    <div class="container-fluid">
+    <div class="container">
         <div class="row">
             <div class="col">
                 {% include 'owid/country/owid_country_all_pagination.html' %}
diff --git a/src/covid19/blueprints/owid/templates/owid/country/owid_country_all_table.html b/src/covid19/blueprints/owid/templates/owid/country/owid_country_all_table.html
index 73457f71b375d1aa03dec90761688f173ca60ac0..be6613db0b10dffcf74e2b4d7c027a30f58250a7 100644
--- a/src/covid19/blueprints/owid/templates/owid/country/owid_country_all_table.html
+++ b/src/covid19/blueprints/owid/templates/owid/country/owid_country_all_table.html
@@ -1,24 +1,25 @@
+    <div class="table-responsive">
     <table class="table table-hover table-striped table-dark">
         <thead class="table-secondary">
             <tr>
-                <th scope="col">iso_code</th>
+                <th scope="col">iso code</th>
                 <th scope="col">continent</th>
                 <th scope="col">location</th>
                 <th scope="col">population</th>
-                <th scope="col">population_density</th>
-                <th scope="col">median_age</th>
-                <th scope="col">aged_65_older</th>
-                <th scope="col">aged_70_older</th>
-                <th scope="col">gdp_per_capita</th>
-                <th scope="col">extreme_poverty</th>
-                <th scope="col">cardiovasc_death_rate</th>
-                <th scope="col">diabetes_prevalence</th>
-                <th scope="col">female_smokers</th>
-                <th scope="col">male_smokers</th>
-                <th scope="col">handwashing_facilities</th>
-                <th scope="col">hospital_beds_per_thousand</th>
-                <th scope="col">life_expectancy</th>
-                <th scope="col">human_development_index</th>
+                <th scope="col">population density</th>
+                <th scope="col">median age</th>
+                <th scope="col">aged 65 older</th>
+                <th scope="col">aged 70 older</th>
+                <th scope="col">gdp per capita</th>
+                <th scope="col">extreme poverty</th>
+                <th scope="col">cardiovasc death rate</th>
+                <th scope="col">diabetes prevalence</th>
+                <th scope="col">female smokers</th>
+                <th scope="col">male smokers</th>
+                <th scope="col">handwashing facilities</th>
+                <th scope="col">hospital beds per thousand</th>
+                <th scope="col">life expectancy</th>
+                <th scope="col">human development index</th>
             </tr>
         </thead>
         <tbody>
@@ -57,4 +58,5 @@
             </tr>
         {% endfor %}
         </tbody>
-    </table>
\ No newline at end of file
+    </table>
+    </div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/owid/templates/owid/country/owid_country_one.html b/src/covid19/blueprints/owid/templates/owid/country/owid_country_one.html
index d1e72c2287b004408d1469c462fa9829b5a24996..51a05fe9ec97cc6a3ecdeadb5fb1f47d8fa2449e 100644
--- a/src/covid19/blueprints/owid/templates/owid/country/owid_country_one.html
+++ b/src/covid19/blueprints/owid/templates/owid/country/owid_country_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/country/owid_country_one_germany.html b/src/covid19/blueprints/owid/templates/owid/country/owid_country_one_germany.html
index d1e72c2287b004408d1469c462fa9829b5a24996..da2849a74b0744f18793fbf0ebbbd90d64068382 100644
--- a/src/covid19/blueprints/owid/templates/owid/country/owid_country_one_germany.html
+++ b/src/covid19/blueprints/owid/templates/owid/country/owid_country_one_germany.html
@@ -1,10 +1,10 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
     {% include 'owid/navigation/owid_navtabs.html' %}
 
-    <div class="container-fluid">
+    <div class="container">
         <div class="row">
             <div class="col">
                 {% include 'owid/country/owid_country_one_pagination.html' %}
diff --git a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_all.html b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_all.html
index fca14b608beb62a3e674b967130fd08784e0d016..86fb19fbf3713ee5e68651a190cce2d91228b240 100644
--- a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_all.html
+++ b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_all_table.html b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_all_table.html
index 5162b7c1100292910a355521c33d92a0aebd668c..f4b976a292a97638ce809d879989026b984c1e5b 100644
--- a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_all_table.html
+++ b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_all_table.html
@@ -1,3 +1,4 @@
+                <div class="table-responsive">
                 <table class="table table-hover table-striped table-dark">
                     <thead class="table-secondary">
                         <tr>
@@ -35,4 +36,5 @@
                             <th scope="col" class="text-left">year</th>
                         </tr>
                     </tfoot>
-                </table>
\ No newline at end of file
+                </table>
+                </div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one.html b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one.html
index 507a19cd08a16de7a3a5d9781d5d6ed3d212a9f7..73f2ed3529e7d1ab0ec4fef6960af9d9de202a77 100644
--- a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one.html
+++ b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one.html
@@ -1,10 +1,10 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
     {% include 'owid/navigation/owid_navtabs.html' %}
 
-    <div class="container-fluid">
+    <div class="container">
         <div class="row">
             <div class="col">
                 {% include 'owid/date_reported/owid_date_reported_one_pagination.html' %}
diff --git a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_cases_cumulative.html b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_cases_cumulative.html
index 9936b1d3ab1ea04351f1a7da984e1fd2a229a4c4..fed816e629cf8cbf0e91778e4f8db1c1d53d0e97 100644
--- a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_cases_cumulative.html
+++ b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_cases_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_cases_new.html b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_cases_new.html
index 2c1b5ff2b1a65f68b3f5e32916f4ee47bbd5865b..d6cc4a12b2d659c5e07b611043946c82e9f98f8c 100644
--- a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_cases_new.html
+++ b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_cases_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_deaths_cumulative.html b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_deaths_cumulative.html
index e0c793f4cc9dff7a8c2d6db80e67a725e916f0bd..678688c1e259ad81f622e888b0dc3490a30307b7 100644
--- a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_deaths_cumulative.html
+++ b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_deaths_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_deaths_new.html b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_deaths_new.html
index 6cbae917275c762b0f26a93a2ba711afc7be442d..041d1cf40a5fb8f712ebc04eac3cdfc34ea005d1 100644
--- a/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_deaths_new.html
+++ b/src/covid19/blueprints/owid/templates/owid/date_reported/owid_date_reported_one_deaths_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/imported/owid_imported.html b/src/covid19/blueprints/owid/templates/owid/imported/owid_imported.html
index 0422eb7d5235f4478fba98d7942f5dd7e5008a63..ee244e6a17f8f099ed9e9d54c84a84a23bd0b270 100644
--- a/src/covid19/blueprints/owid/templates/owid/imported/owid_imported.html
+++ b/src/covid19/blueprints/owid/templates/owid/imported/owid_imported.html
@@ -1,10 +1,10 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
     {% include 'owid/navigation/owid_navtabs.html' %}
 
-    <div class="container-fluid">
+    <div class="container">
         <div class="row">
             <div class="col">
                 {% include 'owid/imported/owid_imported_pagination.html' %}
diff --git a/src/covid19/blueprints/owid/templates/owid/imported/owid_imported_table.html b/src/covid19/blueprints/owid/templates/owid/imported/owid_imported_table.html
index fed302720efc142bd880383cb7bec5976a7df924..0dec37019161a87a9aa8ef742457a6fab6a2bfb1 100644
--- a/src/covid19/blueprints/owid/templates/owid/imported/owid_imported_table.html
+++ b/src/covid19/blueprints/owid/templates/owid/imported/owid_imported_table.html
@@ -1,72 +1,73 @@
+                <div class="table-responsive">
                 <table class="table table-hover table-striped table-dark">
                     <thead>
                         <tr>
-                            <th scope="col">iso_code</th>
                             <th scope="col">continent</th>
+                            <th scope="col">iso code</th>
                             <th scope="col">location</th>
                             <th scope="col">date</th>
-                            <th scope="col">total_cases</th>
-                            <th scope="col">new_cases</th>
-                            <th scope="col">new_cases_smoothed</th>
-                            <th scope="col">total_deaths</th>
-                            <th scope="col">new_deaths</th>
-                            <th scope="col">new_deaths_smoothed</th>
-                            <th scope="col">total_cases_per_million</th>
-                            <th scope="col">new_cases_per_million</th>
-                            <th scope="col">new_cases_smoothed_per_million</th>
-                            <th scope="col">total_deaths_per_million</th>
-                            <th scope="col">new_deaths_per_million</th>
-                            <th scope="col">new_deaths_smoothed_per_million</th>
-                            <th scope="col">reproduction_rate</th>
-                            <th scope="col">icu_patients</th>
-                            <th scope="col">icu_patients_per_million</th>
-                            <th scope="col">hosp_patients</th>
-                            <th scope="col">hosp_patients_per_million</th>
-                            <th scope="col">weekly_icu_admissions</th>
-                            <th scope="col">weekly_icu_admissions_per_million</th>
-                            <th scope="col">weekly_hosp_admissions</th>
-                            <th scope="col">weekly_hosp_admissions_per_million</th>
-                            <th scope="col">new_tests</th>
-                            <th scope="col">total_tests</th>
-                            <th scope="col">total_tests_per_thousand</th>
-                            <th scope="col">new_tests_per_thousand</th>
-                            <th scope="col">new_tests_smoothed</th>
-                            <th scope="col">new_tests_smoothed_per_thousand</th>
-                            <th scope="col">positive_rate</th>
-                            <th scope="col">tests_per_case</th>
-                            <th scope="col">tests_units</th>
-                            <th scope="col">total_vaccinations</th>
-                            <th scope="col">people_vaccinated</th>
-                            <th scope="col">people_fully_vaccinated</th>
-                            <th scope="col">new_vaccinations</th>
-                            <th scope="col">new_vaccinations_smoothed</th>
-                            <th scope="col">total_vaccinations_per_hundred</th>
-                            <th scope="col">people_vaccinated_per_hundred</th>
-                            <th scope="col">people_fully_vaccinated_per_hundred</th>
-                            <th scope="col">new_vaccinations_smoothed_per_million</th>
-                            <th scope="col">stringency_index</th>
+                            <th scope="col">total cases</th>
+                            <th scope="col">new cases</th>
+                            <th scope="col">new cases smoothed</th>
+                            <th scope="col">total deaths</th>
+                            <th scope="col">new deaths</th>
+                            <th scope="col">new deaths smoothed</th>
+                            <th scope="col">total cases per million</th>
+                            <th scope="col">new cases per million</th>
+                            <th scope="col">new cases smoothed per million</th>
+                            <th scope="col">total deaths per million</th>
+                            <th scope="col">new_deaths per million</th>
+                            <th scope="col">new deaths smoothed per million</th>
+                            <th scope="col">reproduction rate</th>
+                            <th scope="col">icu patients</th>
+                            <th scope="col">icu patients per million</th>
+                            <th scope="col">hosp patients</th>
+                            <th scope="col">hosp patients per million</th>
+                            <th scope="col">weekly icu admissions</th>
+                            <th scope="col">weekly icu admissions per million</th>
+                            <th scope="col">weekly hosp admissions</th>
+                            <th scope="col">weekly hosp admissions per million</th>
+                            <th scope="col">new tests</th>
+                            <th scope="col">total tests</th>
+                            <th scope="col">total tests per thousand</th>
+                            <th scope="col">new tests per thousand</th>
+                            <th scope="col">new tests smoothed</th>
+                            <th scope="col">new tests smoothed per thousand</th>
+                            <th scope="col">positive rate</th>
+                            <th scope="col">tests per case</th>
+                            <th scope="col">tests units</th>
+                            <th scope="col">total vaccinations</th>
+                            <th scope="col">people vaccinated</th>
+                            <th scope="col">people fully vaccinated</th>
+                            <th scope="col">new vaccinations</th>
+                            <th scope="col">new vaccinations smoothed</th>
+                            <th scope="col">total vaccinations per hundred</th>
+                            <th scope="col">people vaccinated per hundred</th>
+                            <th scope="col">people fully vaccinated per hundred</th>
+                            <th scope="col">new vaccinations smoothed per million</th>
+                            <th scope="col">stringency index</th>
                             <th scope="col">population</th>
-                            <th scope="col">population_density</th>
-                            <th scope="col">median_age</th>
-                            <th scope="col">aged_65_older</th>
-                            <th scope="col">aged_70_older</th>
-                            <th scope="col">gdp_per_capita</th>
-                            <th scope="col">extreme_poverty</th>
-                            <th scope="col">cardiovasc_death_rate</th>
-                            <th scope="col">diabetes_prevalence</th>
-                            <th scope="col">female_smokers</th>
-                            <th scope="col">male_smokers</th>
-                            <th scope="col">handwashing_facilities</th>
-                            <th scope="col">hospital_beds_per_thousand</th>
-                            <th scope="col">life_expectancy</th>
-                            <th scope="col">human_development_index</th>
+                            <th scope="col">population density</th>
+                            <th scope="col">median age</th>
+                            <th scope="col">aged 65 older</th>
+                            <th scope="col">aged 70 older</th>
+                            <th scope="col">gdp per capita</th>
+                            <th scope="col">extreme poverty</th>
+                            <th scope="col">cardiovasc death rate</th>
+                            <th scope="col">diabetes prevalence</th>
+                            <th scope="col">female smokers</th>
+                            <th scope="col">male smokers</th>
+                            <th scope="col">handwashing facilities</th>
+                            <th scope="col">hospital beds per thousand</th>
+                            <th scope="col">life expectancy</th>
+                            <th scope="col">human development index</th>
                         </tr>
                     </thead>
                     <tbody>
                     {% for owid_import in page_data.items %}
                         <tr>
-                            <td>{{ owid_import.iso_code }}</td>
                             <td>{{ owid_import.continent }}</td>
+                            <td>{{ owid_import.iso_code }}</td>
                             <td>{{ owid_import.location }}</td>
                             <td>{{ owid_import.date }}</td>
                             <td>{{ owid_import.total_cases }}</td>
@@ -127,4 +128,5 @@
                         </tr>
                     {% endfor %}
                     </tbody>
-                </table>
\ No newline at end of file
+                </table>
+                </div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/owid/templates/owid/navigation/owid_navtabs.html b/src/covid19/blueprints/owid/templates/owid/navigation/owid_navtabs.html
index f63c40cad8c29f9e9e83bf99f9bf2e60132739bd..525365adf39aa62dd6fe9a2bffbe7ceca04e2f58 100644
--- a/src/covid19/blueprints/owid/templates/owid/navigation/owid_navtabs.html
+++ b/src/covid19/blueprints/owid/templates/owid/navigation/owid_navtabs.html
@@ -13,12 +13,14 @@
                         <a class="nav-link"
                            href="{{ url_for( 'owid.url_owid_tasks') }}">OWID tasks</a>
                     </li>
-                    {% endif %}
-                    {% if current_user.is_authenticated %}
                     <li class="nav-item">
                         <a class="nav-link"
                            href="{{ url_for( 'owid_test.url_owid_test_tests') }}">OWID Tests</a>
                     </li>
+                    <li class="nav-item">
+                        <a class="nav-link"
+                           href="{{ url_for( 'owid.url_owid_imported') }}">OWID imported</a>
+                    </li>
                     {% endif %}
                     <li class="nav-item">
                         <a class="nav-link"
@@ -36,12 +38,6 @@
                         <a class="nav-link"
                            href="{{ url_for( 'owid.url_owid_country_one_germany') }}">OWID Germany</a>
                     </li>
-                    {% if current_user.is_authenticated %}
-                    <li class="nav-item">
-                        <a class="nav-link"
-                           href="{{ url_for( 'owid.url_owid_imported') }}">OWID imported</a>
-                    </li>
-                    {% endif %}
                 </ul>
             </nav>
         </div>
diff --git a/src/covid19/blueprints/owid/templates/owid/owid_data/owid_data_table.html b/src/covid19/blueprints/owid/templates/owid/owid_data/owid_data_table.html
index 05352c12f7838d8ef870d1543262665467c83186..148ac80ae0648c2a26ac4348777ce4e9a260e87b 100644
--- a/src/covid19/blueprints/owid/templates/owid/owid_data/owid_data_table.html
+++ b/src/covid19/blueprints/owid/templates/owid/owid_data/owid_data_table.html
@@ -1,65 +1,66 @@
+    <div class="table-responsive">
     <table class="table table-hover table-striped table-dark">
         <thead class="table-secondary">
             <tr>
-                <th scope="col">iso_code</th>
+                <th scope="col">iso code</th>
                 <th scope="col">continent</th>
                 <th scope="col">location</th>
                 <th scope="col">date</th>
-                <th scope="col">total_cases</th>
-                <th scope="col">new_cases</th>
-                <th scope="col">new_cases_smoothed</th>
-                <th scope="col">total_deaths</th>
-                <th scope="col">new_deaths</th>
-                <th scope="col">new_deaths_smoothed</th>
-                <th scope="col">total_cases_per_million</th>
-                <th scope="col">new_cases_per_million</th>
-                <th scope="col">new_cases_smoothed_per_million</th>
-                <th scope="col">total_deaths_per_million</th>
-                <th scope="col">new_deaths_per_million</th>
-                <th scope="col">new_deaths_smoothed_per_million</th>
-                <th scope="col">reproduction_rate</th>
-                <th scope="col">icu_patients</th>
-                <th scope="col">icu_patients_per_million</th>
-                <th scope="col">hosp_patients</th>
-                <th scope="col">hosp_patients_per_million</th>
-                <th scope="col">weekly_icu_admissions</th>
-                <th scope="col">weekly_icu_admissions_per_million</th>
-                <th scope="col">weekly_hosp_admissions</th>
-                <th scope="col">weekly_hosp_admissions_per_million</th>
-                <th scope="col">new_tests</th>
-                <th scope="col">total_tests</th>
-                <th scope="col">total_tests_per_thousand</th>
-                <th scope="col">new_tests_per_thousand</th>
-                <th scope="col">new_tests_smoothed</th>
-                <th scope="col">new_tests_smoothed_per_thousand</th>
-                <th scope="col">positive_rate</th>
-                <th scope="col">tests_per_case</th>
-                <th scope="col">tests_units</th>
-                <th scope="col">total_vaccinations</th>
-                <th scope="col">people_vaccinated</th>
-                <th scope="col">people_fully_vaccinated</th>
-                <th scope="col">new_vaccinations</th>
-                <th scope="col">new_vaccinations_smoothed</th>
-                <th scope="col">total_vaccinations_per_hundred</th>
-                <th scope="col">people_vaccinated_per_hundred</th>
-                <th scope="col">people_fully_vaccinated_per_hundred</th>
-                <th scope="col">new_vaccinations_smoothed_per_million</th>
-                <th scope="col">stringency_index</th>
+                <th scope="col">total cases</th>
+                <th scope="col">new cases</th>
+                <th scope="col">new cases smoothed</th>
+                <th scope="col">total deaths</th>
+                <th scope="col">new deaths</th>
+                <th scope="col">new deaths smoothed</th>
+                <th scope="col">total cases per million</th>
+                <th scope="col">new cases per million</th>
+                <th scope="col">new cases smoothed per million</th>
+                <th scope="col">total deaths per million</th>
+                <th scope="col">new deaths per million</th>
+                <th scope="col">new deaths smoothed per million</th>
+                <th scope="col">reproduction rate</th>
+                <th scope="col">icu patients</th>
+                <th scope="col">icu patients per million</th>
+                <th scope="col">hosp patients</th>
+                <th scope="col">hosp patients per million</th>
+                <th scope="col">weekly icu admissions</th>
+                <th scope="col">weekly icu admissions per million</th>
+                <th scope="col">weekly hosp admissions</th>
+                <th scope="col">weekly hosp admissions per million</th>
+                <th scope="col">new tests</th>
+                <th scope="col">total tests</th>
+                <th scope="col">total tests per thousand</th>
+                <th scope="col">new tests per thousand</th>
+                <th scope="col">new tests smoothed</th>
+                <th scope="col">new tests smoothed per thousand</th>
+                <th scope="col">positive rate</th>
+                <th scope="col">tests per case</th>
+                <th scope="col">tests units</th>
+                <th scope="col">total vaccinations</th>
+                <th scope="col">people vaccinated</th>
+                <th scope="col">people fully vaccinated</th>
+                <th scope="col">new vaccinations</th>
+                <th scope="col">new vaccinations_smoothed</th>
+                <th scope="col">total vaccinations per hundred</th>
+                <th scope="col">people vaccinated per hundred</th>
+                <th scope="col">people fully vaccinated per hundred</th>
+                <th scope="col">new vaccinations smoothed per million</th>
+                <th scope="col">stringency index</th>
                 <th scope="col">population</th>
-                <th scope="col">population_density</th>
-                <th scope="col">median_age</th>
-                <th scope="col">aged_65_older</th>
-                <th scope="col">aged_70_older</th>
-                <th scope="col">gdp_per_capita</th>
-                <th scope="col">extreme_poverty</th>
-                <th scope="col">cardiovasc_death_rate</th>
-                <th scope="col">diabetes_prevalence</th>
-                <th scope="col">female_smokers</th>
-                <th scope="col">male_smokers</th>
-                <th scope="col">handwashing_facilities</th>
-                <th scope="col">hospital_beds_per_thousand</th>
-                <th scope="col">life_expectancy</th>
-                <th scope="col">human_development_index</th>
+                <th scope="col">population density</th>
+                <th scope="col">median age</th>
+                <th scope="col">aged 65 older</th>
+                <th scope="col">aged 70 older</th>
+                <th scope="col">gdp per capita</th>
+                <th scope="col">extreme poverty</th>
+                <th scope="col">cardiovasc death rate</th>
+                <th scope="col">diabetes prevalence</th>
+                <th scope="col">female smokers</th>
+                <th scope="col">male smokers</th>
+                <th scope="col">handwashing facilities</th>
+                <th scope="col">hospital beds per thousand</th>
+                <th scope="col">life expectancy</th>
+                <th scope="col">human development index</th>
             </tr>
         </thead>
         <tbody>
@@ -203,4 +204,5 @@
             </tr>
         {% endfor %}
         </tbody>
-    </table>
\ No newline at end of file
+    </table>
+    </div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/owid/templates/owid/owid_info.html b/src/covid19/blueprints/owid/templates/owid/owid_info.html
index dd71fb641e7b962aaf9fcf862f76d1ec924a61e6..4755c5044614f57d12b13b3c39305c3da3d2ec65 100644
--- a/src/covid19/blueprints/owid/templates/owid/owid_info.html
+++ b/src/covid19/blueprints/owid/templates/owid/owid_info.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid/templates/owid/owid_tasks.html b/src/covid19/blueprints/owid/templates/owid/owid_tasks.html
index 86e252b4ab43e64329dd62fd5621c6cbca0f1faa..e9cff210577ffaded4b738c4071003e7441bd8f7 100644
--- a/src/covid19/blueprints/owid/templates/owid/owid_tasks.html
+++ b/src/covid19/blueprints/owid/templates/owid/owid_tasks.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/owid_test/owid_test_service.py b/src/covid19/blueprints/owid_test/owid_test_service.py
index 05d7c2ad5ee3a48b55e45f94c8a1ac206343f13e..8f852a57db98a5f864e0b0056073c54c2ff0dc63 100644
--- a/src/covid19/blueprints/owid_test/owid_test_service.py
+++ b/src/covid19/blueprints/owid_test/owid_test_service.py
@@ -1,7 +1,7 @@
-from database import app
-
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.owid.owid_model import OwidDateReported, OwidData
+from database import db, app
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.owid.owid_model import OwidDateReported, OwidData, OwidContinent, OwidCountry
+from covid19.blueprints.owid.owid_model_import import OwidImport
 
 
 class OwidTestService:
@@ -23,18 +23,41 @@ class OwidTestService:
         joungest_datum = OwidDateReported.find_by_date_reported(joungest_datum_str)
         app.logger.info("joungest_datum:")
         app.logger.info(joungest_datum)
-        app.logger.info("WhoData.get_data_for_one_day(joungest_datum):")
+        app.logger.info("OwidData.get_data_for_one_day(joungest_datum):")
         i = 0
         for data in OwidData.get_data_for_one_day(joungest_datum):
             i += 1
-            line = " | " + str(i) + " | " + str(data.date_reported) + " | " + data.country.location + " | to be deleted"
+            line = "Owid: to be deleted | " + str(i) + " | " + str(data.date_reported) + " | " + str(data.country) + " | "
             app.logger.info(line)
-        app.logger.info("WhoData.delete_data_for_one_day(joungest_datum)")
+        app.logger.info("OwidData.delete_data_for_one_day(joungest_datum)")
         OwidData.delete_data_for_one_day(joungest_datum)
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" OwidTestService.delete_last_day() [DONE]")
         app.logger.debug("------------------------------------------------------------")
 
+    def delete_last_continent(self):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" OwidTestService.delete_last_continent() [START]")
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.info("OwidContinent.get_last_continent()")
+        last_continent = OwidContinent.get_last_continent()
+        app.logger.info("last_continent:" + str(last_continent))
+        app.logger.info("OwidCountry.get_all_countries_for_continent(last_continent)")
+        countries_for_continent = OwidCountry.get_all_countries_for_continent(last_continent)
+        i = 0
+        for country in countries_for_continent:
+            for data in OwidData.get_all_data_for_country(country):
+                i += 1
+                line = "Owid: to be deleted | " + str(i) + " | " + str(data.date_reported) + " | " + str(data.country) + " | "
+                app.logger.info(line)
+            app.logger.info("OwidData.delete_all_data_for_country(country)")
+            OwidData.delete_all_data_for_country(country)
+        app.logger.info("OwidCountry.delete_all_countries_for_continent(last_continent)")
+        OwidCountry.delete_all_countries_for_continent(last_continent)
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" OwidTestService.delete_last_continent() [DONE]")
+        app.logger.debug("------------------------------------------------------------")
+
     def run_update_star_schema_incremental(self):
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" OwidTestService.run_update_star_schema_incremental() [START]")
@@ -43,3 +66,42 @@ class OwidTestService:
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" OwidTestService.run_update_star_schema_incremental() [DONE]")
         app.logger.debug("------------------------------------------------------------")
+
+    def full_update_dimension_tables(self):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" OwidTestService.full_update_dimension_tables() [START]")
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug("")
+        OwidData.remove_all()
+        OwidCountry.remove_all()
+        for continent in OwidContinent.get_all():
+            app.logger.info("continent.region: " + continent.region)
+            for oi in OwidImport.get_countries_for_continent(continent.region):
+                app.logger.info("continent.region: " + continent.region +" - oi.location: " + oi.location)
+                o = OwidCountry(
+                    continent_id=continent.id,
+                    continent=continent,
+                    location=oi.location,
+                    iso_code=oi.iso_code,
+                    population=oi.population,
+                    population_density=oi.population_density,
+                    median_age=oi.median_age,
+                    aged_65_older=oi.aged_65_older,
+                    aged_70_older=oi.aged_70_older,
+                    gdp_per_capita=oi.gdp_per_capita,
+                    extreme_poverty=oi.extreme_poverty,
+                    cardiovasc_death_rate=oi.cardiovasc_death_rate,
+                    diabetes_prevalence=oi.diabetes_prevalence,
+                    female_smokers=oi.female_smokers,
+                    male_smokers=oi.male_smokers,
+                    handwashing_facilities=oi.handwashing_facilities,
+                    hospital_beds_per_thousand=oi.hospital_beds_per_thousand,
+                    life_expectancy=oi.life_expectancy,
+                    human_development_index=oi.human_development_index
+                )
+                db.session.add(o)
+        db.session.commit()
+        app.logger.debug("")
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" OwidTestService.full_update_dimension_tables() [DONE]")
+        app.logger.debug("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/owid_test/owid_test_views.py b/src/covid19/blueprints/owid_test/owid_test_views.py
index 27dec415c8b952eb2dc309512eb91ea97b0fcf20..c6cc073a9f893ed9924450fb364e63d9b45a777d 100644
--- a/src/covid19/blueprints/owid_test/owid_test_views.py
+++ b/src/covid19/blueprints/owid_test/owid_test_views.py
@@ -4,11 +4,14 @@ from celery.utils.log import get_task_logger
 from flask_login import login_required
 
 from database import app, db
-from covid19.blueprints.application.application_services import owid_service
-from covid19.blueprints.application.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
 from covid19.blueprints.owid.owid_model import OwidData
 from covid19.blueprints.owid.owid_model_import import OwidImport
-from covid19.blueprints.application.application_model_transient import ApplicationPage
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 
 from covid19.blueprints.owid_test.owid_test_service import OwidTestService
 
@@ -28,6 +31,7 @@ def url_owid_test_tests():
         'owid_test/owid_tests.html',
         page_info=page_info)
 
+
 @app_owid_test.route('/update_dimension_tables_only')
 @login_required
 def url_owid_test_update_dimension_tables_only():
@@ -35,6 +39,7 @@ def url_owid_test_update_dimension_tables_only():
     flash("test_update_dimension_tables_only - START")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
+
 @app_owid_test.route('/update_fact_table_incremental_only')
 @login_required
 def url_owid_test_update_fact_table_incremental_only():
@@ -42,6 +47,7 @@ def url_owid_test_update_fact_table_incremental_only():
     flash("update_fact_table_incremental_only - START")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
+
 @app_owid_test.route('/update_fact_table_initial_only')
 @login_required
 def url_owid_test_update_fact_table_initial_only():
@@ -49,6 +55,7 @@ def url_owid_test_update_fact_table_initial_only():
     flash("update_fact_table_initial_only - START")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
+
 @app_owid_test.route('/update_star_schema/incremental')
 @login_required
 def url_owid_test_update_star_schema_incremental():
@@ -56,6 +63,7 @@ def url_owid_test_update_star_schema_incremental():
     flash("update_star_schema_incremental - START")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
+
 @app_owid_test.route('/update_star_schema/initial')
 @login_required
 def url_owid_test_update_star_schema_initial():
@@ -141,6 +149,27 @@ def url_owid_test_owid_test_service_delete_last_days_data():
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
 
+@app_owid_test.route('/owid_test_service/delete_last_continents_data')
+@login_required
+def url_owid_test_owid_test_service_delete_last_continents_data():
+    app.logger.info("url_owid_test_owid_test_service_delete_last_continents_data - START")
+    flash("owid_test_service.delete_last_continent() - START")
+    owid_test_service.delete_last_continent()
+    flash("owid_test_service.delete_last_continent() - DONE")
+    app.logger.info("url_owid_test_owid_test_service_delete_last_continents_data - DONE")
+    return redirect(url_for('owid_test.url_owid_test_tests'))
+
+
+@app_owid_test.route('/owid_test_service/update_dimension_tables')
+@login_required
+def url_owid_test_full_update_dimension_tables():
+    app.logger.info("url_owid_test_full_update_dimension_tables - START")
+    flash("owid_test_service.full_update_dimension_tables() - START")
+    owid_test_service.full_update_dimension_tables()
+    app.logger.info("owid_test_service.full_update_dimension_tables() - DONE")
+    flash("url_owid_test_full_update_dimension_tables - DONE")
+    return redirect(url_for('owid_test.url_owid_test_tests'))
+
 
 # ----------------------------------------------------------------------------------------------------------------
 #  Celery TASKS
diff --git a/src/covid19/blueprints/owid_test/templates/owid_test/owid_tests.html b/src/covid19/blueprints/owid_test/templates/owid_test/owid_tests.html
index a4416ef59a1811415c69486cb64863a7cf62fb35..0404eeb2e0cb2e43b934730e8471a923bbd5af68 100644
--- a/src/covid19/blueprints/owid_test/templates/owid_test/owid_tests.html
+++ b/src/covid19/blueprints/owid_test/templates/owid_test/owid_tests.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
@@ -22,6 +22,19 @@
             </div>
         </div>
         <p></p>
+        <div class="row">
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'owid_test.url_owid_test_full_update_dimension_tables') }}"
+                       role="button">OWID :: Test :: OwidServiceUpdateFull.full_update_dimension_tables()</a>
+                </div>
+            </div>
+            <div class="col">
+                 <p>&nbsp;</p>
+            </div>
+        </div>
+        <p></p>
         <div class="row">
             <div class="col">
                 <div class="btn-group-vertical" role="group" aria-label="Views">
@@ -40,10 +53,19 @@
                     <a class="btn btn-danger btn-lg btn-block text-left"
                        href="{{ url_for( 'owid_test.url_owid_test_owid_service_owid_import_get_new_dates_as_array') }}"
                        role="button">url_owid_test_owid_service_owid_import_get_new_dates_as_array</a>
+                </div>
+                <p>&nbsp;</p>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
                     <a class="btn btn-primary btn-lg btn-block text-left"
                        href="{{ url_for( 'owid_test.url_owid_test_owid_test_service_delete_last_days_data') }}"
                        role="button">url_owid_test_owid_test_service_delete_last_days_data</a>
                 </div>
+                <p>&nbsp;</p>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'owid_test.url_owid_test_owid_test_service_delete_last_continents_data') }}"
+                       role="button">url_owid_test_owid_test_service_delete_last_continents_data</a>
+                </div>
             </div>
             <div class="col">
             </div>
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_model.py b/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_model.py
deleted file mode 100644
index 2c1eec6c295556ab3060008a791382727eebe4da..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_model.py
+++ /dev/null
@@ -1,49 +0,0 @@
-from database import db, ITEMS_PER_PAGE
-
-
-class RkiBundeslaender(db.Model):
-    __tablename__ = 'rki_bundeslaender'
-
-    id = db.Column(db.Integer, primary_key=True)
-    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)
-    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):
-        for one in cls.get_all():
-            db.session.delete(one)
-        db.session.commit()
-        return None
-
-    @classmethod
-    def get_all_as_page(cls, page):
-        return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls).all()
-
-    @classmethod
-    def get_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one()
-
-    @classmethod
-    def find_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one_or_none()
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_model_import.py b/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_model_import.py
deleted file mode 100644
index aa34dc4319d1e66849a44c3f45ae821c655078e9..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_model_import.py
+++ /dev/null
@@ -1,57 +0,0 @@
-from database import db, ITEMS_PER_PAGE
-
-
-class RkiBundeslaenderImport(db.Model):
-    __tablename__ = 'application__import__rki_bundeslsaender'
-
-    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)
-    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)
-
-    @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).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls).all()
-
-    @classmethod
-    def get_by_id(cls, other_id: int):
-        return db.session.query(cls).filter(cls.id == other_id).one()
-
-    @classmethod
-    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/rki_bundeslaender/rki_bundeslaender_service.py b/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_service.py
deleted file mode 100644
index ac24c73ed5d8b29f105d199fa1c27dfbc140efcd..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_service.py
+++ /dev/null
@@ -1,87 +0,0 @@
-from flask import flash
-
-from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_service_download import ApplicationServiceDownload
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_service_import import RkiBundeslaenderServiceImport
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_service_update import RkiBundeslaenderServiceUpdate
-
-
-class RkiBundeslaenderService:
-    def __init__(self, database):
-        app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" RKI Service [init]")
-        app.logger.debug("------------------------------------------------------------")
-        self.__database = database
-        self.cfg = ApplicationServiceConfig.create_config_for_rki_bundeslaender()
-        self.service_download = ApplicationServiceDownload(database, self.cfg)
-        self.service_import = RkiBundeslaenderServiceImport(database, self.cfg)
-        self.service_update = RkiBundeslaenderServiceUpdate(database, self.cfg)
-        app.logger.debug("------------------------------------------------------------")
-        app.logger.info(" RKI Service [ready]")
-
-    def pretask_database_drop_create(self):
-        flash("RkiBundeslaenderService.pretask_database_drop_create started")
-        app.logger.info("RkiBundeslaenderService.pretask_database_drop_create started")
-        self.service_download.download_file()
-        app.logger.info("RkiBundeslaenderService.pretask_database_drop_create done")
-        flash("RkiBundeslaenderService.pretask_database_drop_create done")
-        return self
-
-    def task_database_drop_create(self):
-        app.logger.info("RkiBundeslaenderService.task_database_drop_create started")
-        self.service_import.import_file()
-        self.service_update.update_star_schema_initial()
-        app.logger.info("RkiBundeslaenderService.task_database_drop_create done")
-        return self
-
-    def run_download_only(self):
-        flash("RkiBundeslaenderService.run_download_only started")
-        self.service_download.download_file()
-        return self
-
-    def run_import_only(self):
-        self.service_import.import_file()
-        return self
-
-    def run_update_dimension_tables_only(self):
-        self.service_update.update_dimension_tables_only()
-        return self
-
-    def run_update_fact_table_incremental_only(self):
-        self.service_update.update_fact_table_incremental_only()
-        return self
-
-    def run_update_fact_table_initial_only(self):
-        self.service_update.update_fact_table_initial_only()
-        return self
-
-    def run_update_star_schema_incremental(self):
-        self.service_import.import_file()
-        self.service_update.update_star_schema_incremental()
-        return self
-
-    def run_update_star_schema_initial(self):
-        self.service_import.import_file()
-        self.service_update.update_star_schema_initial()
-        return self
-
-    def download_all_files(self):
-        self.service_download.download_file()
-        return self
-
-    def task_import_all_files(self):
-        self.service_import.import_file()
-        return self
-
-    def update_dimension_tables_only(self):
-        self.service_update.update_dimension_tables_only()
-        return self
-
-    def update_fact_table_initial_only(self):
-        self.service_update.update_fact_table_initial_only()
-        return self
-
-    def update_fact_table_incremental_only(self):
-        self.service_update.update_fact_table_incremental_only()
-        return self
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_views.py b/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_views.py
deleted file mode 100644
index 881b5d438b217fead0f56a1601ac12477f22369a..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_views.py
+++ /dev/null
@@ -1,176 +0,0 @@
-from flask import render_template, redirect, url_for, flash, Blueprint
-from sqlalchemy.exc import OperationalError
-from flask_admin.contrib.sqla import ModelView
-from celery import states
-
-from database import app, admin, db
-from covid19.blueprints.application.application_workers import celery
-from covid19.blueprints.application.application_services import rki_service_bundeslaender
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_model import RkiBundeslaender
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_model_import import RkiBundeslaenderImport
-from covid19.blueprints.application.application_model_transient import ApplicationPage
-
-drop_and_create_data_again = True
-
-app_rki_bundeslaender = Blueprint(
-    'rki_bundeslaender', __name__, template_folder='templates', url_prefix='/rki/bundeslaender')
-
-
-admin.add_view(ModelView(RkiBundeslaenderImport, db.session, category="RKI Cases and Deaths"))
-admin.add_view(ModelView(RkiBundeslaender, db.session, category="RKI Cases and Deaths"))
-
-
-# ---------------------------------------------------------------------------------------------------------------
-#  Url Routes Frontend
-# ---------------------------------------------------------------------------------------------------------------
-
-
-@app_rki_bundeslaender.route('/info')
-def url_rki_bundeslaender_info():
-    page_info = ApplicationPage('RKI', "Info")
-    return render_template(
-        'rki_bundeslaender/rki_bundeslaender_info.html',
-        page_info=page_info)
-
-
-@app_rki_bundeslaender.route('/tasks')
-def url_rki_bundeslaender_tasks():
-    page_info = ApplicationPage('RKI', "Tasks")
-    return render_template(
-        'rki_bundeslaender/rki_bundeslaender_tasks.html',
-        page_info=page_info)
-
-
-@app_rki_bundeslaender.route('/imported/page/<int:page>')
-@app_rki_bundeslaender.route('/imported')
-def url_rki_bundeslaender_imported(page=1):
-    page_info = ApplicationPage('RKI', "Last Import")
-    try:
-        page_data = RkiBundeslaenderImport.get_all_as_page(page)
-    except OperationalError:
-        flash("No data in the database.")
-        page_data = None
-    return render_template(
-        'rki_bundeslaender/rki_bundeslaender_imported.html',
-        page_data=page_data,
-        page_info=page_info)
-
-
-@app_rki_bundeslaender.route('/test/page/<int:page>')
-@app_rki_bundeslaender.route('/test')
-def url_rki_bundeslaender_test(page=1):
-    page_info = ApplicationPage('RKI', "TEST")
-    try:
-        page_data = RkiBundeslaenderImport.get_all_as_page(page)
-    except OperationalError:
-        flash("No data in the database.")
-        page_data = None
-    return render_template(
-        'rki_bundeslaender/rki_bundeslaender_test.html',
-        page_data=page_data,
-        page_info=page_info)
-
-
-# ------------------------------------------------------------------------
-#  Celery TASKS
-# ------------------------------------------------------------------------
-
-
-@celery.task(bind=True)
-def task_rki_bundeslaender_task_update_starschema_initial(self):
-    self.update_state(state=states.STARTED)
-    rki_service_bundeslaender.run_update_star_schema_incremental()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_bundeslaender_task_update_starschema_initial)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_bundeslaender_task_update_starschema_incremental(self):
-    self.update_state(state=states.STARTED)
-    rki_service_bundeslaender.run_update_star_schema_incremental()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_bundeslaender_task_update_starschema_incremental)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_bundeslaender_task_import_only(self):
-    self.update_state(state=states.STARTED)
-    rki_service_bundeslaender.run_import_only()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_bundeslaender_task_import_only)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_bundeslaender_task_update_facttable_incremental_only(self):
-    self.update_state(state=states.STARTED)
-    rki_service_bundeslaender.run_update_fact_table_incremental_only()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_bundeslaender_task_update_facttable_incremental_only)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_bundeslaender_task_update_facttable_initial_only(self):
-    self.update_state(state=states.STARTED)
-    rki_service_bundeslaender.full_update_fact_table()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_bundeslaender_task_update_facttable_initial_only)"
-    return result
-
-# ------------------------------------------------------------------------
-#  URL Routes for Celery TASKS
-# ------------------------------------------------------------------------
-
-
-@app_rki_bundeslaender.route('/task/update/star_schema/initial')
-def url_rki_bundeslaender_task_update_starschema_initial():
-    app.logger.info("url_rki_bundeslaender_task_update_starschema_initial [start]")
-    rki_service_bundeslaender.run_download_only()
-    task_rki_bundeslaender_task_update_starschema_initial.apply_async()
-    return redirect(url_for('rki_bundeslaender.url_rki_tasks'))
-
-
-@app_rki_bundeslaender.route('/task/update/star_schema/incremental')
-def url_rki_bundeslaender_task_update_starschema_incremental():
-    app.logger.info("url_rki_bundeslaender_task_update_starschema_incremental [start]")
-    rki_service_bundeslaender.run_download_only()
-    task_rki_bundeslaender_task_update_starschema_incremental.apply_async()
-    return redirect(url_for('rki_bundeslaender.url_rki_tasks'))
-
-
-@app_rki_bundeslaender.route('/task/download/only')
-def url_rki_bundeslaender_task_download_only():
-    app.logger.info("url_rki_bundeslaender_task_download_only [start]")
-    rki_service_bundeslaender.run_download_only()
-    return redirect(url_for('rki_bundeslaender.url_rki_tasks'))
-
-
-@app_rki_bundeslaender.route('/task/import/only')
-def url_rki_bundeslaender_task_import_only():
-    app.logger.info("url_rki_bundeslaender_task_import_only [start]")
-    task_rki_bundeslaender_task_import_only.apply_async()
-    return redirect(url_for('rki_bundeslaender.url_rki_tasks'))
-
-
-@app_rki_bundeslaender.route('/task/update/dimension-tables/only')
-def url_rki_bundeslaender_task_update_dimensiontables_only():
-    app.logger.info("url_rki_bundeslaender_task_update_dimensiontables_only [start]")
-    task_rki_bundeslaender_task_import_only.apply_async()
-    return redirect(url_for('rki_bundeslaender.url_rki_tasks'))
-
-
-@app_rki_bundeslaender.route('/task/update/fact-table/incremental/only')
-def url_rki_bundeslaender_task_update_facttable_incremental_only():
-    app.logger.info("url_rki_bundeslaender_task_update_facttable_incremental_only [start]")
-    task_rki_bundeslaender_task_update_facttable_incremental_only.apply_async()
-    return redirect(url_for('rki_bundeslaender.url_rki_tasks'))
-
-
-@app_rki_bundeslaender.route('/task/update/fact-table/initial/only')
-def url_rki_bundeslaender_task_update_facttable_initial_only():
-    app.logger.info("url_rki_bundeslaender_task_update_facttable_initial_only [start]")
-    task_rki_bundeslaender_task_update_facttable_initial_only.apply_async()
-    return redirect(url_for('rki_bundeslaender.url_rki_tasks'))
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/navigation/rki_bundeslaender_navtabs.html b/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/navigation/rki_bundeslaender_navtabs.html
deleted file mode 100644
index 040f1437d33f18c85199aa218e4a22b2241cd9c6..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/navigation/rki_bundeslaender_navtabs.html
+++ /dev/null
@@ -1,25 +0,0 @@
-    <div class="container">
-        <div class="row-cols-1">
-            <nav>
-                <ul class="nav nav-tabs">
-                    <li class="nav-item">
-                        <a class="nav-link"
-                           href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_info') }}">
-                            RKI Bundeslaender Info
-                        </a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link" href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_tasks') }}">
-                            RKI Bundeslaender tasks
-                        </a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link"
-                           href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_imported') }}">
-                            RKI Bundeslaender imported
-                        </a>
-                    </li>
-                </ul>
-            </nav>
-        </div>
-    </div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_tasks.html b/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_tasks.html
deleted file mode 100644
index b62f99707cecd0a16169ac998eb132d4362a9006..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_tasks.html
+++ /dev/null
@@ -1,57 +0,0 @@
-{% extends 'application/page_layout.html' %}
-
-{% block content %}
-    {{super()}}
-    {% include 'rki_bundeslaender/navigation/rki_bundeslaender_navtabs.html' %}
-
-    <div class="container">
-        <div class="row">
-            <div class="col">
-                <h3>Bundeslaender</h3>
-            </div>
-        </div>
-        <div class="row">
-            <div class="col">
-                <div class="btn-group-vertical" role="group" aria-label="Views">
-                    <a class="btn btn-danger btn-lg btn-block text-left"
-                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_test') }}"
-                       role="button">RKI :: Bundeslaender :: TEST</a>
-                    <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_task_update_starschema_initial') }}"
-                       role="button">RKI :: Bundeslaender :: Task :: update :: star_schema :: initial</a>
-                    <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_task_update_starschema_incremental') }}"
-                       role="button">RKI :: Bundeslaender :: Task :: update :: star_schema :: incremental</a>
-                </div>
-            </div>
-            <div class="col">
-                <div class="btn-group-vertical" role="group" aria-label="Views">
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_task_download_only') }}"
-                       role="button">RKI :: Bundeslaender :: Task :: download :: only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_task_import_only') }}"
-                       role="button">RKI :: Bundeslaender :: Task :: import :: only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_task_update_dimensiontables_only') }}"
-                       role="button">RKI :: Bundeslaender :: Task :: update :: dimension-tables : only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_task_update_facttable_incremental_only') }}"
-                       role="button">RKI :: Bundeslaender :: Task :: update :: fact-table :: only :: incremental</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_task_update_facttable_initial_only') }}"
-                       role="button">RKI :: Bundeslaender :: Task :: update :: fact-table :: only :: initial</a>
-                </div>
-            </div>
-        </div>
-    </div>
-{% endblock %}
-
-
-
-{% block footer_container %}
-
-{% endblock %}
-
-
-
diff --git a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_model.py b/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_model.py
deleted file mode 100644
index b5acfbd58a8ad4c68d683ee06f15c7d8929a285e..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_model.py
+++ /dev/null
@@ -1,79 +0,0 @@
-from database import db, ITEMS_PER_PAGE
-
-
-class RkiLandkreise(db.Model):
-    __tablename__ = 'rki_landkreise'
-
-    id = db.Column(db.Integer, primary_key=True)
-
-    objectid = db.Column(db.Integer, nullable=False)
-    ade = db.Column(db.Integer, nullable=False)
-    gf = db.Column(db.Integer, nullable=False)
-    bsg = db.Column(db.Integer, nullable=False)
-    rs = db.Column(db.String(255), nullable=False)
-    ags = db.Column(db.String(255), nullable=False)
-    sdv_rs = db.Column(db.String(255), nullable=False)
-    gen = db.Column(db.String(255), nullable=False)
-    bez = db.Column(db.String(255), nullable=False)
-    ibz = db.Column(db.Integer, nullable=False)
-
-    bem = db.Column(db.String(255), nullable=False)
-    nbd = db.Column(db.String(255), nullable=False)
-    sn_l = db.Column(db.String(255), nullable=False)
-    sn_r = db.Column(db.Integer, nullable=False)
-    sn_k = db.Column(db.String(255), nullable=False)
-    sn_v1 = db.Column(db.String(255), nullable=False)
-    sn_v2 = db.Column(db.String(255), nullable=False)
-    sn_g = db.Column(db.String(255), nullable=False)
-    fk_s3 = db.Column(db.String(255), nullable=False)
-    nuts = db.Column(db.String(255), nullable=False)
-
-    rs_0 = db.Column(db.String(255), nullable=False)
-    ags_0 = db.Column(db.Integer, nullable=False)
-    wsk = db.Column(db.Float, nullable=False)
-    ewz = db.Column(db.Integer, nullable=False)
-    kfl = db.Column(db.Float, nullable=False)
-    debkg_id = db.Column(db.String(255), nullable=False)
-    death_rate = db.Column(db.Float, nullable=False)
-    cases = db.Column(db.Integer, nullable=False)
-    deaths = db.Column(db.Integer, nullable=False)
-    cases_per_100k = db.Column(db.Float, nullable=False)
-
-    cases_per_population = db.Column(db.Float, nullable=False)
-    bl = db.Column(db.String(255), nullable=False)
-    bl_id = db.Column(db.Integer, nullable=False)
-    county = db.Column(db.String(255), nullable=False)
-    last_update = db.Column(db.String(255), nullable=False)
-
-    cases7_per_100k = db.Column(db.Float, nullable=False)
-    recovered = db.Column(db.Integer, nullable=False)
-    ewz_bl = 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_lk = db.Column(db.Integer, nullable=False)
-    death7_lk = db.Column(db.Integer, nullable=False)
-    cases7_per_100k_txt = 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):
-        for one in cls.get_all():
-            db.session.delete(one)
-        db.session.commit()
-        return None
-
-    @classmethod
-    def get_all_as_page(cls, page):
-        return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls).all()
-
-    @classmethod
-    def get_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one()
diff --git a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_model_import.py b/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_model_import.py
deleted file mode 100644
index ade954db7f16dcc77957fa5ca5180eff84b8dab8..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_model_import.py
+++ /dev/null
@@ -1,91 +0,0 @@
-from database import db, ITEMS_PER_PAGE
-
-# OBJECTID,ADE,GF,BSG,RS,AGS,SDV_RS,GEN,BEZ,IBZ,BEM,NBD,SN_L,SN_R,SN_K,SN_V1,SN_V2,SN_G,FK_S3,NUTS,RS_0,AGS_0,WSK,EWZ,KFL,DEBKG_ID,death_rate,cases,deaths,cases_per_100k,cases_per_population,BL,BL_ID,county,last_update,cases7_per_100k,recovered,EWZ_BL,cases7_bl_per_100k,cases7_bl,death7_bl,cases7_lk,death7_lk,cases7_per_100k_txt,AdmUnitId,SHAPE_Length,SHAPE_Area
-
-
-class RkiLandkreiseImport(db.Model):
-    __tablename__ = 'application__import__rki_landkreise'
-
-    id = db.Column(db.Integer, primary_key=True)
-    OBJECTID = db.Column(db.String(255), nullable=False)
-    ADE = db.Column(db.String(255), nullable=False)
-    GF = db.Column(db.String(255), nullable=False)
-    BSG = db.Column(db.String(255), nullable=False)
-    RS = db.Column(db.String(255), nullable=False)
-    AGS = db.Column(db.String(255), nullable=False)
-    SDV_RS = db.Column(db.String(255), nullable=False)
-    GEN = db.Column(db.String(255), nullable=False)
-    BEZ = db.Column(db.String(255), nullable=False)
-    IBZ = db.Column(db.String(255), nullable=False)
-    BEM = db.Column(db.String(255), nullable=False)
-    NBD = db.Column(db.String(255), nullable=False)
-    SN_L = db.Column(db.String(255), nullable=False)
-    SN_R = db.Column(db.String(255), nullable=False)
-    SN_K = db.Column(db.String(255), nullable=False)
-    SN_V1 = db.Column(db.String(255), nullable=False)
-    SN_V2 = db.Column(db.String(255), nullable=False)
-    SN_G = db.Column(db.String(255), nullable=False)
-    FK_S3 = db.Column(db.String(255), nullable=False)
-    NUTS = db.Column(db.String(255), nullable=False)
-    RS_0 = db.Column(db.String(255), nullable=False)
-    AGS_0 = db.Column(db.String(255), nullable=False)
-    WSK = db.Column(db.String(255), nullable=False)
-    EWZ = db.Column(db.String(255), nullable=False)
-    KFL = db.Column(db.String(255), nullable=False)
-    DEBKG_ID = db.Column(db.String(255), nullable=False)
-    death_rate = db.Column(db.String(255), nullable=False)
-    cases = db.Column(db.String(255), nullable=False)
-    deaths = db.Column(db.String(255), nullable=False)
-    cases_per_100k = db.Column(db.String(255), nullable=False)
-    cases_per_population = db.Column(db.String(255), nullable=False)
-    BL = db.Column(db.String(255), nullable=False)
-    BL_ID = db.Column(db.String(255), nullable=False)
-    county = db.Column(db.String(255), nullable=False)
-    last_update = db.Column(db.String(255), nullable=False)
-    cases7_per_100k = db.Column(db.String(255), nullable=False)
-    recovered = db.Column(db.String(255), nullable=False)
-    EWZ_BL = 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)
-    cases7_lk = db.Column(db.String(255), nullable=False)
-    death7_lk = db.Column(db.String(255), nullable=False)
-    cases7_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)
-
-    @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):
-        return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls).all()
-
-    @classmethod
-    def get_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one()
-
-    @classmethod
-    def find_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one_or_none()
-
-    @classmethod
-    def find_by_last_update(cls, last_update_from_import: str):
-        return []
-
-    @classmethod
-    def get_last_updates(cls):
-        return []
-
-    @classmethod
-    def get_new_last_update_as_array(cls):
-        return []
diff --git a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service.py b/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service.py
deleted file mode 100644
index 5e37deb6ef5a7ee76a8978b75b898a94e8a65b26..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service.py
+++ /dev/null
@@ -1,81 +0,0 @@
-from flask import flash
-
-from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_service_download import ApplicationServiceDownload
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_service_import import RkiLandkreiseServiceImport
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_service_update import RkiLandkreiseServiceUpdate
-
-
-class RkiLandkreiseService:
-    def __init__(self, database):
-        app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" RkiLandkreiseService [init]")
-        app.logger.debug("------------------------------------------------------------")
-        self.__database = database
-        self.cfg = ApplicationServiceConfig.create_config_for_rki_landkreise()
-        self.service_download = ApplicationServiceDownload(database, self.cfg)
-        self.service_import = RkiLandkreiseServiceImport(database, self.cfg)
-        self.service_update = RkiLandkreiseServiceUpdate(database, self.cfg)
-        app.logger.debug("------------------------------------------------------------")
-        app.logger.info(" RkiLandkreiseService [ready]")
-
-    def pretask_database_drop_create(self):
-        flash("RkiLandkreiseService.pretask_database_drop_create started")
-        self.service_download.download_file()
-        return self
-
-    def task_database_drop_create(self):
-        self.service_import.import_file()
-        self.service_update.update_star_schema_initial()
-        return self
-
-    def run_download_only(self):
-        self.service_download.download_file()
-        return self
-
-    def run_import_only(self):
-        self.service_import.import_file()
-        return self
-
-    def run_update_dimension_tables_only(self):
-        self.service_update.update_dimension_tables_only()
-        return self
-
-    def run_update_fact_table_incremental_only(self):
-        self.service_update.update_fact_table_incremental_only()
-        return self
-
-    def run_update_fact_table_initial_only(self):
-        self.service_update.update_fact_table_initial_only()
-        return self
-
-    def run_update_star_schema_incremental(self):
-        self.service_import.import_file()
-        self.service_update.update_star_schema_incremental()
-        return self
-
-    def run_update_star_schema_initial(self):
-        self.service_import.import_file()
-        self.service_update.update_star_schema_initial()
-        return self
-
-    def download_all_files(self):
-        self.service_download.download_file()
-        return self
-
-    def task_import_all_files(self):
-        self.service_import.import_file()
-        return self
-
-    def update_dimension_tables_only(self):
-        self.service_update.update_dimension_tables_only()
-        return self
-
-    def update_fact_table_initial_only(self):
-        self.service_update.update_fact_table_initial_only()
-        return self
-
-    def update_fact_table_incremental_only(self):
-        self.service_update.update_fact_table_incremental_only()
-        return self
diff --git a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service_import.py b/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service_import.py
deleted file mode 100644
index 44e8bdfffd5d4289e9e5c534f4553ef5e751ed6b..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service_import.py
+++ /dev/null
@@ -1,105 +0,0 @@
-import csv
-import psycopg2
-
-from database import db, app
-
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_model_import import RkiLandkreiseImport
-
-
-class RkiLandkreiseServiceImport:
-    def __init__(self, database, config: ApplicationServiceConfig):
-        app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" RKI Landkreise Service Import [init]")
-        app.logger.debug("------------------------------------------------------------")
-        self.__database = database
-        self.cfg = config
-        app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" RKI Landkreise Service Import [ready]")
-
-    # TODO: BUG: RkiLandkreiseServiceImport.import_file #178
-    def import_file(self):
-        app.logger.info(" RKI Landkreise Service Import - import_file [begin]")
-        app.logger.info("------------------------------------------------------------")
-        app.logger.info(" import into TABLE: "+self.cfg.tablename+" from "+self.cfg.cvsfile_path)
-        app.logger.info("------------------------------------------------------------")
-        row = None
-        try:
-            RkiLandkreiseImport.remove_all()
-            with open(self.cfg.cvsfile_path, newline='\n') as csv_file:
-                file_reader = csv.DictReader(csv_file, delimiter=',', quotechar='"')
-                k = 0
-                for row in file_reader:
-                    k += 1
-                    o = RkiLandkreiseImport(
-                        OBJECTID=row['OBJECTID'],
-                        ADE=row['ADE'],
-                        GF=row['GF'],
-                        BSG=row['BSG'],
-                        RS=row['RS'],
-                        AGS=row['AGS'],
-                        SDV_RS=row['SDV_RS'],
-                        GEN=row['GEN'],
-                        BEZ=row['BEZ'],
-                        IBZ=row['IBZ'],
-                        BEM=row['BEM'],
-                        NBD=row['NBD'],
-                        SN_L=row['SN_L'],
-                        SN_R=row['SN_R'],
-                        SN_K=row['SN_K'],
-                        SN_V1=row['SN_V1'],
-                        SN_V2=row['SN_V2'],
-                        SN_G=row['SN_G'],
-                        FK_S3=row['FK_S3'],
-                        NUTS=row['NUTS'],
-                        RS_0=row['RS_0'],
-                        AGS_0=row['AGS_0'],
-                        WSK=row['WSK'],
-                        EWZ=row['EWZ'],
-                        KFL=row['KFL'],
-                        DEBKG_ID=row['DEBKG_ID'],
-                        death_rate=row['death_rate'],
-                        cases=row['cases'],
-                        deaths=row['deaths'],
-                        cases_per_100k=row['cases_per_100k'],
-                        cases_per_population=row['cases_per_population'],
-                        BL=row['BL'],
-                        BL_ID=row['BL_ID'],
-                        county=row['county'],
-                        last_update=row['last_update'],
-                        cases7_per_100k=row['cases7_per_100k'],
-                        recovered=row['recovered'],
-                        EWZ_BL=row['EWZ_BL'],
-                        cases7_bl_per_100k=row['cases7_bl_per_100k'],
-                        cases7_bl=row['cases7_bl'],
-                        death7_bl=row['death7_bl'],
-                        cases7_lk=row['cases7_lk'],
-                        death7_lk=row['death7_lk'],
-                        cases7_per_100k_txt=row['cases7_per_100k_txt'],
-                        AdmUnitId=row['AdmUnitId'],
-                        SHAPE_Length=row['SHAPE_Length'],
-                        SHAPE_Area=row['SHAPE_Area'],
-                    )
-                    db.session.add(o)
-                    if (k % 2000) == 0:
-                        db.session.commit()
-                        app.logger.info(" import import_file  ... " + str(k) + " rows")
-                db.session.commit()
-                app.logger.info(" import import_file  ... " + str(k) + " rows total")
-        except KeyError as error:
-            app.logger.warning("WARN: RKI Landkreise Service Import - import_file [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: RKI Landkreise Service Import - import_file [end]")
-        except (Exception, psycopg2.DatabaseError) as error:
-            app.logger.warning("WARN: RKI Landkreise Service Import - import_file [begin]")
-            app.logger.warning(error)
-            app.logger.warning("WARN: RKI Landkreise Service Import - import_file [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(" RKI Landkreise Service Import - import_file [done]")
-        return self
diff --git a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service_update.py b/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service_update.py
deleted file mode 100644
index 61056413b88b7cd2a6eda9f6ddcd815b856aa80c..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_service_update.py
+++ /dev/null
@@ -1,199 +0,0 @@
-from database import db, app
-
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_model import RkiDateReported
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_model import RkiLandkreise
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_model_import import RkiLandkreiseImport
-
-
-class RkiLandkreiseServiceUpdate:
-    def __init__(self, database, config: ApplicationServiceConfig):
-        app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" RKI Service Update [init]")
-        app.logger.debug("------------------------------------------------------------")
-        self.__database = database
-        self.cfg = config
-        app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" RKI Service Update [ready]")
-
-    def __update_date_reported(self):
-        app.logger.info(" update RkiLandkreiseServiceUpdate [begin]")
-        app.logger.info("------------------------------------------------------------")
-        i = 0
-        for last_update in RkiLandkreiseImport.get_last_updates():
-            i += 1
-            output = " [ " + str(i) + " ] " + last_update
-            c = RkiDateReported.find_by_date_reported(last_update)
-            if c is None:
-                o = RkiDateReported.create_new_object_factory(aktualisierung=last_update)
-                db.session.add(o)
-                db.session.commit()
-                output += " added"
-            else:
-                output += " NOT added " + str(c.id)
-            app.logger.info(output)
-        app.logger.info("")
-        app.logger.info(" update RkiLandkreiseServiceUpdate [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    def __update_data_incremental(self):
-        app.logger.info(" update RkiLandkreiseServiceUpdate short [begin]")
-        app.logger.info("------------------------------------------------------------")
-        new_dates_reported_from_import = RkiLandkreiseImport.get_new_last_update_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 RkiLandkreiseImport.find_by_last_update(my_date_reported):
-                o = RkiLandkreise(
-                    objectid=int(result_item.objectid),
-                    ade=int(result_item.ade),
-                    gf=int(result_item.gf),
-                    bsg=int(result_item.bsg),
-                    rs=result_item.rs,
-                    ags=result_item.ags,
-                    sdv_rs=result_item.sdv_rs,
-                    gen=result_item.gen,
-                    bez=result_item.bez,
-                    ibz=int(result_item.ibz),
-                    bem=result_item.bem,
-                    nbd=result_item.nbd,
-                    sn_l=result_item.sn_l,
-                    sn_r=int(result_item.sn_r),
-                    sn_k=result_item.sn_k,
-                    sn_v1=result_item.sn_v1,
-                    sn_v2=result_item.sn_v2,
-                    sn_g=result_item.sn_g,
-                    fk_s3=result_item.fk_s3,
-                    nuts=result_item.nuts,
-                    rs_0=result_item.rs_0,
-                    ags_0=int(result_item.ags_0),
-                    wsk=int(result_item.wsk),
-                    ewz=int(result_item.ewz),
-                    kfl=int(result_item.kfl),
-                    debkg_id=result_item.debkg_id,
-                    death_rate=int(result_item.death_rate),
-                    cases=int(result_item.cases),
-                    deaths=int(result_item.deaths),
-                    cases_per_100k=int(result_item.cases_per_100k),
-                    cases_per_population=float(result_item.cases_per_population),
-                    bl=result_item.bl,
-                    bl_id=result_item.bl_id,
-                    county=result_item.county,
-                    last_update=result_item.last_update,
-                    cases7_per_100k=int(result_item.cases7_per_100k),
-                    recovered=int(result_item.recovered),
-                    ewz_bl=int(result_item.ewz_bl),
-                    cases7_bl_per_100k=float(result_item.cases7_bl_per_100k),
-                    cases7_bl=int(result_item.cases7_bl),
-                    death7_bl=int(result_item.death7_bl),
-                    cases7_lk=int(result_item.cases7_lk),
-                    death7_lk=int(result_item.death7_lk),
-                    cases7_per_100k_txt=result_item.cases7_per_100k_txt,
-                    adm_unit_id=int(result_item.adm_unit_id),
-                    shape_length=float(result_item.shape_length),
-                    shape_area=float(result_item.shape_area),
-                )
-                db.session.add(o)
-                i += 1
-                if i % 500 == 0:
-                    app.logger.info(" update RkiLandkreiseServiceUpdate short ... "+str(i)+" rows")
-                    db.session.commit()
-            db.session.commit()
-        app.logger.info(" update RkiLandkreiseServiceUpdate short :  "+str(i)+" total rows")
-        app.logger.info(" update RkiLandkreiseServiceUpdate short [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    def __update_data_initial(self):
-        app.logger.info(" update RkiLandkreiseServiceUpdate initial [begin]")
-        app.logger.info("------------------------------------------------------------")
-        RkiLandkreise.remove_all()
-        last_updates_from_import = RkiLandkreiseImport.get_last_updates()
-        i = 0
-        for last_update_from_import in last_updates_from_import:
-            my_date = RkiDateReported.find_by_date_reported(last_update_from_import)
-            for result_item in RkiLandkreiseImport.find_by_last_update(last_update_from_import):
-                o = RkiLandkreise(
-                    objectid=int(result_item.objectid),
-                    ade=int(result_item.ade),
-                    gf=int(result_item.gf),
-                    bsg=int(result_item.bsg),
-                    rs=result_item.rs,
-                    ags=result_item.ags,
-                    sdv_rs=result_item.sdv_rs,
-                    gen=result_item.gen,
-                    bez=result_item.bez,
-                    ibz=int(result_item.ibz),
-                    bem=result_item.bem,
-                    nbd=result_item.nbd,
-                    sn_l=result_item.sn_l,
-                    sn_r=int(result_item.sn_r),
-                    sn_k=result_item.sn_k,
-                    sn_v1=result_item.sn_v1,
-                    sn_v2=result_item.sn_v2,
-                    sn_g=result_item.sn_g,
-                    fk_s3=result_item.fk_s3,
-                    nuts=result_item.nuts,
-                    rs_0=result_item.rs_0,
-                    ags_0=int(result_item.ags_0),
-                    wsk=int(result_item.wsk),
-                    ewz=int(result_item.ewz),
-                    kfl=int(result_item.kfl),
-                    debkg_id=result_item.debkg_id,
-                    death_rate=int(result_item.death_rate),
-                    cases=int(result_item.cases),
-                    deaths=int(result_item.deaths),
-                    cases_per_100k=int(result_item.cases_per_100k),
-                    cases_per_population=float(result_item.cases_per_population),
-                    bl=result_item.bl,
-                    bl_id=result_item.bl_id,
-                    county=result_item.county,
-                    last_update=result_item.last_update,
-                    cases7_per_100k=int(result_item.cases7_per_100k),
-                    recovered=int(result_item.recovered),
-                    ewz_bl=int(result_item.ewz_bl),
-                    cases7_bl_per_100k=float(result_item.cases7_bl_per_100k),
-                    cases7_bl=int(result_item.cases7_bl),
-                    death7_bl=int(result_item.death7_bl),
-                    cases7_lk=int(result_item.cases7_lk),
-                    death7_lk=int(result_item.death7_lk),
-                    cases7_per_100k_txt=result_item.cases7_per_100k_txt,
-                    adm_unit_id=int(result_item.adm_unit_id),
-                    shape_length=float(result_item.shape_length),
-                    shape_area=float(result_item.shape_area),
-                )
-                db.session.add(o)
-                i += 1
-                if i % 500 == 0:
-                    app.logger.info(" update RkiLandkreiseServiceUpdate initial ... "+str(i)+" rows")
-                    db.session.commit()
-            db.session.commit()
-        app.logger.info(" update RkiLandkreiseServiceUpdate initial :  "+str(i)+" total rows")
-        app.logger.info(" update RkiLandkreiseServiceUpdate initial [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    def update_dimension_tables_only(self):
-        self.__update_date_reported()
-        return self
-
-    def update_fact_table_incremental_only(self):
-        self.__update_data_incremental()
-        return self
-
-    def update_fact_table_initial_only(self):
-        self.__update_data_initial()
-        return self
-
-    def update_star_schema_incremental(self):
-        self.__update_date_reported()
-        self.__update_data_incremental()
-        return self
-
-    def update_star_schema_initial(self):
-        self.__update_date_reported()
-        self.__update_data_initial()
-        return self
-
-
diff --git a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_views.py b/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_views.py
deleted file mode 100644
index 2897819303e0509f374731100c9f1392a7d54b18..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/rki_landkreise_views.py
+++ /dev/null
@@ -1,186 +0,0 @@
-from flask import render_template, redirect, url_for, flash, Blueprint
-from sqlalchemy.exc import OperationalError
-from flask_admin.contrib.sqla import ModelView
-from celery import states
-
-from database import app, admin, db
-
-from covid19.blueprints.application.application_workers import celery
-from covid19.blueprints.application.application_services import rki_service_landkreise
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_model import RkiLandkreise
-from covid19.blueprints.rki.rki_landkreise.rki_landkreise_model_import import RkiLandkreiseImport
-from covid19.blueprints.application.application_model_transient import ApplicationPage
-
-drop_and_create_data_again = True
-
-
-app_rki_landkreise = Blueprint(
-    'rki_landkreise', __name__,
-    template_folder='templates',
-    url_prefix='/rki/landkreise'
-)
-
-admin.add_view(ModelView(RkiLandkreiseImport, db.session, category="RKI Cases and Deaths"))
-admin.add_view(ModelView(RkiLandkreise, db.session, category="RKI Cases and Deaths"))
-
-
-# ---------------------------------------------------------------------------------------------------------------
-#  Url Routes Frontend
-# ---------------------------------------------------------------------------------------------------------------
-
-@app_rki_landkreise.route('/info')
-def url_rki_landkreise_info():
-    page_info = ApplicationPage('RKI', "Info")
-    return render_template(
-        'rki_landkreise/rki_landkreise_info.html',
-        page_info=page_info)
-
-
-@app_rki_landkreise.route('/tasks')
-def url_rki_landkreise_tasks():
-    page_info = ApplicationPage('RKI', "Tasks")
-    return render_template(
-        'rki_landkreise/rki_landkreise_tasks.html',
-        page_info=page_info)
-
-
-@app_rki_landkreise.route('/landkreise/imported/page/<int:page>')
-@app_rki_landkreise.route('/landkreise/imported')
-def url_rki_landkreise_imported(page=1):
-    page_info = ApplicationPage('RKI', "Last Import")
-    try:
-        page_data = RkiLandkreiseImport.get_all_as_page(page)
-    except OperationalError:
-        flash("No data in the database.")
-        page_data = None
-    return render_template(
-        'rki_landkreise/rki_landkreise_imported.html',
-        page_data=page_data,
-        page_info=page_info)
-
-# ------------------------------------------------------------------------
-#  Celery TASKS
-# ------------------------------------------------------------------------
-
-
-@celery.task(bind=True)
-def task_rki_landkreise_task_update_starschema_initial(self):
-    self.update_state(state=states.STARTED)
-    rki_service_landkreise.run_update_star_schema_initial()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_landkreise_task_update_starschema_initial)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_landkreise_task_update_starschema_incremental(self):
-    self.update_state(state=states.STARTED)
-    rki_service_landkreise.run_update_star_schema_incremental()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_landkreise_task_update_starschema_incremental)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_landkreise_task_import_only(self):
-    self.update_state(state=states.STARTED)
-    rki_service_landkreise.run_import_only()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_bundeslaender_task_update_starschema_incremental)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_landkreise_task_update_dimensiontables_only(self):
-    self.update_state(state=states.STARTED)
-    rki_service_landkreise.run_update_dimension_tables_only()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_landkreise_task_update_dimensiontables_only)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_landkreise_task_update_facttable_incremental_only(self):
-    self.update_state(state=states.STARTED)
-    rki_service_landkreise.run_update_fact_table_initial_only()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_landkreise_task_update_facttable_incremental_only)"
-    return result
-
-
-@celery.task(bind=True)
-def task_rki_landkreise_task_update_facttable_initial_only(self):
-    self.update_state(state=states.STARTED)
-    rki_service_landkreise.run_update_fact_table_initial_only()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_rki_landkreise_task_update_facttable_initial_only)"
-    return result
-
-
-@celery.task(bind=True)
-def task_url_rki_landkreise_task_update_dimension_tables_only(self):
-    self.update_state(state=states.STARTED)
-    rki_service_landkreise.run_update_star_schema_incremental()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_url_rki_landkreise_task_update_dimension_tables_only)"
-    return result
-
-# ------------------------------------------------------------------------
-#  URL Routes for Celery TASKS
-# ------------------------------------------------------------------------
-
-
-@app_rki_landkreise.route('/landkreise/task/update/star_schema/initial')
-def url_rki_landkreise_task_update_starschema_initial():
-    app.logger.info("url_rki_landkreise_task_update_starschema_initial [start]")
-    task_rki_landkreise_task_update_starschema_initial.apply_async()
-    return redirect(url_for('rki_landkreise.url_rki_landkreise_tasks'))
-
-
-@app_rki_landkreise.route('/landkreise/task/update/star_schema/incremental')
-def url_rki_landkreise_task_update_starschema_incremental():
-    app.logger.info("url_rki_landkreise_task_update_starschema_incremental [start]")
-    task_rki_landkreise_task_update_starschema_incremental.apply_async()
-    return redirect(url_for('rki_landkreise.url_rki_landkreise_tasks'))
-
-
-@app_rki_landkreise.route('/landkreise/task/download/only')
-def url_rki_landkreise_task_download_only():
-    app.logger.info("url_rki_landkreise_task_download_only [start]")
-    rki_service_landkreise.run_download_only()
-    return redirect(url_for('rki_landkreise.url_rki_landkreise_tasks'))
-
-
-@app_rki_landkreise.route('/landkreise/task/import/only')
-def url_rki_landkreise_task_import_only():
-    app.logger.info("url_rki_landkreise_task_import_only [start]")
-    task_rki_landkreise_task_import_only.apply_async()
-    return redirect(url_for('rki_landkreise.url_rki_landkreise_tasks'))
-
-
-@app_rki_landkreise.route('/landkreise/task/update/dimension-tables/only')
-def url_rki_landkreise_task_update_dimensiontables_only():
-    app.logger.info("url_rki_landkreise_task_update_dimensiontables_only [start]")
-    task_rki_landkreise_task_update_dimensiontables_only.apply_async()
-    return redirect(url_for('rki_landkreise.url_rki_landkreise_tasks'))
-
-
-@app_rki_landkreise.route('/landkreise/task/update/fact-table/incremental/only')
-def url_rki_landkreise_task_update_facttable_incremental_only():
-    app.logger.info("url_rki_landkreise_task_update_facttable_incremental_only [start]")
-    task_rki_landkreise_task_update_facttable_incremental_only.apply_async()
-    return redirect(url_for('rki_landkreise.url_rki_landkreise_tasks'))
-
-
-@app_rki_landkreise.route('/landkreise/task/update/fact-table/initial/only')
-def url_rki_landkreise_task_update_facttable_initial_only():
-    app.logger.info("url_rki_landkreise_task_update_facttable_initial_only [start]")
-    task_rki_landkreise_task_update_facttable_initial_only.apply_async()
-    return redirect(url_for('rki_landkreise.url_rki_landkreise_tasks'))
-
-
-@app_rki_landkreise.route('/task/update/dimension-tables/only')
-def url_rki_landkreise_task_update_dimension_tables_only():
-    app.logger.info("url_task_who_update_dimension_tables_only [start]")
-    task_url_rki_landkreise_task_update_dimension_tables_only.apply_async()
-    return redirect(url_for('rki_landkreise.url_rki_landkreise_tasks'))
diff --git a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/navigation/rki_landkreise_navbar_dropdown.html b/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/navigation/rki_landkreise_navbar_dropdown.html
deleted file mode 100644
index 6d8725e9efd68de24b02c9e7eca99ad3d33762a1..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/navigation/rki_landkreise_navbar_dropdown.html
+++ /dev/null
@@ -1,31 +0,0 @@
-              <li class="dropdown">
-                    <a class="dropdown-toggle nav-link" data-toggle="dropdown" href="javascript:void(0)">
-                        RKI Landkreise<i class="glyphicon glyphicon-chevron-down small"></i>
-                    </a>
-                    <ul class="dropdown-menu">
-                        <li>
-                            <a class="dropdown-item"
-                               href="{{ url_for( 'rki_landkreise.url_rki_landkreise_info') }}">
-                                RKI Landkreise
-                            </a>
-                        </li>
-                        <li>
-                            <div class="dropdown-divider"></div>
-                        </li>
-                        <li>
-                            <a class="dropdown-item"
-                               href="{{ url_for( 'rki_landkreise.url_rki_landkreise_imported') }}">
-                                RKI Landkreise imported
-                            </a>
-                        </li>
-                        <li>
-                            <div class="dropdown-divider"></div>
-                        </li>
-                        <li>
-                            <a class="dropdown-item"
-                               href="{{ url_for( 'rki_landkreise.url_rki_landkreise_tasks') }}">
-                                RKI Landkreise Tasks
-                            </a>
-                        </li>
-                    </ul>
-                </li>
diff --git a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/navigation/rki_landkreise_navtabs.html b/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/navigation/rki_landkreise_navtabs.html
deleted file mode 100644
index 5cd52e76bc874dc62ae595f2a644aafd0182d0ae..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/navigation/rki_landkreise_navtabs.html
+++ /dev/null
@@ -1,28 +0,0 @@
-    <div class="container">
-        <div class="row">
-            <div class="col">
-                <nav>
-                    <ul class="nav nav-tabs">
-                        <li class="nav-item">
-                            <a class="nav-link"
-                               href="{{ url_for( 'rki_landkreise.url_rki_landkreise_info') }}">
-                                RKI Landkreise Info
-                            </a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link"
-                               href="{{ url_for( 'rki_landkreise.url_rki_landkreise_tasks') }}">
-                                RKI Landkreise tasks
-                            </a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link"
-                               href="{{ url_for( 'rki_landkreise.url_rki_landkreise_imported') }}">
-                                RKI Landkreise imported
-                            </a>
-                        </li>
-                    </ul>
-                </nav>
-            </div>
-        </div>
-    </div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_imported.html b/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_imported.html
deleted file mode 100644
index c7eac47102eb2f4d1c8e5c43b31466bc969a55a6..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_imported.html
+++ /dev/null
@@ -1,97 +0,0 @@
-{% extends 'application/page_layout.html' %}
-
-{% block content %}
-{{super()}}
-{% include 'rki_landkreise/navigation/rki_landkreise_navtabs.html' %}
-
-<div class="container">
-    <div class="row">
-        <div class="col">
-            {% if page_data.pages > 1 %}
-            <!-- previous page -->
-                <ul class="pagination">
-                {% if page_data.has_prev %}
-                <li class="page-item">
-                    <a class="page-link"
-                       href="{{ url_for('rki_landkreise.url_rki_landkreise_imported', page=page_data.prev_num) }}">
-                        Previous
-                    </a>
-                </li>
-                {% endif %}
-                <!-- all page numbers -->
-                {% for page_num in page_data.iter_pages() %}
-                    {% if page_num %}
-                        {% if page_num != page_data.page %}
-                            <li class="page-item">
-                                <a class="page-link"
-                                   href="{{ url_for('rki_landkreise.url_rki_landkreise_imported', page=page_num) }}">
-                                    {{ page_num }}
-                                </a>
-                            </li>
-                        {% else %}
-                            <li class="page-item active">
-                                <a class="page-link"
-                                   href="#">{{ page_num }}</a>
-                            </li>
-                        {% endif %}
-                   {% else %}
-                       <li class="page-item">
-                           <span class="ellipsis page-link my-page-item-ellipsis-page-link">…</span>
-                       </li>
-                   {% endif %}
-                {% endfor %}
-                <!-- next page -->
-                {% if page_data.has_next %}
-                <li class="page-item">
-                    <a class="page-link"
-                       href="{{ url_for('rki_landkreise.url_rki_landkreise_imported', page=page_data.next_num) }}">
-                        Next
-                    </a>
-                </li>
-                {% endif %}
-                </ul>
-            {% endif %}
-        </div>
-    </div>
-    <div class="row">
-        <div class="col">
-            <table class="table table-hover table-striped">
-                <thead>
-                    <tr>
-                        <th scope="col">date_reported</th>
-                        <th scope="col">country_code</th>
-                        <th scope="col">country</th>
-                        <th scope="col">who_region</th>
-                        <th scope="col">new_cases</th>
-                        <th scope="col">cumulative_cases</th>
-                        <th scope="col">new_deaths</th>
-                        <th scope="col">cumulative_deaths</th>
-                    </tr>
-                </thead>
-                <tbody>
-                {% for who_global_data_import in page_data.items %}
-                    <tr>
-                        <td>{{ who_global_data_import.date_reported }}</td>
-                        <td>{{ who_global_data_import.country_code }}</td>
-                        <td>{{ who_global_data_import.country }}</td>
-                        <td>{{ who_global_data_import.who_region }}</td>
-                        <td>{{ who_global_data_import.new_cases }}</td>
-                        <td>{{ who_global_data_import.cumulative_cases }}</td>
-                        <td>{{ who_global_data_import.new_deaths }}</td>
-                        <td>{{ who_global_data_import.cumulative_deaths }}</td>
-                    </tr>
-                {% endfor %}
-                </tbody>
-            </table>
-        </div>
-    </div>
-</div>
-{% endblock %}
-
-
-{% block footer_container %}
-
-{% endblock %}
-
-
-
diff --git a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_info.html b/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_info.html
deleted file mode 100644
index 4b00cd59c248de82a973b2cabca5bbeb3a0f9397..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_info.html
+++ /dev/null
@@ -1,47 +0,0 @@
-{% extends 'application/page_layout.html' %}
-
-{% block content %}
-    {{super()}}
-    {% include 'rki_landkreise/navigation/rki_landkreise_navtabs.html' %}
-
-    <div class="container">
-        <div class="row">
-            <div class="col">
-                <h3>RKI Coronavirus Disease (COVID-19) Dashboard</h3>
-                <p>
-                    <a href="https://experience.arcgis.com/experience/478220a4c454480e823b17327b2bf1d4/">
-                        https://experience.arcgis.com/experience/478220a4c454480e823b17327b2bf1d4
-                    </a>
-                </p>
-            </div>
-            <div class="col">
-                <h3>RKI COVID-19</h3>
-                <p>
-                    <a href="https://www.rki.de/EN/Content/infections/epidemiology/outbreaks/COVID-19/COVID19.html">
-                        https://www.rki.de/EN/Content/infections/epidemiology/outbreaks/COVID-19/COVID19.html
-                    </a>
-                </p>
-            </div>
-        </div>
-        <div class="row">
-            <div class="col">
-                <h3>COVID-19 Dashboard by the Center for Systems Science and Engineering (CSSE)
-                    at Johns Hopkins University (JHU)</h3>
-                <p>
-                    <a href="https://gisanddata.maps.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6">
-                        COVID-19 Dashboard by the Center for Systems Science and Engineering (CSSE)
-                        at Johns Hopkins University (JHU)
-                    </a>
-                </p>
-            </div>
-        </div>
-    </div>
-{% endblock %}
-
-
-{% block footer_container %}
-
-{% endblock %}
-
-
-
diff --git a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_tasks.html b/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_tasks.html
deleted file mode 100644
index d8dc6b7d45481f330e263c3fdb354f48cdca506f..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_landkreise/templates/rki_landkreise/rki_landkreise_tasks.html
+++ /dev/null
@@ -1,55 +0,0 @@
-{% extends 'application/page_layout.html' %}
-
-{% block content %}
-    {{super()}}
-    {% include 'rki_landkreise/navigation/rki_landkreise_navtabs.html' %}
-
-    <div class="container">
-        <div class="row">
-            <div class="col">
-                <h3>RKI Landkreise</h3>
-            </div>
-        </div>
-        <div class="row">
-            <div class="col">
-                <div class="btn-group-vertical" role="group" aria-label="Views">
-                    <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_landkreise.url_rki_landkreise_task_update_starschema_initial') }}"
-                       role="button">RKI :: Landkreise :: Task :: update :: star_schema :: initial</a>
-                    <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_landkreise.url_rki_landkreise_task_update_starschema_incremental') }}"
-                       role="button">RKI :: Landkreise :: Task :: update :: star_schema :: incremental</a>
-                </div>
-            </div>
-            <div class="col">
-                <div class="btn-group-vertical" role="group" aria-label="Views">
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_landkreise.url_rki_landkreise_task_download_only') }}"
-                       role="button">RKI :: Landkreise :: Task :: download :: only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_landkreise.url_rki_landkreise_task_import_only') }}"
-                       role="button">RKI :: Landkreise :: Task :: import :: only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_landkreise.url_rki_landkreise_task_update_dimensiontables_only') }}"
-                       role="button">RKI :: Landkreise :: Task :: update :: dimension-tables : only</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_landkreise.url_rki_landkreise_task_update_facttable_incremental_only') }}"
-                       role="button">RKI :: Landkreise :: Task :: update :: fact-table :: only :: incremental</a>
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_landkreise.url_rki_landkreise_task_update_facttable_initial_only') }}"
-                       role="button">RKI :: Landkreise :: Task :: update :: fact-table :: only :: initial</a>
-                </div>
-            </div>
-        </div>
-    </div>
-
-{% endblock %}
-
-
-
-{% block footer_container %}
-
-{% endblock %}
-
-
-
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/rki_vaccination_tasks.html b/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/rki_vaccination_tasks.html
deleted file mode 100644
index 9d04b1968e1ed073b1b50e81363c4a6ac598a536..0000000000000000000000000000000000000000
--- a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/rki_vaccination_tasks.html
+++ /dev/null
@@ -1,53 +0,0 @@
-{% extends 'application/page_layout.html' %}
-
-{% block content %}
-    {{super()}}
-    {% include 'rki_vaccination/navigation/rki_vaccination_navtabs.html' %}
-
-    <div class="container">
-        <div class="row">
-            <div class="col">
-                <h3>RKI Vaccination Tasks</h3>
-            </div>
-        </div>
-        <div class="row">
-            <div class="col">
-                <div class="btn-group-vertical" role="group" aria-label="Views">
-                    <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_starschema_initial') }}"
-                       role="button">Vaccination :: Task :: update :: star_schema :: initial</a>
-                    <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_starschema_incremental') }}"
-                       role="button">Vaccination :: Task :: update :: star_schema :: incremental</a>
-                </div>
-            </div>
-            <div class="col">
-                <div class="btn-group-vertical" role="group" aria-label="Views">
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_vaccination.url_vaccination_task_download_only') }}"
-                       role="button">Vaccination :: Task :: download :: only</a>
-
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_vaccination.url_vaccination_task_import_only') }}"
-                       role="button">Vaccination :: Task :: import :: only</a>
-
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_dimensiontables_only') }}"
-                       role="button">Vaccination :: Task :: update :: dimension-tables : only</a>
-
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_facttable_incremental_only') }}"
-                       role="button">Vaccination :: Task :: update :: fact-table :: only :: incremental</a>
-
-                    <a class="btn btn-secondary btn-lg btn-block text-left"
-                       href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_facttable_initial_only') }}"
-                       role="button">Vaccination :: Task :: update :: fact-table :: only :: initial</a>
-                </div>
-            </div>
-        </div>
-    </div>
-{% endblock %}
-
-
-
-
diff --git a/src/covid19/blueprints/user/__init__.py b/src/covid19/blueprints/rki_cases/__init__.py
similarity index 100%
rename from src/covid19/blueprints/user/__init__.py
rename to src/covid19/blueprints/rki_cases/__init__.py
diff --git a/src/covid19/blueprints/rki_cases/a.py b/src/covid19/blueprints/rki_cases/a.py
new file mode 100644
index 0000000000000000000000000000000000000000..9b19fcb57d26036e1858626949d6335ce8bdbcd9
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/a.py
@@ -0,0 +1,18 @@
+FID=row['FID'],
+IdBundesland=row['IdBundesland'],
+Bundesland=row['Bundesland'],
+Landkreis=row['Landkreis'],
+Altersgruppe=row['Altersgruppe'],
+Geschlecht=row['Geschlecht'],
+AnzahlFall=row['AnzahlFall'],
+AnzahlTodesfall=row['AnzahlTodesfall'],
+Meldedatum=row['Meldedatum'],
+IdLandkreis=row['IdLandkreis'],
+Datenstand=row['Datenstand'],
+NeuerFall=row['NeuerFall'],
+NeuerTodesfall=row['NeuerTodesfall'],
+Refdatum=row['Refdatum'],
+NeuGenesen=row['NeuGenesen'],
+AnzahlGenesen=row['AnzahlGenesen'],
+IstErkrankungsbeginn=row['IstErkrankungsbeginn'],
+Altersgruppe2=row['Altersgruppe2'],
\ No newline at end of file
diff --git a/src/covid19/blueprints/rki_cases/rki_model.py b/src/covid19/blueprints/rki_cases/rki_model.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3923ad3f093ddef35ed92f86becbf9e827781d1
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/rki_model.py
@@ -0,0 +1,227 @@
+from sqlalchemy import and_
+from datetime import date
+from sqlalchemy.orm import joinedload, subqueryload
+
+from database import db, ITEMS_PER_PAGE
+from covid19.blueprints.app_all.all_model import ApplicationDateReported, ApplicationRegion
+
+
+class RkiMeldedatum(ApplicationDateReported):
+    __tablename__ = 'rki_cases_datereported'
+    __mapper_args__ = {'concrete': True}
+    __table_args__ = (
+        db.UniqueConstraint('date_reported_import_str', 'datum', name="uix_rki_cases_datereported"),
+    )
+
+    id = db.Column(db.Integer, primary_key=True)
+    date_reported_import_str = db.Column(db.String(255), nullable=False, unique=True)
+    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)
+    month = db.Column(db.Integer, nullable=False)
+    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)
+
+    @classmethod
+    def create_new_object_factory(cls, my_date_rep):
+        my_datum = date.fromisoformat(my_date_rep)
+        (my_iso_year, week_number, weekday) = my_datum.isocalendar()
+        my_year_week = "" + str(my_iso_year)
+        if week_number < 10:
+            my_year_week += "-0"
+        else:
+            my_year_week += "-"
+        my_year_week += str(week_number)
+        return RkiMeldedatum(
+            date_reported_import_str=my_date_rep,
+            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
+        )
+
+
+class RkiBundesland(ApplicationRegion):
+    __tablename__ = 'rki_cases_landkreis_bundesland'
+    __mapper_args__ = {'concrete': True}
+    __table_args__ = (
+        db.UniqueConstraint('id_bundesland', 'region', name="uix_rki_cases_landkreis_bundesland"),
+    )
+
+    id = db.Column(db.Integer, primary_key=True)
+    id_bundesland = db.Column(db.String(255), nullable=False)
+    region = db.Column(db.String(255), nullable=False)
+
+
+class RkiLandkreis(db.Model):
+    __tablename__ = 'rki_cases_landkreis'
+    __table_args__ = (
+        db.UniqueConstraint('landkreis', 'id_landkreis', name="uix_rki_cases_landkreis"),
+    )
+
+    id = db.Column(db.Integer, primary_key=True)
+    id_landkreis = db.Column(db.String(255), nullable=False)
+    landkreis = db.Column(db.String(255), nullable=False)
+    bundesland_id = db.Column(db.Integer, db.ForeignKey('rki_cases_landkreis_bundesland.id'), nullable=False)
+    bundesland = db.relationship(
+        'RkiBundesland',
+        lazy='joined',
+        cascade='save-update',
+        order_by='RkiBundesland.region')
+
+    def __str__(self):
+        result = ""
+        result += self.landkreis
+        result += " "
+        result += self.bundesland.region
+        result += " "
+        return result
+
+    @classmethod
+    def remove_all(cls):
+        num_rows_deleted = 0
+        try:
+            num_rows_deleted = db.session.query(cls).delete()
+            db.session.commit()
+        except Exception:
+            db.session.rollback()
+        return num_rows_deleted
+
+    @classmethod
+    def get_all_as_page(cls, page):
+        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):
+        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_or_none()
+
+    @classmethod
+    def find_by_country_code_and_country_and_who_region_id(cls, i_country_code, i_country, my_region):
+        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):
+        return db.session.query(cls).filter(
+            cls.country_code == i_country_code
+        ).one_or_none()
+
+    @classmethod
+    def get_by_country_code(cls, i_country_code):
+        return db.session.query(cls).filter(
+            cls.country_code == i_country_code
+        ).one()
+
+    @classmethod
+    def find_by_country(cls, i_country):
+        return db.session.query(cls).filter(
+            cls.country == i_country
+        ).one_or_none()
+
+    @classmethod
+    def get_by_country_code(cls, i_country_code):
+        return db.session.query(cls).filter(
+            cls.country_code == i_country_code
+        ).one()
+
+    @classmethod
+    def get_by_country(cls, i_country):
+        return db.session.query(cls).filter(
+            cls.country == i_country
+        ).one()
+
+    @classmethod
+    def get_who_countries_for_region(cls, region, page):
+        return db.session.query(cls).filter(
+            cls.region == region
+        ).order_by(cls.country).paginate(page, per_page=ITEMS_PER_PAGE)
+
+
+class RkiData(db.Model):
+    __tablename__ = 'rki_cases'
+
+    id = db.Column(db.Integer, primary_key=True)
+
+    fid = db.Column(db.String(255), nullable=False)
+    altersgruppe = db.Column(db.String(255), nullable=False)
+    geschlecht = db.Column(db.String(255), nullable=False)
+    anzahl_fall = db.Column(db.String(255), nullable=False)
+    anzahl_todesfall = db.Column(db.String(255), nullable=False)
+    meldedatum = db.Column(db.String(255), nullable=False)
+    datenstand = db.Column(db.String(255), nullable=False)
+    neuer_fall = db.Column(db.String(255), nullable=False)
+    neuer_todesfall = db.Column(db.String(255), nullable=False)
+    ref_datum = db.Column(db.String(255), nullable=False)
+    neu_genesen = db.Column(db.String(255), nullable=False)
+    anzahl_genesen = db.Column(db.String(255), nullable=False)
+    ist_erkrankungsbeginn = db.Column(db.String(255), nullable=False)
+    altersgruppe2 = db.Column(db.String(255), nullable=False)
+    meldedatum_id = db.Column(db.Integer,
+                                 db.ForeignKey('rki_cases_datereported.id'), nullable=False)
+    meldedatum = db.relationship(
+        'RkiMeldedatum',
+        lazy='joined',
+        cascade='save-update',
+        order_by='desc(RkiMeldedatum.date_reported_import_str)')
+    landkreis_id = db.Column(db.Integer,
+                           db.ForeignKey('rki_cases_landkreis.id'), nullable=False)
+    landkreis = db.relationship(
+        'RkiLandkreis',
+        lazy='joined',
+        cascade='save-update',
+        order_by='asc(RkiLandkreis.landkreis)')
+
+    @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):
+        return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE)
+
+    @classmethod
+    def get_all(cls):
+        return db.session.query(cls).all()
+
+    @classmethod
+    def get_by_id(cls, other_id):
+        return db.session.query(cls).filter(cls.id == other_id).one()
+
+    @classmethod
+    def find_by_id(cls, other_id):
+        return db.session.query(cls).filter(cls.id == other_id).one_or_none()
diff --git a/src/covid19/blueprints/rki_cases/rki_model_import.py b/src/covid19/blueprints/rki_cases/rki_model_import.py
new file mode 100644
index 0000000000000000000000000000000000000000..13a324ded1f3e786f77e0c2770e96525b740d76c
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/rki_model_import.py
@@ -0,0 +1,64 @@
+from database import db, ITEMS_PER_PAGE
+
+
+class RkiImport(db.Model):
+    __tablename__ = 'application__import__rki_cases'
+
+    id = db.Column(db.Integer, primary_key=True)
+    fid = db.Column(db.String(255), nullable=False)
+    id_bundesland = db.Column(db.String(255), nullable=False)
+    bundesland = db.Column(db.String(255), nullable=False)
+    landkreis = db.Column(db.String(255), nullable=False)
+    altersgruppe = db.Column(db.String(255), nullable=False)
+    geschlecht = db.Column(db.String(255), nullable=False)
+    anzahl_fall = db.Column(db.String(255), nullable=False)
+    anzahl_todesfall = db.Column(db.String(255), nullable=False)
+    meldedatum = db.Column(db.String(255), nullable=False)
+    id_landkreis = db.Column(db.String(255), nullable=False)
+    datenstand = db.Column(db.String(255), nullable=False)
+    neuer_fall = db.Column(db.String(255), nullable=False)
+    neuer_todesfall = db.Column(db.String(255), nullable=False)
+    ref_datum = db.Column(db.String(255), nullable=False)
+    neu_genesen = db.Column(db.String(255), nullable=False)
+    anzahl_genesen = db.Column(db.String(255), nullable=False)
+    ist_erkrankungsbeginn = db.Column(db.String(255), nullable=False)
+    altersgruppe2 = db.Column(db.String(255), nullable=False)
+    # date_reported = db.Column(db.String(255), nullable=False)
+    # datum = db.Column(db.Date, nullable=False)
+    # year = db.Column(db.Integer, nullable=False)
+    # month = db.Column(db.Integer, nullable=False)
+    # 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)
+    # year_week = db.Column(db.String(255), nullable=False)
+
+    @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).paginate(page, per_page=ITEMS_PER_PAGE)
+
+    @classmethod
+    def get_all(cls):
+        return db.session.query(cls).all()
+
+    @classmethod
+    def get_by_id(cls, other_id: int):
+        return db.session.query(cls).filter(cls.id == other_id).one()
+
+    @classmethod
+    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_cases/rki_service.py b/src/covid19/blueprints/rki_cases/rki_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..770c8ebaa0502875157acb5e3eb5df96ccbcd1e9
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/rki_service.py
@@ -0,0 +1,107 @@
+from flask import flash
+
+from database import app
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_download import ApplicationServiceDownload
+from covid19.blueprints.rki_cases.rki_service_import import RkiServiceImport
+from covid19.blueprints.rki_cases.rki_service_update import RkiServiceUpdate, RkiServiceUpdateFull
+
+
+class RkiService:
+    def __init__(self, database):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RKI Service [init]")
+        app.logger.debug("------------------------------------------------------------")
+        self.__database = database
+        self.cfg = ApplicationServiceConfig.create_config_for_rki()
+        self.service_download = ApplicationServiceDownload(database, self.cfg)
+        self.service_import = RkiServiceImport(database, self.cfg)
+        self.service_update = RkiServiceUpdate(database, self.cfg)
+        self.service_update_full = RkiServiceUpdateFull(database, self.cfg)
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.info(" RKI Service [ready]")
+
+    def pretask_database_drop_create(self):
+        flash("RkiService.pretask_database_drop_create start")
+        app.logger.info("RkiService.pretask_database_drop_create start")
+        self.service_download.download_file()
+        app.logger.info("RkiService.pretask_database_drop_create done")
+        flash("RkiService.pretask_database_drop_create done")
+        return self
+
+    def task_database_drop_create(self):
+        app.logger.info("RkiService.task_database_drop_create start")
+        self.service_import.import_file()
+        self.service_update_full.full_update_star_schema()
+        app.logger.info("RkiService.task_database_drop_create done")
+        return self
+
+    def run_download(self):
+        flash("RkiService.run_download start")
+        self.service_download.download_file()
+        flash("RkiService.run_download done")
+        return self
+
+    def run_import(self):
+        self.service_import.import_file()
+        return self
+
+    def run_full_update_dimension_tables(self):
+        self.service_update_full.full_update_dimension_tables()
+        return self
+
+    def run_update_dimension_tables(self):
+        self.service_update.update_dimension_tables()
+        return self
+
+    def run_full_update_fact_table(self):
+        self.service_update_full.full_update_fact_table()
+        return self
+
+    def run_update_fact_table(self):
+        self.service_update.update_fact_table()
+        return self
+
+    def task_admin_full_update_star_schema(self):
+        self.service_import.import_file()
+        self.service_update_full.full_update_star_schema()
+        return self
+
+    def task_admin_update_star_schema(self):
+        self.service_import.import_file()
+        self.service_update.update_star_schema()
+        return self
+
+    def run_full_update_star_schema(self):
+        self.service_import.import_file()
+        self.service_update_full.full_update_star_schema()
+        return self
+
+    def run_update_star_schema(self):
+        self.service_import.import_file()
+        self.service_update.update_star_schema()
+        return self
+
+    def download_all_files(self):
+        self.service_download.download_file()
+        return self
+
+    def task_import_all_files(self):
+        self.service_import.import_file()
+        return self
+
+    def full_update_dimension_tables(self):
+        self.service_update_full.full_update_dimension_tables()
+        return self
+
+    def update_dimension_tables(self):
+        self.service_update.update_dimension_tables()
+        return self
+
+    def full_update_fact_table(self):
+        self.service_update_full.full_update_fact_table()
+        return self
+
+    def update_fact_table(self):
+        self.service_update.update_fact_table()
+        return self
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_service_import.py b/src/covid19/blueprints/rki_cases/rki_service_import.py
similarity index 65%
rename from src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_service_import.py
rename to src/covid19/blueprints/rki_cases/rki_service_import.py
index 972008bd5aa252fae308139db10de8ee93f6a079..ae57a588adfe30c18269286f3a9239fe81041d27 100644
--- a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_service_import.py
+++ b/src/covid19/blueprints/rki_cases/rki_service_import.py
@@ -2,11 +2,11 @@ import csv
 import psycopg2
 
 from database import db, app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_model_import import RkiBundeslaenderImport
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.rki_cases.rki_model_import import RkiImport
 
 
-class RkiBundeslaenderServiceImport:
+class RkiServiceImport:
     def __init__(self, database, config: ApplicationServiceConfig):
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" RKI Service Import [init]")
@@ -24,32 +24,31 @@ class RkiBundeslaenderServiceImport:
         app.logger.info("------------------------------------------------------------")
         row = None
         try:
-            RkiBundeslaenderImport.remove_all()
+            RkiImport.remove_all()
             with open(self.cfg.cvsfile_path, newline='\n') as csv_file:
                 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'],
-                        LAN_ew_GEN=row['LAN_ew_GEN'],
-                        LAN_ew_BEZ=row['LAN_ew_BEZ'],
-                        LAN_ew_EWZ=row['LAN_ew_EWZ'],
-                        OBJECTID=row['OBJECTID'],
-                        Fallzahl=row['Fallzahl'],
-                        Aktualisierung=row['Aktualisierung'],
-                        AGS_TXT=row['AGS_TXT'],
-                        GlobalID=row['GlobalID'],
-                        faelle_100000_EW=row['faelle_100000_EW'],
-                        Death=row['Death'],
-                        cases7_bl_per_100k=row['cases7_bl_per_100k'],
-                        cases7_bl=row['cases7_bl'],
-                        death7_bl=row['death7_bl'],
-                        cases7_bl_per_100k_txt=row['cases7_bl_per_100k_txt'],
-                        AdmUnitId=row['AdmUnitId'],
-                        SHAPE_Length=row['SHAPE_Length'],
-                        SHAPE_Area=row['SHAPE_Area'],
+                    o = RkiImport(
+                        fid=row['FID'],
+                        id_bundesland=row['IdBundesland'],
+                        bundesland=row['Bundesland'],
+                        landkreis=row['Landkreis'],
+                        altersgruppe=row['Altersgruppe'],
+                        geschlecht=row['Geschlecht'],
+                        anzahl_fall=row['AnzahlFall'],
+                        anzahl_todesfall=row['AnzahlTodesfall'],
+                        meldedatum=row['Meldedatum'],
+                        id_landkreis=row['IdLandkreis'],
+                        datenstand=row['Datenstand'],
+                        neuer_fall=row['NeuerFall'],
+                        neuer_todesfall=row['NeuerTodesfall'],
+                        ref_datum=row['Refdatum'],
+                        neu_genesen=row['NeuGenesen'],
+                        anzahl_genesen=row['AnzahlGenesen'],
+                        ist_erkrankungsbeginn=row['IstErkrankungsbeginn'],
+                        altersgruppe2=row['Altersgruppe2']
                     )
                     db.session.add(o)
                     if (k % 2000) == 0:
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_service_update.py b/src/covid19/blueprints/rki_cases/rki_service_update.py
similarity index 60%
rename from src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_service_update.py
rename to src/covid19/blueprints/rki_cases/rki_service_update.py
index 59c41e48ce455e4b6d034581f8c8ae0b1acdbbbf..6df9ad9bd1b49479b3e54abff5c5bba23b619790 100644
--- a/src/covid19/blueprints/rki/rki_bundeslaender/rki_bundeslaender_service_update.py
+++ b/src/covid19/blueprints/rki_cases/rki_service_update.py
@@ -1,12 +1,11 @@
 from database import db, app
 
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_model import RkiDateReported
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_model import RkiBundeslaender
-from covid19.blueprints.rki.rki_bundeslaender.rki_bundeslaender_model_import import RkiBundeslaenderImport
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.rki_cases.rki_model import RkiData, RkiMeldedatum
+from covid19.blueprints.rki_cases.rki_model_import import RkiImport
 
 
-class RkiBundeslaenderServiceUpdate:
+class RkiServiceUpdateBase:
     def __init__(self, database, config: ApplicationServiceConfig):
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" RKI Service Update [init]")
@@ -16,16 +15,19 @@ class RkiBundeslaenderServiceUpdate:
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" RKI Service Update [ready]")
 
-    def __update_date_reported(self):
-        app.logger.info(" update RkiDateReported [begin]")
+
+class RkiServiceUpdateFull(RkiServiceUpdateBase):
+
+    def __full_update_date_reported(self):
+        app.logger.info(" RkiServiceUpdateFull.__full_update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
         i = 0
-        for aktualisierung in RkiBundeslaenderImport.get_aktualisierungen_as_array():
+        for aktualisierung in RkiImport.get_aktualisierungen_as_array():
             i += 1
             output = " [ " + str(i) + " ] " + aktualisierung
-            c = RkiDateReported.find_by_date_reported(aktualisierung)
+            c = RkiMeldedatum.find_by_date_reported(aktualisierung)
             if c is None:
-                o = RkiDateReported.create_new_object_factory(aktualisierung=aktualisierung)
+                o = RkiMeldedatum.create_new_object_factory(aktualisierung=aktualisierung)
                 db.session.add(o)
                 db.session.commit()
                 output += " added"
@@ -34,19 +36,20 @@ class RkiBundeslaenderServiceUpdate:
             app.logger.info(output)
         db.session.commit()
         app.logger.info("")
-        app.logger.info(" update RkiDateReported [done]")
+        app.logger.info(" RkiServiceUpdateFull.__full_update_date_reported [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_data_incremental(self):
-        app.logger.info(" update RkiBundeslaender short [begin]")
+    def __full_update_data(self):
+        app.logger.info(" RkiServiceUpdateFull.__full_update_data [begin]")
         app.logger.info("------------------------------------------------------------")
-        aktualisierungen_from_import = RkiBundeslaenderImport.get_aktualisierungen_as_array()
+        RkiData.remove_all()
+        aktualisierungen_from_import = RkiImport.get_new_aktualisierungen_as_array()
         i = 0
         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(
+            my_date = RkiMeldedatum.find_by_aktualisierung(aktualisierung_from_import)
+            for result_item in RkiImport.find_by_aktualisierung(aktualisierung_from_import):
+                o = RkiData(
                     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,
@@ -56,7 +59,7 @@ class RkiBundeslaenderServiceUpdate:
                     fallzahl=int(result_item.Fallzahl),
                     aktualisierung=result_item.Aktualisierung,
                     ags_txt=int(result_item.AGS_TXT),
-                    global_id=result_item.GlobalID,  # uuid?
+                    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),
@@ -70,24 +73,61 @@ class RkiBundeslaenderServiceUpdate:
                 db.session.add(o)
                 i += 1
                 if i % 500 == 0:
-                    app.logger.info(" update RkiBundeslaender short ... "+str(i)+" rows")
+                    app.logger.info(" update WHO initial ... "+str(i)+" rows")
                     db.session.commit()
             db.session.commit()
-        app.logger.info(" update RkiBundeslaender short :  "+str(i)+" total rows")
-        app.logger.info(" update RkiBundeslaender short [done]")
+        app.logger.info(" update WHO initial :  "+str(i)+" total rows")
+        app.logger.info(" RkiServiceUpdateFull.__full_update_data [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
+    def full_update_dimension_tables(self):
+        self.__full_update_date_reported()
+        return self
+
+    def full_update_fact_table(self):
+        self.__full_update_data()
+        return self
+
+    def full_update_star_schema(self):
+        self.__full_update_date_reported()
+        self.__full_update_data()
+        return self
+
+
+class RkiServiceUpdate(RkiServiceUpdateBase):
+
+    def __update_date_reported(self):
+        app.logger.info(" RkiServiceUpdate.__update_date_reported [begin]")
+        app.logger.info("------------------------------------------------------------")
+        i = 0
+        for aktualisierung in RkiImport.get_aktualisierungen_as_array():
+            i += 1
+            output = " [ " + str(i) + " ] " + aktualisierung
+            c = RkiMeldedatum.find_by_date_reported(aktualisierung)
+            if c is None:
+                o = RkiMeldedatum.create_new_object_factory(aktualisierung=aktualisierung)
+                db.session.add(o)
+                db.session.commit()
+                output += " added"
+            else:
+                output += " NOT added " + str(c.id)
+            app.logger.info(output)
+        db.session.commit()
+        app.logger.info("")
+        app.logger.info(" RkiServiceUpdate.__update_date_reported [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_data_initial(self):
-        app.logger.info(" update RKI initial [begin]")
+    def __update_data(self):
+        app.logger.info(" RkiServiceUpdate.__update_data [begin]")
         app.logger.info("------------------------------------------------------------")
-        RkiBundeslaender.remove_all()
-        aktualisierungen_from_import = RkiBundeslaenderImport.get_new_aktualisierungen_as_array()
+        aktualisierungen_from_import = RkiImport.get_aktualisierungen_as_array()
         i = 0
         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(
+            my_date = RkiMeldedatum.find_by_aktualisierung(aktualisierung_from_import)
+            for result_item in RkiImport.find_by_aktualisierung(aktualisierung_from_import):
+                o = RkiData(
                     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,
@@ -97,7 +137,7 @@ class RkiBundeslaenderServiceUpdate:
                     fallzahl=int(result_item.Fallzahl),
                     aktualisierung=result_item.Aktualisierung,
                     ags_txt=int(result_item.AGS_TXT),
-                    global_id=result_item.GlobalID, # uuid?
+                    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),
@@ -111,33 +151,23 @@ class RkiBundeslaenderServiceUpdate:
                 db.session.add(o)
                 i += 1
                 if i % 500 == 0:
-                    app.logger.info(" update WHO initial ... "+str(i)+" rows")
+                    app.logger.info(" update RkiBundeslaender short ... "+str(i)+" rows")
                     db.session.commit()
             db.session.commit()
-        app.logger.info(" update WHO initial :  "+str(i)+" total rows")
-        app.logger.info(" update WHO initial [done]")
+        app.logger.info(" update RkiBundeslaender short :  "+str(i)+" total rows")
+        app.logger.info(" RkiServiceUpdate.__update_data [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def update_dimension_tables_only(self):
+    def update_dimension_tables(self):
         self.__update_date_reported()
         return self
 
-    def update_fact_table_incremental_only(self):
-        self.__update_data_incremental()
+    def update_fact_table(self):
+        self.__update_data()
         return self
 
-    def update_fact_table_initial_only(self):
-        self.__update_data_initial()
-        return self
-
-    def update_star_schema_incremental(self):
+    def update_star_schema(self):
         self.__update_date_reported()
-        self.__update_data_incremental()
+        self.__update_data()
         return self
-
-    def update_star_schema_initial(self):
-        self.__update_date_reported()
-        self.__update_data_initial()
-        return self
-
diff --git a/src/covid19/blueprints/rki_cases/rki_views.py b/src/covid19/blueprints/rki_cases/rki_views.py
new file mode 100644
index 0000000000000000000000000000000000000000..231f82933b701f1e92bf1da1d459dd9974d8de17
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/rki_views.py
@@ -0,0 +1,239 @@
+from flask import render_template, redirect, url_for, flash, Blueprint
+from sqlalchemy.exc import OperationalError
+from flask_admin.contrib.sqla import ModelView
+from celery import states
+
+from database import app, admin, db
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.rki_cases.rki_model import RkiData, RkiMeldedatum
+from covid19.blueprints.rki_cases.rki_model_import import RkiImport
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
+
+drop_and_create_data_again = True
+
+app_rki = Blueprint(
+    'rki', __name__, template_folder='templates', url_prefix='/rki/cases')
+
+
+admin.add_view(ModelView(RkiImport, db.session, category="RKI Cases"))
+admin.add_view(ModelView(RkiData, db.session, category="RKI Cases"))
+
+
+# ---------------------------------------------------------------------------------------------------------------
+#  Url Routes Frontend
+# ---------------------------------------------------------------------------------------------------------------
+
+
+@app_rki.route('/info')
+def url_rki_info():
+    page_info = ApplicationPage('RKI', "Info")
+    return render_template(
+        'rki/rki_info.html',
+        page_info=page_info)
+
+
+@app_rki.route('/tasks')
+def url_rki_tasks():
+    page_info = ApplicationPage('RKI', "Tasks")
+    return render_template(
+        'rki/rki_tasks.html',
+        page_info=page_info)
+
+
+@app_rki.route('/imported/page/<int:page>')
+@app_rki.route('/imported')
+def url_rki_imported(page=1):
+    page_info = ApplicationPage('RKI', "Last Import")
+    try:
+        page_data = RkiImport.get_all_as_page(page)
+    except OperationalError:
+        flash("No data in the database.")
+        page_data = None
+    return render_template(
+        'rki/rki_imported.html',
+        page_data=page_data,
+        page_info=page_info)
+
+
+@app_rki.route('/test/page/<int:page>')
+@app_rki.route('/test')
+def url_rki_test(page=1):
+    page_info = ApplicationPage('RKI', "TEST")
+    try:
+        page_data = RkiImport.get_all_as_page(page)
+    except OperationalError:
+        flash("No data in the database.")
+        page_data = None
+    return render_template(
+        'rki/rki_test.html',
+        page_data=page_data,
+        page_info=page_info)
+
+
+@app_rki.route('/date_reported/all/page/<int:page>')
+@app_rki.route('/date_reported/all')
+def url_rki_date_reported_all(page: int = 1):
+    page_info = ApplicationPage('RKI', "Date Reported", "All")
+    try:
+        page_data = RkiMeldedatum.get_all_as_page(page)
+    except OperationalError:
+        flash("No date_reported in the database.")
+        page_data = None
+    return render_template(
+        'rki/date_reported/rki_date_reported_all.html',
+        page_data=page_data,
+        page_info=page_info)
+
+
+# ------------------------------------------------------------------------
+#  Celery TASKS
+# ------------------------------------------------------------------------
+
+@celery.task(bind=True)
+def task_rki_import(self):
+    self.update_state(state=states.STARTED)
+    rki_service.run_import()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_rki_import_only)"
+    return result
+
+
+@celery.task(bind=True)
+def task_rki_full_update_dimensiontables(self):
+    self.update_state(state=states.STARTED)
+    rki_service.task_full_update_dimensiontables()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_rki_full_update_dimensiontables)"
+    return result
+
+
+@celery.task(bind=True)
+def task_rki_update_dimensiontables(self):
+    self.update_state(state=states.STARTED)
+    rki_service.task_update_dimensiontables()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_rki_update_dimensiontables)"
+    return result
+
+
+@celery.task(bind=True)
+def task_rki_full_update_facttable(self):
+    self.update_state(state=states.STARTED)
+    rki_service.full_update_fact_table()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_rki_full_update_facttable)"
+    return result
+
+
+@celery.task(bind=True)
+def task_rki_update_facttable(self):
+    self.update_state(state=states.STARTED)
+    rki_service.run_update_fact_table_incremental_only()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_rki_update_facttable)"
+    return result
+
+
+@celery.task(bind=True)
+def task_rki_full_update_starschema(self):
+    self.update_state(state=states.STARTED)
+    rki_service.run_update_star_schema_incremental()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_rki_full_update_starschema)"
+    return result
+
+
+@celery.task(bind=True)
+def task_rki_update_starschema(self):
+    self.update_state(state=states.STARTED)
+    rki_service.run_update_star_schema_incremental()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_rki_update_starschema)"
+    return result
+
+# ------------------------------------------------------------------------
+#  URL Routes for Celery TASKS
+# ------------------------------------------------------------------------
+
+
+@app_rki.route('/task/download')
+def url_task_rki_download():
+    app.logger.info("url_task_rki_download [start]")
+    flash("url_task_rki_download [start]")
+    rki_service.run_download()
+    flash("url_task_rki_download [done]")
+    app.logger.info("url_task_rki_download [done]")
+    return redirect(url_for('rki.url_rki_tasks'))
+
+
+@app_rki.route('/task/import')
+def url_task_rki_import():
+    app.logger.info("url_task_rki_import [start]")
+    task_rki_import.apply_async()
+    flash(message="url_task_rki_download [async start]", category='warning')
+    app.logger.warn("task_rki_import [async start]")
+    return redirect(url_for('rki.url_rki_tasks'))
+
+
+@app_rki.route('/task/update/full/dimension-tables')
+def url_task_rki_full_update_dimensiontables():
+    app.logger.info("url_task_rki_full_update_dimensiontables [start]")
+    task_rki_full_update_dimensiontables.apply_async()
+    flash(message="task_rki_full_update_dimensiontables [async start]", category='warning')
+    app.logger.warn("task_rki_full_update_dimensiontables [async start]")
+    return redirect(url_for('rki.url_rki_tasks'))
+
+
+@app_rki.route('/task/update/dimension-tables')
+def url_task_rki_update_dimensiontables():
+    app.logger.info("url_task_rki_update_dimensiontables [start]")
+    task_rki_update_dimensiontables.apply_async()
+    flash(message="task_rki_update_dimensiontables [async start]", category='warning')
+    app.logger.warn("task_rki_update_dimensiontables [async start]")
+    return redirect(url_for('rki.url_rki_tasks'))
+
+
+@app_rki.route('/task/update/full/fact-table')
+def url_task_rki_full_update_facttable():
+    app.logger.info("url_rki_task_update_facttable_incremental_only [start]")
+    task_rki_full_update_facttable.apply_async()
+    flash(message="task_rki_full_update_facttable [async start]", category='warning')
+    app.logger.warn("task_rki_full_update_facttable [async start]")
+    return redirect(url_for('rki.url_rki_tasks'))
+
+
+@app_rki.route('/task/update/fact-table')
+def url_task_rki_update_facttable():
+    app.logger.info("url_task_rki_update_facttable [start]")
+    task_rki_update_facttable.apply_async()
+    flash(message="task_rki_update_facttable [async start]", category='warning')
+    app.logger.warn("task_rki_update_facttable [async start]")
+    return redirect(url_for('rki.url_rki_tasks'))
+
+
+@app_rki.route('/task/update/full/star_schema')
+def url_task_rki_full_update_starschema():
+    app.logger.info("url_task_rki_full_update_starschema [start]")
+    flash("url_task_rki_download [start]")
+    rki_service.run_download()
+    flash("url_task_rki_download [done]")
+    task_rki_full_update_starschema.apply_async()
+    flash(message="task_rki_full_update_starschema [async start]", category='warning')
+    app.logger.warn("task_rki_full_update_starschema [async start]")
+    return redirect(url_for('rki.url_rki_tasks'))
+
+
+@app_rki.route('/task/update/star_schema')
+def url_task_rki_update_starschema():
+    app.logger.info("url_task_rki_update_starschema [start]")
+    flash("url_task_rki_download [start]")
+    rki_service.run_download()
+    flash("url_task_rki_download [done]")
+    task_rki_update_starschema.apply_async()
+    flash(message="task_rki_update_starschema [async start]", category='warning')
+    app.logger.warn("task_rki_update_starschemas [async start]")
+    return redirect(url_for('rki.url_rki_tasks'))
diff --git a/src/covid19/blueprints/user/templates/__init__.py b/src/covid19/blueprints/rki_cases/templates/__init__.py
similarity index 100%
rename from src/covid19/blueprints/user/templates/__init__.py
rename to src/covid19/blueprints/rki_cases/templates/__init__.py
diff --git a/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all.html b/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all.html
new file mode 100644
index 0000000000000000000000000000000000000000..a12d337ccec5ae4f691e8cd8999d6061be774ab8
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all.html
@@ -0,0 +1,32 @@
+{% extends 'app_all/layout/page_layout.html' %}
+
+{% block content %}
+    {{super()}}
+    {% include 'rki/navigation/rki_navtabs.html' %}
+
+    <div class="container-fluid">
+        <div class="row">
+            <div class="col">
+                {% include 'rki/date_reported/rki_date_reported_all_pagination.html' %}
+            </div>
+        </div>
+        <div class="row">
+            <div class="col">
+                {% include 'rki/date_reported/rki_date_reported_all_table.html' %}
+            </div>
+        </div>
+        <div class="row">
+            <div class="col">
+                {% include 'rki/date_reported/rki_date_reported_all_pagination.html' %}
+            </div>
+        </div>
+    </div>
+{% endblock %}
+
+{% block footer_container %}
+    <div>
+        {% for error in errors %}
+            <h4>{{ error }}</h4>
+        {% endfor %}
+    </div>
+{% endblock %}
diff --git a/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all_pagination.html b/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all_pagination.html
new file mode 100644
index 0000000000000000000000000000000000000000..6eb53384c6362c6d76cf053d6dc378894a298636
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all_pagination.html
@@ -0,0 +1,34 @@
+                {% if page_data.pages > 1 %}
+                    <!-- previous page -->
+                    <ul class="pagination">
+                    {% if page_data.has_prev %}
+                    <li class="page-item">
+                        <a class="page-link" href="{{ url_for('rki.url_rki_date_reported_all', page=page_data.prev_num) }}">Previous</a>
+                    </li>
+                    {% endif %}
+                    <!-- all page numbers -->
+                    {% for page_num in page_data.iter_pages() %}
+                        {% if page_num %}
+                            {% if page_num != page_data.page %}
+                                <li class="page-item">
+                                    <a class="page-link" href="{{ url_for('rki.url_rki_date_reported_all', page=page_num) }}">{{ page_num }}</a>
+                                </li>
+                            {% else %}
+                                <li class="page-item active">
+                                    <a class="page-link" href="#">{{ page_num }}</a>
+                                </li>
+                            {% endif %}
+                       {% else %}
+                           <li class="page-item">
+                               <span class="ellipsis page-link my-page-item-ellipsis-page-link">…</span>
+                           </li>
+                       {% endif %}
+                    {% endfor %}
+                    <!-- next page -->
+                    {% if page_data.has_next %}
+                    <li class="page-item">
+                        <a class="page-link" href="{{ url_for('rki.url_rki_date_reported_all', page=page_data.next_num) }}">Next</a>
+                    </li>
+                    {% endif %}
+                    </ul>
+                {% endif %}
diff --git a/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all_table.html b/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all_table.html
new file mode 100644
index 0000000000000000000000000000000000000000..1c6fef683e270a0ca74e49081e2ba96619e9d1d6
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/templates/rki/date_reported/rki_date_reported_all_table.html
@@ -0,0 +1,36 @@
+                <table class="table table-hover table-striped table-dark">
+                    <thead class="table-secondary">
+                        <tr>
+                            <th scope="col" class="text-right">day of week</th>
+                            <th scope="col" class="text-left">date reported</th>
+                            <th scope="col" class="text-right">week of year</th>
+                            <th scope="col" class="text-left">year</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                    {% for owid_date_reported in page_data.items %}
+                        <tr>
+                            <td class="text-right">
+                                {{ owid_date_reported.get_name_for_weekday() }}
+                            </td>
+                            <td class="text-left">
+                                    {{ owid_date_reported }}
+                            </td>
+                            <td class="text-right">
+                                {{ owid_date_reported.week_of_year }}
+                            </td>
+                            <td class="text-left">
+                                {{ owid_date_reported.year }}
+                            </td>
+                        </tr>
+                    {% endfor %}
+                    </tbody>
+                    <tfoot class="table-secondary">
+                        <tr>
+                            <th scope="col" class="text-right">day of week</th>
+                            <th scope="col" class="text-left">date reported</th>
+                            <th scope="col" class="text-right">week of year</th>
+                            <th scope="col" class="text-left">year</th>
+                        </tr>
+                    </tfoot>
+                </table>
\ No newline at end of file
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/navigation/rki_bundeslaender_navbar_dropdown.html b/src/covid19/blueprints/rki_cases/templates/rki/navigation/rki_navbar_dropdown.html
similarity index 56%
rename from src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/navigation/rki_bundeslaender_navbar_dropdown.html
rename to src/covid19/blueprints/rki_cases/templates/rki/navigation/rki_navbar_dropdown.html
index ea81327f4c942724cfd532e823aea7f12047a411..8d62d606f5f9168e8fa3f0422b392a70202ee2cc 100644
--- a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/navigation/rki_bundeslaender_navbar_dropdown.html
+++ b/src/covid19/blueprints/rki_cases/templates/rki/navigation/rki_navbar_dropdown.html
@@ -1,28 +1,37 @@
               <li class="dropdown">
                     <a class="dropdown-toggle nav-link" data-toggle="dropdown" href="javascript:void(0)">
-                        RKI Bundeslaender<i class="glyphicon glyphicon-chevron-down small"></i>
+                        RKI <i class="glyphicon glyphicon-chevron-down small"></i>
                     </a>
                     <ul class="dropdown-menu">
                         <li>
-                            <a class="dropdown-item" href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_info') }}">
-                                RKI Bundeslaender Info
+                            <a class="dropdown-item" href="{{ url_for('rki.url_rki_info') }}">
+                                RKI Info
                             </a>
                         </li>
+                        {% if current_user.is_authenticated %}
                         <li>
                             <div class="dropdown-divider"></div>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_imported') }}">
-                                RKI Bundeslaender imported
+                            <a class="dropdown-item" href="{{ url_for('rki.url_rki_tasks') }}">
+                                RKI Tasks
                             </a>
                         </li>
                         <li>
                             <div class="dropdown-divider"></div>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_tasks') }}">
-                                RKI Bundeslaender Tasks
+                            <a class="dropdown-item" href="{{ url_for('rki.url_rki_imported') }}">
+                                RKI imported
                             </a>
                         </li>
+                        {% endif %}
+                        <li>
+                            <div class="dropdown-divider"></div>
+                        </li>
+                        <li>
+                            <a class="dropdown-item"
+                                href="{{ url_for( 'rki.url_rki_date_reported_all') }}">RKI Date Reported</a>
+                        </li>
                     </ul>
                 </li>
diff --git a/src/covid19/blueprints/rki_cases/templates/rki/navigation/rki_navtabs.html b/src/covid19/blueprints/rki_cases/templates/rki/navigation/rki_navtabs.html
new file mode 100644
index 0000000000000000000000000000000000000000..837c82912013f827a7d8c7579f1648cf6e94d35d
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/templates/rki/navigation/rki_navtabs.html
@@ -0,0 +1,36 @@
+    <div class="container">
+        <div class="row-cols-1">
+            <nav>
+                <ul class="nav nav-tabs">
+                    <li class="nav-item">
+                        <a class="nav-link"
+                           href="{{ url_for('rki.url_rki_info') }}">
+                            RKI Info
+                        </a>
+                    </li>
+                    {% if current_user.is_authenticated %}
+                    <li class="nav-item">
+                        <a class="nav-link" href="{{ url_for('rki.url_rki_tasks') }}">
+                            RKI tasks
+                        </a>
+                    </li>
+                    <li class="nav-item">
+                        <a class="nav-link" href="{{ url_for('rki_test.url_rki_test_tests') }}">
+                            RKI Tests
+                        </a>
+                    </li>
+                    <li class="nav-item">
+                        <a class="nav-link" href="{{ url_for('rki.url_rki_imported') }}">
+                            RKI imported
+                        </a>
+                    </li>
+                    {% endif %}
+                    <li class="nav-item">
+                        <a class="nav-link" href="{{ url_for( 'rki.url_rki_date_reported_all') }}">
+                            RKI Date Reported
+                        </a>
+                    </li>
+                </ul>
+            </nav>
+        </div>
+    </div>
\ No newline at end of file
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_imported.html b/src/covid19/blueprints/rki_cases/templates/rki/rki_imported.html
similarity index 52%
rename from src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_imported.html
rename to src/covid19/blueprints/rki_cases/templates/rki/rki_imported.html
index bbd484fe23cff799cbbfa83321cfc3285a235dfc..b3ffd15a12b3b7539ded4c303417c3f8a6f96bd1 100644
--- a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_imported.html
+++ b/src/covid19/blueprints/rki_cases/templates/rki/rki_imported.html
@@ -1,8 +1,8 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
-    {% include 'rki_bundeslaender/fragments/fragment_rki_bundeslaender_navtabs.html' %}
+    {% include 'rki/navigation/rki_navtabs.html' %}
 
     <div class="container">
         <div class="row">
@@ -13,7 +13,7 @@
                     {% if page_data.has_prev %}
                     <li class="page-item">
                         <a class="page-link"
-                           href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_imported', page=page_data.prev_num) }}">
+                           href="{{ url_for('rki.url_rki_imported', page=page_data.prev_num) }}">
                             Previous
                         </a>
                     </li>
@@ -24,7 +24,7 @@
                             {% if page_num != page_data.page %}
                                 <li class="page-item">
                                     <a class="page-link"
-                                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_imported', page=page_num) }}">
+                                       href="{{ url_for('rki.url_rki_imported', page=page_num) }}">
                                         {{ page_num }}
                                     </a>
                                 </li>
@@ -43,7 +43,7 @@
                     {% if page_data.has_next %}
                     <li class="page-item">
                         <a class="page-link"
-                           href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_imported', page=page_data.next_num) }}">
+                           href="{{ url_for('rki.url_rki_imported', page=page_data.next_num) }}">
                             Next
                         </a>
                     </li>
@@ -57,27 +57,37 @@
                 <table class="table table-hover table-striped">
                     <thead>
                         <tr>
-                            <th scope="col">date_reported</th>
-                            <th scope="col">country_code</th>
-                            <th scope="col">country</th>
-                            <th scope="col">who_region</th>
-                            <th scope="col">new_cases</th>
-                            <th scope="col">cumulative_cases</th>
-                            <th scope="col">new_deaths</th>
-                            <th scope="col">cumulative_deaths</th>
+                            <th scope="col">bundesland</th>
+                            <th scope="col">landkreis</th>
+                            <th scope="col">altersgruppe</th>
+                            <th scope="col">geschlecht</th>
+                            <th scope="col">anzahl fall</th>
+                            <th scope="col">anzahl todesfall</th>
+                            <th scope="col">meldedatum</th>
+                            <th scope="col">neuer fall</th>
+                            <th scope="col">neuer todesfall</th>
+                            <th scope="col">neu genesen</th>
+                            <th scope="col">anzahl genesen</th>
+                            <th scope="col">ist erkrankungsbeginn</th>
+                            <th scope="col">altersgruppe2</th>
                         </tr>
                     </thead>
                     <tbody>
                     {% for who_global_data_import in page_data.items %}
                         <tr>
-                            <td>{{ who_global_data_import.date_reported }}</td>
-                            <td>{{ who_global_data_import.country_code }}</td>
-                            <td>{{ who_global_data_import.country }}</td>
-                            <td>{{ who_global_data_import.who_region }}</td>
-                            <td>{{ who_global_data_import.new_cases }}</td>
-                            <td>{{ who_global_data_import.cumulative_cases }}</td>
-                            <td>{{ who_global_data_import.new_deaths }}</td>
-                            <td>{{ who_global_data_import.cumulative_deaths }}</td>
+                            <td>{{ who_global_data_import.bundesland }}</td>
+                            <td>{{ who_global_data_import.landkreis }}</td>
+                            <td>{{ who_global_data_import.altersgruppe }}</td>
+                            <td>{{ who_global_data_import.geschlecht }}</td>
+                            <td>{{ who_global_data_import.anzahl_fall }}</td>
+                            <td>{{ who_global_data_import.anzahl_todesfall }}</td>
+                            <td>{{ who_global_data_import.meldedatum }}</td>
+                            <td>{{ who_global_data_import.neuer_fall }}</td>
+                            <td>{{ who_global_data_import.neuer_todesfall }}</td>
+                            <td>{{ who_global_data_import.neu_genesen }}</td>
+                            <td>{{ who_global_data_import.anzahl_genesen }}</td>
+                            <td>{{ who_global_data_import.ist_erkrankungsbeginn }}</td>
+                            <td>{{ who_global_data_import.altersgruppe2 }}</td>
                         </tr>
                     {% endfor %}
                     </tbody>
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_info.html b/src/covid19/blueprints/rki_cases/templates/rki/rki_info.html
similarity index 92%
rename from src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_info.html
rename to src/covid19/blueprints/rki_cases/templates/rki/rki_info.html
index 1b666e09e0f577c97b77a884a66fdd354ea3edf4..0d204f21c316dfe72bb6a976bbb2193b264041db 100644
--- a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_info.html
+++ b/src/covid19/blueprints/rki_cases/templates/rki/rki_info.html
@@ -1,8 +1,8 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
-    {% include 'rki_bundeslaender/navigation/rki_bundeslaender_navtabs.html' %}
+    {% include 'rki/navigation/rki_navtabs.html' %}
 
     <div class="container">
         <div class="row">
diff --git a/src/covid19/blueprints/rki_cases/templates/rki/rki_tasks.html b/src/covid19/blueprints/rki_cases/templates/rki/rki_tasks.html
new file mode 100644
index 0000000000000000000000000000000000000000..a53093155022b13bbeae96eb1649179902950744
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases/templates/rki/rki_tasks.html
@@ -0,0 +1,90 @@
+{% extends 'app_all/layout/page_layout.html' %}
+
+{% block content %}
+    {{super()}}
+    {% include 'rki/navigation/rki_navtabs.html' %}
+
+    <div class="container">
+        <div class="row">
+            <div class="col">
+                <h2>RKI</h2>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for('rki_test.url_rki_test_tests') }}"
+                       role="button">RKI  :: TEST</a>
+                </div>
+            </div>
+            <div class="col">
+            </div>
+        </div>
+        <p></p>
+        <div class="row">
+            <div class="col">
+                <h4>Update Full</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_full_update_starschema') }}"
+                       role="button">RKI  :: Task :: update :: star_schema :: full</a>
+                </div>
+            </div>
+            <div class="col">
+                <h4>Update</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_update_starschema') }}"
+                       role="button">RKI  :: Task :: update :: star_schema</a>
+                </div>
+            </div>
+        </div>
+        <p></p>
+        <div class="row">
+            <div class="col">
+                <h4>Update Full</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-success btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_download') }}"
+                       role="button">RKI  :: Task :: download</a>
+                    <a class="btn btn-info btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_import') }}"
+                       role="button">RKI  :: Task :: import</a>
+                    <a class="btn btn-warning btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_full_update_dimensiontables') }}"
+                       role="button">RKI  :: Task :: update :: dimension-tables :: full</a>
+                    <a class="btn btn-secondary btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_full_update_facttable') }}"
+                       role="button">RKI  :: Task :: update :: fact-table :: full</a>
+                </div>
+            </div>
+            <div class="col">
+                <h4>Update</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-success btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_download') }}"
+                       role="button">RKI  :: Task :: download</a>
+                    <a class="btn btn-info btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_import') }}"
+                       role="button">RKI  :: Task :: import</a>
+                    <a class="btn btn-warning btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_update_dimensiontables') }}"
+                       role="button">RKI  :: Task :: update :: dimension-tables</a>
+                    <a class="btn btn-secondary btn-lg btn-block text-left"
+                       href="{{ url_for('rki.url_task_rki_update_facttable') }}"
+                       role="button">RKI  :: Task :: update :: fact-table</a>
+                </div>
+            </div>
+        </div>
+    </div>
+{% endblock %}
+
+
+
+{% block footer_container %}
+
+{% endblock %}
+
+
+
diff --git a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_test.html b/src/covid19/blueprints/rki_cases/templates/rki/rki_test.html
similarity index 87%
rename from src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_test.html
rename to src/covid19/blueprints/rki_cases/templates/rki/rki_test.html
index c87ce9cea521ed8f4500a3f717e45bf44fa71ef3..e9c117b6867a5a2ba9d6b0327428e94160e7bd3d 100644
--- a/src/covid19/blueprints/rki/rki_bundeslaender/templates/rki_bundeslaender/rki_bundeslaender_test.html
+++ b/src/covid19/blueprints/rki_cases/templates/rki/rki_test.html
@@ -1,8 +1,8 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
-    {% include 'rki_bundeslaender/navigation/rki_bundeslaender_navtabs.html' %}
+    {% include 'rki/navigation/rki_navtabs.html' %}
 
     <div class="container">
         <div class="row">
@@ -13,7 +13,7 @@
                     {% if page_data.has_prev %}
                     <li class="page-item">
                         <a class="page-link"
-                           href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_test', page=page_data.prev_num) }}">
+                           href="{{ url_for('rki.url_rki_test', page=page_data.prev_num) }}">
                             Previous
                         </a>
                     </li>
@@ -24,7 +24,7 @@
                             {% if page_num != page_data.page %}
                                 <li class="page-item">
                                     <a class="page-link"
-                                       href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_test', page=page_num) }}">
+                                       href="{{ url_for('rki.url_rki_test', page=page_num) }}">
                                         {{ page_num }}
                                     </a>
                                 </li>
@@ -43,7 +43,7 @@
                     {% if page_data.has_next %}
                     <li class="page-item">
                         <a class="page-link"
-                           href="{{ url_for('rki_bundeslaender.url_rki_bundeslaender_test', page=page_data.next_num) }}">
+                           href="{{ url_for('rki.url_rki_test', page=page_data.next_num) }}">
                             Next
                         </a>
                     </li>
diff --git a/src/mq/__init__.py b/src/covid19/blueprints/rki_cases_test/__init__.py
similarity index 100%
rename from src/mq/__init__.py
rename to src/covid19/blueprints/rki_cases_test/__init__.py
diff --git a/src/covid19/blueprints/rki_cases_test/rki_test_service.py b/src/covid19/blueprints/rki_cases_test/rki_test_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..9232940c7bde5b5120fce7b92f485c51a01f56ee
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases_test/rki_test_service.py
@@ -0,0 +1,107 @@
+from database import db, app
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.rki.rki_model import RkiData, RkiDateReported, RkiCountryRegion, RkiCountry
+from covid19.blueprints.rki.rki_model_import import RkiImport
+
+
+class RkiTestService:
+    def __init__(self, database, rki_service):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService [init]")
+        app.logger.debug("------------------------------------------------------------")
+        self.__database = database
+        self.__rki_service = rki_service
+        self.cfg = ApplicationServiceConfig.create_config_for_owid()
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.info(" RkiTestService [ready]")
+
+    def delete_last_day(self):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService.delete_last_day() [START]")
+        app.logger.debug("------------------------------------------------------------")
+        joungest_datum_str = RkiData.get_joungest_datum()
+        joungest_datum = RkiDateReported.find_by_date_reported(joungest_datum_str)
+        app.logger.info("joungest_datum:")
+        app.logger.info(joungest_datum)
+        app.logger.info("RkiData.get_data_for_one_day(joungest_datum):")
+        i = 0
+        for data in RkiData.get_data_for_one_day(joungest_datum):
+            i += 1
+            line = "Owid: to be deleted | " + str(i) + " | " + str(data.date_reported) + " | " + str(data.country) + " | "
+            app.logger.info(line)
+        app.logger.info("RkiData.delete_data_for_one_day(joungest_datum)")
+        RkiData.delete_data_for_one_day(joungest_datum)
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService.delete_last_day() [DONE]")
+        app.logger.debug("------------------------------------------------------------")
+
+    def delete_last_continent(self):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService.delete_last_continent() [START]")
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.info("OwidContinent.get_last_continent()")
+        last_continent = RkiCountryRegion.get_last_continent()
+        app.logger.info("last_continent:" + str(last_continent))
+        app.logger.info("OwidCountry.get_all_countries_for_continent(last_continent)")
+        countries_for_continent = RkiCountry.get_all_countries_for_continent(last_continent)
+        i = 0
+        for country in countries_for_continent:
+            for data in RkiData.get_all_data_for_country(country):
+                i += 1
+                line = "Owid: to be deleted | " + str(i) + " | " + str(data.date_reported) + " | " + str(data.country) + " | "
+                app.logger.info(line)
+            app.logger.info("RkiData.delete_all_data_for_country(country)")
+            RkiData.delete_all_data_for_country(country)
+        app.logger.info("RkiCountry.delete_all_countries_for_continent(last_continent)")
+        RkiCountry.delete_all_countries_for_continent(last_continent)
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService.delete_last_continent() [DONE]")
+        app.logger.debug("------------------------------------------------------------")
+
+    def run_update_star_schema_incremental(self):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService.run_update_star_schema_incremental() [START]")
+        app.logger.debug("------------------------------------------------------------")
+        self.__rki_service.run_update_star_schema_incremental()
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService.run_update_star_schema_incremental() [DONE]")
+        app.logger.debug("------------------------------------------------------------")
+
+    def full_update_dimension_tables(self):
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService.full_update_dimension_tables() [START]")
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug("")
+        RkiData.remove_all()
+        RkiCountry.remove_all()
+        for continent in RkiCountryRegion.get_all():
+            app.logger.info("continent.region: " + continent.region)
+            for oi in RkiImport.get_countries_for_continent(continent.region):
+                app.logger.info("continent.region: " + continent.region +" - oi.location: " + oi.location)
+                o = RkiCountry(
+                    continent_id=continent.id,
+                    continent=continent,
+                    location=oi.location,
+                    iso_code=oi.iso_code,
+                    population=oi.population,
+                    population_density=oi.population_density,
+                    median_age=oi.median_age,
+                    aged_65_older=oi.aged_65_older,
+                    aged_70_older=oi.aged_70_older,
+                    gdp_per_capita=oi.gdp_per_capita,
+                    extreme_poverty=oi.extreme_poverty,
+                    cardiovasc_death_rate=oi.cardiovasc_death_rate,
+                    diabetes_prevalence=oi.diabetes_prevalence,
+                    female_smokers=oi.female_smokers,
+                    male_smokers=oi.male_smokers,
+                    handwashing_facilities=oi.handwashing_facilities,
+                    hospital_beds_per_thousand=oi.hospital_beds_per_thousand,
+                    life_expectancy=oi.life_expectancy,
+                    human_development_index=oi.human_development_index
+                )
+                db.session.add(o)
+        db.session.commit()
+        app.logger.debug("")
+        app.logger.debug("------------------------------------------------------------")
+        app.logger.debug(" RkiTestService.full_update_dimension_tables() [DONE]")
+        app.logger.debug("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/rki_cases_test/rki_test_views.py b/src/covid19/blueprints/rki_cases_test/rki_test_views.py
new file mode 100644
index 0000000000000000000000000000000000000000..5ce409c5f7b4f3fcc744a8afdd8c733a891baad8
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases_test/rki_test_views.py
@@ -0,0 +1,221 @@
+from flask import render_template, redirect, url_for, flash, Blueprint
+from celery import states
+from celery.utils.log import get_task_logger
+from flask_login import login_required
+
+from database import app, db
+
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.rki_cases.rki_model import RkiData
+from covid19.blueprints.rki_cases.rki_model_import import RkiImport
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
+
+from covid19.blueprints.owid_test.owid_test_service import OwidTestService
+
+rki_test_service = OwidTestService(db, rki_service)
+
+app_rki_test = Blueprint('rki_test', __name__, template_folder='templates', url_prefix='/rki/test')
+
+# ---------------------------------------------------------------------------------------------------------------
+#  Url Routes Frontend
+# ---------------------------------------------------------------------------------------------------------------
+
+
+@app_rki_test.route('/tests')
+@login_required
+def url_rki_test_tests():
+    app.logger.info("url_rki_test_tests - START")
+    page_info = ApplicationPage('RKI', "Tests")
+    return render_template(
+        'rki_test/rki_tests.html',
+        page_info=page_info)
+
+
+@app_rki_test.route('/full_update_dimension_tables')
+@login_required
+def url_rki_test_full_update_dimension_tables():
+    app.logger.info("url_rki_test_full_update_dimension_tables - START")
+    flash("url_rki_test_full_update_dimension_tables - START")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/update_dimension_tables')
+@login_required
+def url_rki_test_update_dimension_tables():
+    app.logger.info("url_rki_test_update_dimension_tables - START")
+    flash("url_rki_test_update_dimension_tables - START")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/full_update_fact_table')
+@login_required
+def url_rki_test_full_update_fact_table():
+    app.logger.info("url_rki_test_full_update_fact_table - START")
+    flash("url_rki_test_full_update_fact_table - START")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/update_fact_table')
+@login_required
+def url_rki_test_update_fact_table():
+    app.logger.info("url_rki_test_update_fact_table - START")
+    flash("url_rki_test_update_fact_table - START")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/full_update_star_schema')
+@login_required
+def url_rki_test_full_update_star_schema():
+    app.logger.info("url_rki_test_full_update_star_schema - START")
+    flash("url_rki_test_full_update_star_schema - START")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/update_star_schema')
+@login_required
+def url_rki_test_update_star_schema():
+    app.logger.info("url_rki_test_update_star_schema - START")
+    flash("url_rki_test_update_star_schema - START")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/rki_import/countries')
+@login_required
+def url_rki_test_rki_import_countries():
+    app.logger.info("url_rki_test_rki_import_countries - START")
+    flash("url_rki_test_rki_import_countries - START")
+    i = 0
+    for c in RkiImport.countries():
+        i += 1
+        line = " | " + str(i) + " | " + c.countries.iso_code + " | " + c.countries.location + " | " + c.countries.continent + " | "
+        app.logger.info(line)
+    app.logger.info("url_rki_test_rki_import_countries - DONE")
+    flash("url_rki_test_rki_import_countries - DONE")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/rki_import/get_new_dates_reported_as_array')
+@login_required
+def url_rki_test_rki_import_get_new_dates_reported_as_array():
+    app.logger.info("url_rki_test_rki_import_get_new_dates_reported_as_array - START")
+    flash("url_rki_test_rki_import_get_new_dates_reported_as_array - START")
+    i = 0
+    for date_reported in RkiImport.get_new_dates_reported_as_array():
+        i += 1
+        line = " | " + str(i) + " | " + date_reported + " | "
+        app.logger.info(line)
+    app.logger.info("url_rki_test_rki_import_get_new_dates_reported_as_array - DONE")
+    flash("url_rki_test_rki_import_get_new_dates_reported_as_array - DONE")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/rki_data/get_datum_of_all_data')
+@login_required
+def url_rki_test_rki_data_get_datum_of_all_data():
+    app.logger.info("url_rki_test_rki_data_get_datum_of_all_data - START")
+    flash("url_rki_test_rki_data_get_datum_of_all_data - START")
+    for datum in RkiData.get_datum_of_all_data():
+        app.logger.info(str(datum))
+    app.logger.info("url_rki_test_rki_data_get_datum_of_all_data - DONE")
+    flash("url_rki_test_rki_data_get_datum_of_all_data - DONE")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/rki_import/get_datum_of_all_import')
+@login_required
+def url_rki_test_rki_import_get_datum_of_all_import():
+    app.logger.info("url_rki_test_rki_import_get_datum_of_all_import - START")
+    flash("url_rki_test_rki_import_get_datum_of_all_import - START")
+    for datum in RkiImport.get_datum_of_all_import():
+        app.logger.info(str(datum))
+    app.logger.info("url_rki_test_rki_import_get_datum_of_all_import - DONE")
+    flash("url_rki_test_rki_import_get_datum_of_all_import - DONE")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/rki_service/service_update/rki_import_get_new_dates_as_array')
+@login_required
+def url_rki_test_rki_service_service_update_rki_import_get_new_dates_as_array():
+    app.logger.info("url_rki_test_rki_service_service_update_rki_import_get_new_dates_as_array - START")
+    flash("url_rki_test_rki_service_service_update_rki_import_get_new_dates_as_array - START")
+    for datum in rki_service.service_update.rki_import_get_new_dates_as_array():
+        app.logger.info(str(datum))
+    app.logger.info("url_rki_test_rki_service_service_update_rki_import_get_new_dates_as_array - DONE")
+    flash("url_rki_test_rki_service_service_update_rki_import_get_new_dates_as_array - DONE")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/rki_test_service/delete_last_day')
+@login_required
+def url_rki_test_rki_test_service_delete_last_day():
+    app.logger.info("url_rki_test_rki_test_service_delete_last_day - START: rki_test_service.delete_last_day()")
+    flash("url_rki_test_rki_test_service_delete_last_day - START: rki_test_service.delete_last_day()")
+    rki_test_service.delete_last_day()
+    app.logger.info("url_rki_test_rki_test_service_delete_last_day - DONE: rki_test_service.delete_last_day()")
+    flash("url_rki_test_rki_test_service_delete_last_day - DONE: rki_test_service.delete_last_day()")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/rki_test_service/delete_last_continent')
+@login_required
+def url_rki_test_rki_test_service_delete_last_continent():
+    app.logger.info("url_rki_test_rki_test_service_delete_last_continent - START: rki_test_service.delete_last_continent()")
+    flash("url_rki_test_rki_test_service_delete_last_continent - START: rki_test_service.delete_last_continent()")
+    rki_test_service.delete_last_continent()
+    flash("url_rki_test_rki_test_service_delete_last_continent - DONE: rki_test_service.delete_last_continent()")
+    app.logger.info("url_rki_test_rki_test_service_delete_last_continent - DONE: rki_test_service.delete_last_continent()")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+@app_rki_test.route('/rki_test_service/full_update_dimension_tables')
+@login_required
+def url_rki_test_rki_test_service_full_update_dimension_tables():
+    app.logger.info("url_rki_test_rki_test_service_full_update_dimension_tables - START: rki_test_service.full_update_dimension_tables()")
+    flash("url_rki_test_rki_test_service_full_update_dimension_tables - START: rki_test_service.full_update_dimension_tables()")
+    rki_test_service.full_update_dimension_tables()
+    app.logger.info("url_rki_test_rki_test_service_full_update_dimension_tables - DONE: rki_test_service.full_update_dimension_tables()")
+    flash("url_rki_test_rki_test_service_full_update_dimension_tables - DONE: rki_test_service.full_update_dimension_tables()")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+# ----------------------------------------------------------------------------------------------------------------
+#  Celery TASKS
+# ----------------------------------------------------------------------------------------------------------------
+
+
+@celery.task(bind=True)
+def task_rki_test_update_star_schema(self):
+    logger = get_task_logger(__name__)
+    self.update_state(state=states.STARTED)
+    logger.info("------------------------------------------------------------")
+    logger.info(" Received: task_rki_test_update_star_schema [OK] ")
+    logger.info("------------------------------------------------------------")
+    rki_test_service.run_update_star_schema_incremental()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (task_rki_test_update_star_schema)"
+    return result
+
+
+# ----------------------------------------------------------------------------------------------------------------
+#  URL Routes for Celery TASKS
+# ----------------------------------------------------------------------------------------------------------------
+
+@app_rki_test.route('/task/owid_test/update_star_schema_incremental')
+@login_required
+def url_task_rki_test_update_star_schema():
+    app.logger.info("url_task_rki_test_update_star_schema - START: task_rki_test_update_star_schema.apply_async()")
+    flash("url_task_rki_test_update_star_schema - START: task_rki_test_update_star_schema.apply_async()")
+    task_rki_test_update_star_schema.apply_async()
+    flash("url_task_rki_test_update_star_schema - DONE: task_rki_test_update_star_schema.apply_async()")
+    app.logger.info("url_task_rki_test_update_star_schema - DONE: task_rki_test_update_star_schema.apply_async()")
+    return redirect(url_for('owid_test.url_rki_test_tests'))
+
+
+
+
+
+
diff --git a/src/web/__init__.py b/src/covid19/blueprints/rki_cases_test/templates/__init__.py
similarity index 100%
rename from src/web/__init__.py
rename to src/covid19/blueprints/rki_cases_test/templates/__init__.py
diff --git a/src/covid19/blueprints/rki_cases_test/templates/rki_test/rki_tests.html b/src/covid19/blueprints/rki_cases_test/templates/rki_test/rki_tests.html
new file mode 100644
index 0000000000000000000000000000000000000000..95e8350cdc012009e8d7b80ef16a0be9d520cf43
--- /dev/null
+++ b/src/covid19/blueprints/rki_cases_test/templates/rki_test/rki_tests.html
@@ -0,0 +1,126 @@
+{% extends 'app_all/layout/page_layout.html' %}
+
+{% block content %}
+    {{super()}}
+     {% include 'owid/navigation/owid_navtabs.html' %}
+
+    <div class="container">
+        <p>
+            <h2>RKI</h2>
+        </p>
+        <div class="row">
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki.url_rki_tasks') }}"
+                       role="button">RKI :: Tasks</a>
+                </div>
+            </div>
+        </div>
+        <p>
+            <h4>RKI Tests</h4>
+        </p>
+        <div class="row">
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_task_rki_test_update_star_schema') }}"
+                       role="button">url_task_rki_test update_star_schema</a>
+                </div>
+            </div>
+            <div class="col">
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_rki_test_service_full_update_dimension_tables') }}"
+                       role="button">url_rki_test rki_test_service full_update_dimension_tables</a>
+                </div>
+            </div>
+        </div>
+        <p></p>
+        <div class="row">
+            <div class="col">
+                <p>
+                    <h4>Prepare Test Data</h4>
+                </p>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_rki_test_service_delete_last_day') }}"
+                       role="button">url_rki_test rki_test_service delete_last_day</a>
+                </div>
+                <p>&nbsp;</p>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_rki_test_service_delete_last_continent') }}"
+                       role="button">url_rki_test_rki test_service delete_last_continent</a>
+                </div>
+            </div>
+            <div class="col">
+                <p><h4>countries</h4></p>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_rki_import_countries') }}"
+                       role="button">url_rki_test rki_import countries</a>
+                </div>
+                <p><h4>dates_reported</h4></p>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_rki_import_get_new_dates_reported_as_array') }}"
+                       role="button">url_rki_test rki_import get_new_dates_reported_as_array</a>
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_rki_data_get_datum_of_all_data') }}"
+                       role="button">url_rki_test rki_data get_datum_of_all_data</a>
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_rki_import_get_datum_of_all_import') }}"
+                       role="button">url_rki_test rki_import get_datum_of_all_import</a>
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_rki_service_service_update_rki_import_get_new_dates_as_array') }}"
+                       role="button">url_rki_test rki_service service_update rki_import_get_new_dates_as_array</a>
+                </div>
+            </div>
+        </div>
+        <p></p>
+        <div class="row">
+            <div class="col">
+                <p>
+                    <h4>Full Update</h4>
+                </p>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_full_update_dimension_tables') }}"
+                       role="button">url_rki_test full_update_dimension_tables</a>
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_full_update_fact_table') }}"
+                       role="button">url_rki_test full_update_fact_table</a>
+                    <a class="btn btn-secondary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_full_update_star_schema') }}"
+                       role="button">url_rki_test full_update_star_schema</a>
+                </div>
+            </div>
+            <div class="col">
+                <p>
+                    <h4>Update</h4>
+                </p>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_update_dimension_tables') }}"
+                       role="button">url_rki_test update_dimension_tables</a>
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_update_fact_table') }}"
+                       role="button">url_rki_test update_fact_table</a>
+                    <a class="btn btn-secondary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_test.url_rki_test_update_star_schema') }}"
+                       role="button">url_rki_test update_star_schema</a>
+                </div>
+            </div>
+        </div>
+    </div>
+{% endblock %}
+
+
+
+{% block footer_container %}
+
+{% endblock %}
+
+
+
diff --git a/src/covid19/blueprints/rki_vaccination/__init__.py b/src/covid19/blueprints/rki_vaccination/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_model.py b/src/covid19/blueprints/rki_vaccination/rki_vaccination_model.py
similarity index 97%
rename from src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_model.py
rename to src/covid19/blueprints/rki_vaccination/rki_vaccination_model.py
index b68f57bcb414616b6aa17e3b87d965bcb640c48b..873bd31e69756bc49bed6dbb43ebf9a0aafa9639 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_model.py
+++ b/src/covid19/blueprints/rki_vaccination/rki_vaccination_model.py
@@ -1,7 +1,7 @@
 from datetime import date
 
 from database import db, ITEMS_PER_PAGE
-from covid19.blueprints.application.application_model import ApplicationDateReported
+from covid19.blueprints.app_all.all_model import ApplicationDateReported, ApplicationRegion
 
 
 class RkiVaccinationDateReported(ApplicationDateReported):
diff --git a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_model_import.py b/src/covid19/blueprints/rki_vaccination/rki_vaccination_model_import.py
similarity index 91%
rename from src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_model_import.py
rename to src/covid19/blueprints/rki_vaccination/rki_vaccination_model_import.py
index 47ac63bf9b132d298e5e941af40effe6b67eb073..5b7de89a0e9845986ad8e788cee54b52f62f97db 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_model_import.py
+++ b/src/covid19/blueprints/rki_vaccination/rki_vaccination_model_import.py
@@ -5,7 +5,6 @@ class RkiVaccinationImport(db.Model):
     __tablename__ = 'application__import__rki_vaccination'
 
     id = db.Column(db.Integer, primary_key=True)
-    datum = db.Column(db.String(255), nullable=False)
     dosen_kumulativ = db.Column(db.Integer, nullable=False)
     dosen_differenz_zum_vortag = db.Column(db.Integer, nullable=False)
     dosen_biontech_kumulativ = db.Column(db.Integer, nullable=False)
@@ -26,6 +25,14 @@ class RkiVaccinationImport(db.Model):
     indikation_beruf_voll = db.Column(db.Integer, nullable=False)
     indikation_medizinisch_voll = db.Column(db.Integer, nullable=False)
     indikation_pflegeheim_voll = db.Column(db.Integer, nullable=False)
+    date_reported = db.Column(db.String(255), nullable=False)
+    datum = db.Column(db.Date, nullable=False)
+    year = db.Column(db.Integer, nullable=False)
+    month = db.Column(db.Integer, nullable=False)
+    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)
+    year_week = db.Column(db.String(255), nullable=False)
 
     @classmethod
     def remove_all(cls):
diff --git a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service.py b/src/covid19/blueprints/rki_vaccination/rki_vaccination_service.py
similarity index 59%
rename from src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service.py
rename to src/covid19/blueprints/rki_vaccination/rki_vaccination_service.py
index 72dd2f67d381390dfaa8f4b2534e4285427899d3..eef5fb52a6fa875e249be257816da71b5b8f28c6 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service.py
+++ b/src/covid19/blueprints/rki_vaccination/rki_vaccination_service.py
@@ -1,10 +1,10 @@
 from flask import flash
 
 from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_service_download import ApplicationServiceDownload
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_service_import import RkiVaccinationServiceImport
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_service_update import RkiVaccinationServiceUpdate
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_download import ApplicationServiceDownload
+from covid19.blueprints.rki_vaccination.rki_vaccination_service_import import RkiVaccinationServiceImport
+from covid19.blueprints.rki_vaccination.rki_vaccination_service_update import RkiVaccinationServiceUpdate, RkiVaccinationServiceUpdateFull
 
 
 class RkiVaccinationService:
@@ -17,6 +17,7 @@ class RkiVaccinationService:
         self.service_download = ApplicationServiceDownload(database, self.cfg)
         self.service_import = RkiVaccinationServiceImport(database, self.cfg)
         self.service_update = RkiVaccinationServiceUpdate(database, self.cfg)
+        self.service_update_full = RkiVaccinationServiceUpdateFull(database, self.cfg)
         app.logger.debug("------------------------------------------------------------")
         app.logger.info(" Vaccination Service [ready]")
 
@@ -35,51 +36,63 @@ class RkiVaccinationService:
         app.logger.info("vaccination_service.task_database_drop_create done")
         return self
 
-    def run_download_only(self):
+    def run_download(self):
         self.service_download.download_file()
         return self
 
-    def run_import_only(self):
+    def run_import(self):
         self.service_import.import_file()
         return self
 
-    def run_update_dimension_tables_only(self):
+    def run_full_update_dimension_tables(self):
+        self.service_update_full.update_dimension_tables_only()
+        return self
+
+    def run_update_dimension_tables(self):
         self.service_update.update_dimension_tables_only()
         return self
 
-    def run_update_fact_table_incremental_only(self):
+    def run_update_fact_table(self):
         self.service_update.update_fact_table_incremental_only()
         return self
 
-    def run_update_fact_table_initial_only(self):
-        self.service_update.update_fact_table_initial_only()
+    def run_full_update_fact_table(self):
+        self.service_update_full.update_fact_table_initial_only()
         return self
 
-    def run_update_star_schema_incremental(self):
+    def task_admin_update_star_schema(self):
         self.service_update.update_star_schema_incremental()
         return self
 
-    def run_update_star_schema_initial(self):
-        self.run_import_only()
-        self.service_update.update_star_schema_initial()
+    def task_admin_full_update_star_schema(self):
+        self.run_import()
+        self.service_update_full.update_star_schema_initial()
         return self
 
     def download_all_files(self):
         self.service_download.download_file()
         return self
 
-    def task_import_all_files(self):
+    def task_admin_import_all_files(self):
         self.service_import.import_file()
         return self
 
-    def update_dimension_tables_only(self):
+    def task_admin_update_full_dimension_tables(self):
+        self.service_update_full.update_dimension_tables_only()
+        return self
+
+    def task_admin_update_dimension_tables(self):
+        self.service_update.update_dimension_tables_only()
+        return self
+
+    def update_dimension_tables(self):
         self.service_update.update_dimension_tables_only()
         return self
 
-    def update_fact_table_initial_only(self):
-        self.service_update.update_fact_table_initial_only()
+    def full_update_fact_table(self):
+        self.service_update_full.update_fact_table_initial_only()
         return self
 
-    def update_fact_table_incremental_only(self):
+    def update_fact_table(self):
         self.service_update.update_fact_table_incremental_only()
         return self
diff --git a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service_import.py b/src/covid19/blueprints/rki_vaccination/rki_vaccination_service_import.py
similarity index 84%
rename from src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service_import.py
rename to src/covid19/blueprints/rki_vaccination/rki_vaccination_service_import.py
index 06faaed67b4a97e4f6233bd1ada8fe26b7d05d5b..44966df6b047df51763b900546b16d37027d49b1 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service_import.py
+++ b/src/covid19/blueprints/rki_vaccination/rki_vaccination_service_import.py
@@ -2,8 +2,10 @@ import csv
 import psycopg2
 
 from database import db, app
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_model_import import RkiVaccinationImport
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+
+from covid19.blueprints.rki_vaccination.rki_vaccination_model import RkiVaccinationDateReported
+from covid19.blueprints.rki_vaccination.rki_vaccination_model_import import RkiVaccinationImport
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 
 
 class RkiVaccinationServiceImport:
@@ -34,8 +36,9 @@ class RkiVaccinationServiceImport:
             with open(src_cvsfile_name, newline='\n') as csv_file:
                 file_reader = csv.DictReader(csv_file, delimiter='\t', quotechar='"')
                 for row in file_reader:
+                    date_reported = row['date']
+                    d = RkiVaccinationDateReported.create_new_object_factory(my_date_rep=date_reported)
                     o = RkiVaccinationImport(
-                        datum=row['date'],
                         dosen_kumulativ=self.__int(row['dosen_kumulativ']),
                         dosen_differenz_zum_vortag=self.__int(row['dosen_differenz_zum_vortag']),
                         dosen_biontech_kumulativ=self.__int(row['dosen_biontech_kumulativ']),
@@ -55,7 +58,15 @@ class RkiVaccinationServiceImport:
                         indikation_alter_voll=self.__int(row['indikation_alter_voll']),
                         indikation_beruf_voll=self.__int(row['indikation_beruf_voll']),
                         indikation_medizinisch_voll=self.__int(row['indikation_medizinisch_voll']),
-                        indikation_pflegeheim_voll=self.__int(row['indikation_pflegeheim_voll'])
+                        indikation_pflegeheim_voll=self.__int(row['indikation_pflegeheim_voll']),
+                        date_reported=date_reported,
+                        datum=d.datum,
+                        year=d.year,
+                        month=d.month,
+                        day_of_month=d.day_of_month,
+                        day_of_week=d.day_of_week,
+                        week_of_year=d.day_of_week,
+                        year_week=d.year_week
                     )
                     db.session.add(o)
                     k += 1
diff --git a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service_update.py b/src/covid19/blueprints/rki_vaccination/rki_vaccination_service_update.py
similarity index 50%
rename from src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service_update.py
rename to src/covid19/blueprints/rki_vaccination/rki_vaccination_service_update.py
index d1d382cdf46138255f3c3cabbfe7769269d6b304..407c81bbf6239149dfe4f36802394eff2b623bed 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_service_update.py
+++ b/src/covid19/blueprints/rki_vaccination/rki_vaccination_service_update.py
@@ -1,11 +1,10 @@
 from database import db, app
 
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_model_import import RkiVaccinationImport
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_model import RkiVaccinationDateReported, RkiVaccinationData
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.rki_vaccination.rki_vaccination_model_import import RkiVaccinationImport
+from covid19.blueprints.rki_vaccination.rki_vaccination_model import RkiVaccinationDateReported, RkiVaccinationData
 
-
-class RkiVaccinationServiceUpdate:
+class RkiVaccinationServiceUpdateBase:
     def __init__(self, database, config: ApplicationServiceConfig):
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" Europe Service Update [init]")
@@ -15,6 +14,151 @@ class RkiVaccinationServiceUpdate:
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" Europe Service Update [ready] ")
 
+
+class RkiVaccinationServiceUpdateFull(RkiVaccinationServiceUpdateBase):
+
+    def __update_date_reported(self):
+        app.logger.info(" __update_date_reported [begin]")
+        app.logger.info("------------------------------------------------------------")
+        RkiVaccinationData.remove_all()
+        RkiVaccinationDateReported.remove_all()
+        date_reported_list = RkiVaccinationImport.get_date_reported_as_array()
+        i = 0
+        for one_date_reported in date_reported_list:
+            i += 1
+            output = " [ " + str(i) + " ] " + one_date_reported + " added"
+            o = RkiVaccinationDateReported.create_new_object_factory(one_date_reported)
+            db.session.add(o)
+            app.logger.info(output)
+        db.session.commit()
+        app.logger.info(" __update_date_reported [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
+    def __update_fact_table_initial(self):
+        app.logger.info(" __update_data_initial [begin]")
+        app.logger.info("------------------------------------------------------------")
+        RkiVaccinationData.remove_all()
+        result_date_rep = RkiVaccinationImport.get_date_rep()
+        i = 0
+        for item_date_rep, in result_date_rep:
+            date_reported = RkiVaccinationDateReported.find_by_date_reported(
+                p_date_reported=item_date_rep
+            )
+            if date_reported is None:
+                o = RkiVaccinationDateReported.create_new_object_factory(my_date_rep=item_date_rep)
+                date_reported = o
+            result_data_import = RkiVaccinationImport.find_by_datum(date_reported.date_reported_import_str)
+            for item_import in result_data_import:
+                o = RkiVaccinationData(
+                    date_reported=date_reported,
+                    dosen_kumulativ=item_import.dosen_kumulativ,
+                    dosen_differenz_zum_vortag=item_import.dosen_differenz_zum_vortag,
+                    dosen_biontech_kumulativ=item_import.dosen_biontech_kumulativ,
+                    dosen_moderna_kumulativ=item_import.dosen_moderna_kumulativ,
+                    personen_erst_kumulativ=item_import.personen_erst_kumulativ,
+                    personen_voll_kumulativ=item_import.personen_voll_kumulativ,
+                    impf_quote_erst=item_import.impf_quote_erst,
+                    impf_quote_voll=item_import.impf_quote_voll,
+                    indikation_alter_dosen=item_import.indikation_alter_dosen,
+                    indikation_beruf_dosen=item_import.indikation_beruf_dosen,
+                    indikation_medizinisch_dosen=item_import.indikation_medizinisch_dosen,
+                    indikation_pflegeheim_dosen=item_import.indikation_pflegeheim_dosen,
+                    indikation_alter_erst=item_import.indikation_alter_erst,
+                    indikation_beruf_erst=item_import.indikation_beruf_erst,
+                    indikation_medizinisch_erst=item_import.indikation_medizinisch_erst,
+                    indikation_pflegeheim_erst=item_import.indikation_pflegeheim_erst,
+                    indikation_alter_voll=item_import.indikation_alter_voll,
+                    indikation_beruf_voll=item_import.indikation_beruf_voll,
+                    indikation_medizinisch_voll=item_import.indikation_medizinisch_voll,
+                    indikation_pflegeheim_voll=item_import.indikation_pflegeheim_voll
+                )
+                db.session.add(o)
+                i += 1
+                if i % 500 == 0:
+                    app.logger.info(" update Vaccination initial ... " + str(i) + " rows")
+                    db.session.commit()
+        db.session.commit()
+        app.logger.info(" update Vaccination initial ... " + str(i) + " rows total")
+        app.logger.info(" __update_data_initial [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
+    def __update_fact_table_incremental(self):
+        app.logger.info(" __update_fact_table_incremental Vaccination [begin]")
+        app.logger.info("------------------------------------------------------------")
+        result_date_rep = RkiVaccinationImport.get_daterep_missing_in_vaccination_data()
+        i = 0
+        for item_date_rep in result_date_rep:
+            date_reported = RkiVaccinationDateReported.find_by_date_reported(item_date_rep)
+            #date_reported = RkiVaccinationDateReported.create_new_object_factory(item_date_rep)
+            result_data_import = RkiVaccinationImport.find_by_datum(item_date_rep)
+            for item_data_import in result_data_import:
+                o = RkiVaccinationData(
+                    date_reported=date_reported,
+                    dosen_kumulativ=item_data_import.dosen_kumulativ,
+                    dosen_differenz_zum_vortag=item_data_import.dosen_differenz_zum_vortag,
+                    dosen_biontech_kumulativ=item_data_import.dosen_biontech_kumulativ,
+                    dosen_moderna_kumulativ=item_data_import.dosen_moderna_kumulativ,
+                    personen_erst_kumulativ=item_data_import.personen_erst_kumulativ,
+                    personen_voll_kumulativ=item_data_import.personen_voll_kumulativ,
+                    impf_quote_erst=item_data_import.impf_quote_erst,
+                    impf_quote_voll=item_data_import.impf_quote_voll,
+                    indikation_alter_dosen=item_data_import.indikation_alter_dosen,
+                    indikation_beruf_dosen=item_data_import.indikation_beruf_dosen,
+                    indikation_medizinisch_dosen=item_data_import.indikation_medizinisch_dosen,
+                    indikation_pflegeheim_dosen=item_data_import.indikation_pflegeheim_dosen,
+                    indikation_alter_erst=item_data_import.indikation_alter_erst,
+                    indikation_beruf_erst=item_data_import.indikation_beruf_erst,
+                    indikation_medizinisch_erst=item_data_import.indikation_medizinisch_erst,
+                    indikation_pflegeheim_erst=item_data_import.indikation_pflegeheim_erst,
+                    indikation_alter_voll=item_data_import.indikation_alter_voll,
+                    indikation_beruf_voll=item_data_import.indikation_beruf_voll,
+                    indikation_medizinisch_voll=item_data_import.indikation_medizinisch_voll,
+                    indikation_pflegeheim_voll=item_data_import.indikation_pflegeheim_voll
+                )
+                db.session.add(o)
+                i += 1
+                if i % 500 == 0:
+                    app.logger.info(" update Vaccination incremental ... " + str(i) + " rows")
+                    db.session.commit()
+        db.session.commit()
+        app.logger.info(" update Vaccination incremental ... " + str(i) + " rows total")
+        app.logger.info(" __update_fact_table_incremental Vaccination [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
+    def __update_dimension_table_date_reported(self):
+        self.__update_date_reported()
+        return self
+
+    def update_dimension_tables_only(self):
+        self.__update_dimension_table_date_reported()
+        return self
+
+    def update_fact_table_incremental_only(self):
+        self.__update_fact_table_incremental()
+        return self
+
+    def update_fact_table_initial_only(self):
+        self.__update_fact_table_initial()
+        return self
+
+    def update_star_schema_incremental(self):
+        self.__update_dimension_table_date_reported()
+        self.__update_fact_table_incremental()
+        return self
+
+    def update_star_schema_initial(self):
+        RkiVaccinationData.remove_all()
+        RkiVaccinationDateReported.remove_all()
+        self.__update_dimension_table_date_reported()
+        self.__update_fact_table_initial()
+        return self
+
+
+class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase):
+
     def __update_date_reported(self):
         app.logger.info(" __update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_views.py b/src/covid19/blueprints/rki_vaccination/rki_vaccination_views.py
similarity index 72%
rename from src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_views.py
rename to src/covid19/blueprints/rki_vaccination/rki_vaccination_views.py
index 7b684f587cdd5d73516cedfb25911554861c10f9..f168bfb6dbe368d93e8904f297566cab5321ca76 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/rki_vaccination_views.py
+++ b/src/covid19/blueprints/rki_vaccination/rki_vaccination_views.py
@@ -4,12 +4,15 @@ from celery.utils.log import get_task_logger
 from flask_admin.contrib.sqla import ModelView
 
 from database import admin, db
-from covid19.blueprints.application.application_services import rki_vaccination_service
-from covid19.blueprints.application.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service, owid_service
+from covid19.blueprints.app_all.all_services import rki_service, rki_vaccination_service
+from covid19.blueprints.app_all.all_services import ecdc_service, divi_service
+from covid19.blueprints.app_all.all_services import app_admin_service, app_user_service
+from covid19.blueprints.app_mq.application_workers import celery
 
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_model import RkiVaccinationData, RkiVaccinationDateReported
-from covid19.blueprints.rki.rki_vaccination.rki_vaccination_model_import import RkiVaccinationImport
-from covid19.blueprints.application.application_model_transient import ApplicationPage
+from covid19.blueprints.rki_vaccination.rki_vaccination_model import RkiVaccinationData, RkiVaccinationDateReported
+from covid19.blueprints.rki_vaccination.rki_vaccination_model_import import RkiVaccinationImport
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 
 
 app_rki_vaccination = Blueprint('rki_vaccination', __name__, template_folder='templates', url_prefix='/rki/vaccination')
@@ -67,72 +70,71 @@ def url_vaccination_data(page=1):
 
 
 @celery.task(bind=True)
-def task_vaccination_download_only(self):
+def task_vaccination_import(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_europe_download_only [OK] ")
+    logger.info(" Received: task_europe_import_only [OK] ")
     logger.info("------------------------------------------------------------")
-    rki_vaccination_service.run_download_only()
+    rki_vaccination_service.run_import()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_europe_download_only)"
+    result = "OK (task_europe_import_only)"
     return result
 
 
 @celery.task(bind=True)
-def task_vaccination_import_only(self):
+def task_vaccination_full_update_dimension_tables(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_europe_import_only [OK] ")
+    logger.info(" Received: task_vaccination_full_update_dimension_tables [OK] ")
     logger.info("------------------------------------------------------------")
-    rki_vaccination_service.run_import_only()
+    rki_vaccination_service.run_full_update_dimension_tables()
     self.update_state(state=states.SUCCESS)
-    result = "OK (task_europe_import_only)"
+    result = "OK (task_vaccination_full_update_dimension_tables)"
     return result
 
-
 @celery.task(bind=True)
-def task_vaccination_update_dimension_tables_only(self):
+def task_vaccination_update_dimension_tables(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_dimension_tables_only [OK] ")
     logger.info("------------------------------------------------------------")
-    rki_vaccination_service.run_update_dimension_tables_only()
+    rki_vaccination_service.run_update_dimension_tables()
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_dimension_tables_only)"
     return result
 
 
 @celery.task(bind=True)
-def task_vaccination_update_facttable_incremental_only(self):
+def task_vaccination_update_facttable(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_fact_table_incremental_only [OK] ")
     logger.info("------------------------------------------------------------")
-    rki_vaccination_service.run_update_fact_table_incremental_only()
+    rki_vaccination_service.run_update_fact_table()
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_fact_table_incremental_only)"
     return result
 
 
 @celery.task(bind=True)
-def task_vaccination_update_facttable_initial_only(self):
+def task_vaccination_full_update_facttable(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_fact_table_initial_only [OK] ")
     logger.info("------------------------------------------------------------")
-    rki_vaccination_service.run_update_fact_table_initial_only()
+    rki_vaccination_service.run_full_update_fact_table()
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_fact_table_initial_only)"
     return result
 
 
 @celery.task(bind=True)
-def task_vaccination_update_starschema_incremental(self):
+def task_vaccination_update_starschema(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
@@ -145,7 +147,7 @@ def task_vaccination_update_starschema_incremental(self):
 
 
 @celery.task(bind=True)
-def task_vaccination_task_update_starschema_initial(self):
+def task_vaccination_full_update_starschema(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
@@ -162,52 +164,59 @@ def task_vaccination_task_update_starschema_initial(self):
 # ----------------------------------------------------------------------------------------------------------------
 
 
-@app_rki_vaccination.route('/task/download/only')
-def url_vaccination_task_download_only():
+@app_rki_vaccination.route('/task/download')
+def url_task_vaccination_download():
     flash("url_vaccination_task_download_only started")
-    rki_vaccination_service.run_download_only()
+    rki_vaccination_service.run_download()
     return redirect(url_for('rki_vaccination.url_vaccination_tasks'))
 
 
-@app_rki_vaccination.route('/task/import/only')
-def url_vaccination_task_import_only():
+@app_rki_vaccination.route('/task/import')
+def url_task_vaccination_import():
     flash("url_vaccination_task_import_only started")
-    task_vaccination_import_only.apply_async()
+    task_vaccination_import.apply_async()
+    return redirect(url_for('rki_vaccination.url_vaccination_tasks'))
+
+
+@app_rki_vaccination.route('/task/update/full/dimension-tables')
+def url_task_vaccination_full_update_dimension_tables():
+    flash("url_vaccination_task_update_dimensiontables_only started")
+    task_vaccination_full_update_dimension_tables.apply_async()
     return redirect(url_for('rki_vaccination.url_vaccination_tasks'))
 
 
-@app_rki_vaccination.route('/task/update/dimension-tables/only')
-def url_vaccination_task_update_dimensiontables_only():
+@app_rki_vaccination.route('/task/update/dimension-tables')
+def url_task_vaccination_update_dimension_tables():
     flash("url_vaccination_task_update_dimensiontables_only started")
-    task_vaccination_update_dimension_tables_only.apply_async()
+    task_vaccination_update_dimension_tables.apply_async()
     return redirect(url_for('rki_vaccination.url_vaccination_tasks'))
 
 
 @app_rki_vaccination.route('/task/update/fact-table/incremental/only')
-def url_vaccination_task_update_facttable_incremental_only():
+def url_task_vaccination_update_facttable():
     flash("url_vaccination_task_update_facttable_incremental_only started")
-    task_vaccination_update_facttable_incremental_only.apply_async()
+    task_vaccination_update_facttable.apply_async()
     return redirect(url_for('rki_vaccination.url_vaccination_tasks'))
 
 
 @app_rki_vaccination.route('/task/update/fact-table/initial/only')
-def url_vaccination_task_update_facttable_initial_only():
+def url_task_vaccination_full_update_facttable():
     flash("url_vaccination_task_update_facttable_initial_only started")
-    task_vaccination_update_facttable_initial_only.apply_async()
+    task_vaccination_full_update_facttable.apply_async()
     return redirect(url_for('rki_vaccination.url_vaccination_tasks'))
 
 
 @app_rki_vaccination.route('/task/update/star_schema/initial')
-def url_vaccination_task_update_starschema_initial():
+def url_task_vaccination_full_update_starschema():
     flash("url_vaccination_task_update_star_schemainitial started")
-    rki_vaccination_service.run_download_only()
-    task_vaccination_task_update_starschema_initial.apply_async()
+    rki_vaccination_service.run_download()
+    task_vaccination_full_update_starschema.apply_async()
     return redirect(url_for('rki_vaccination.url_vaccination_tasks'))
 
 
 @app_rki_vaccination.route('/task/update/star_schema/incremental')
-def url_vaccination_task_update_starschema_incremental():
+def url_task_vaccination_update_starschema():
     flash("url_vaccination_task_update_starschema_incremental started")
-    rki_vaccination_service.run_download_only()
-    task_vaccination_update_starschema_incremental.apply_async()
+    rki_vaccination_service.run_download()
+    task_vaccination_update_starschema.apply_async()
     return redirect(url_for('rki_vaccination.url_vaccination_tasks'))
diff --git a/src/covid19/blueprints/rki_vaccination/templates/__init__.py b/src/covid19/blueprints/rki_vaccination/templates/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data.html
similarity index 93%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data.html
index 6d83a2a824306f10fb53e35b192236572ba03bd9..55f9909d474d4aac1131cf79162157d0a3b18442 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data.html
+++ b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_pagination.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_pagination.html
similarity index 100%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_pagination.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_pagination.html
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_table.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_table.html
similarity index 100%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_table.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_table.html
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_table_head.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_table_head.html
similarity index 100%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_table_head.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/data/rki_vaccination_data_table_head.html
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported.html
similarity index 93%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported.html
index 45878b35595cbf872180deea6416fe554bd45f12..ded66e63dd5e51b68383b047cd64cd45e2841665 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported.html
+++ b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported_pagination.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported_pagination.html
similarity index 100%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported_pagination.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported_pagination.html
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported_table.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported_table.html
similarity index 100%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported_table.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/imported/rki_vaccination_imported_table.html
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navbar_dropdown.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navbar_dropdown.html
similarity index 72%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navbar_dropdown.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navbar_dropdown.html
index dd38e5fce33bad9b6c520ff0d893ca87e94dcaf7..69bc853692c8514f5ddb952285b4f7c6b8cb35b1 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navbar_dropdown.html
+++ b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navbar_dropdown.html
@@ -25,41 +25,46 @@
                             <div class="dropdown-divider"></div>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_vaccination_task_download_only') }}">
+                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_task_vaccination_download') }}">
                                 RKI Vaccination :: TASK:: url_vaccination_task_download_only
                             </a>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_vaccination_task_import_only') }}">
+                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_task_vaccination_import') }}">
                                 RKI Vaccination :: TASK:: url_vaccination_task_download_only
                             </a>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_dimensiontables_only') }}">
-                                RKI Vaccination :: TASK:: url_vaccination_task_update_dimensiontables_only
+                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_task_vaccination_full_update_dimension_tables') }}">
+                                RKI Vaccination :: TASK:: url_task_vaccination_full_update_dimension_tables
                             </a>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_facttable_incremental_only') }}">
-                                RKI Vaccination :: TASK:: url_vaccination_task_update_facttable_incremental_only
+                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_task_vaccination_update_dimension_tables') }}">
+                                RKI Vaccination :: TASK:: url_task_vaccination_update_dimension_tables
                             </a>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_facttable_initial_only') }}">
-                                RKI Vaccination :: TASK:: url_vaccination_task_update_facttable_initial_only
+                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_task_vaccination_full_update_facttable') }}">
+                                RKI Vaccination :: TASK:: url_task_vaccination_full_update_facttable
+                            </a>
+                        </li>
+                        <li>
+                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_task_vaccination_update_facttable') }}">
+                                RKI Vaccination :: TASK:: url_task_vaccination_update_facttable
                             </a>
                         </li>
                         <li>
                             <div class="dropdown-divider"></div>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_starschema_initial') }}">
-                                RKI Vaccination :: TASK:: url_vaccination_task_update_starschema_initial
+                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_task_vaccination_full_update_starschema') }}">
+                                RKI Vaccination :: TASK:: url_task_vaccination_full_update_starschema
                             </a>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_vaccination_task_update_starschema_incremental') }}">
-                                RKI Vaccination :: TASK:: url_vaccination_task_update_starschema_incremental
+                            <a class="dropdown-item" href="{{ url_for( 'rki_vaccination.url_task_vaccination_update_starschema') }}">
+                                RKI Vaccination :: TASK:: url_task_vaccination_update_starschema
                             </a>
                         </li>
                         <li>
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navtabs.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navtabs.html
similarity index 93%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navtabs.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navtabs.html
index 5ee4ad1a43ed91396740119c100cd6e53df519e2..6a90979d7a46f67aabafd4de92d76ca63c9127b9 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navtabs.html
+++ b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/navigation/rki_vaccination_navtabs.html
@@ -8,6 +8,7 @@
                             RKI Vaccination Info
                         </a>
                     </li>
+                    {% if current_user.is_authenticated %}
                     <li class="nav-item">
                         <a class="nav-link"
                            href="{{ url_for( 'rki_vaccination.url_vaccination_tasks') }}">
@@ -20,6 +21,7 @@
                             RKI Vaccination :: imported
                         </a>
                     </li>
+                    {% endif %}
                     <li class="nav-item">
                         <a class="nav-link"
                            href="{{ url_for( 'rki_vaccination.url_vaccination_data') }}">
diff --git a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/rki_vaccination_info.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/rki_vaccination_info.html
similarity index 95%
rename from src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/rki_vaccination_info.html
rename to src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/rki_vaccination_info.html
index 7d35cfe4a996d47902ab93cefed0b15d4857fc1a..cd99ef4575f1b7247a216691e70f92df2163ee4a 100644
--- a/src/covid19/blueprints/rki/rki_vaccination/templates/rki_vaccination/rki_vaccination_info.html
+++ b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/rki_vaccination_info.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/rki_vaccination_tasks.html b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/rki_vaccination_tasks.html
new file mode 100644
index 0000000000000000000000000000000000000000..6b67f5bb9915acf11f061819b745287c24b5d067
--- /dev/null
+++ b/src/covid19/blueprints/rki_vaccination/templates/rki_vaccination/rki_vaccination_tasks.html
@@ -0,0 +1,79 @@
+{% extends 'app_all/layout/page_layout.html' %}
+
+{% block content %}
+    {{super()}}
+    {% include 'rki_vaccination/navigation/rki_vaccination_navtabs.html' %}
+
+    <div class="container">
+        <div class="row">
+            <div class="col">
+                <h3>RKI Vaccination Tasks</h3>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col">
+                <h4>Full Update</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-danger btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_full_update_starschema') }}"
+                       role="button">Vaccination :: Task :: update :: star_schema :: full</a>
+                </div>
+            </div>
+            <div class="col">
+                <h4>Update</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_update_starschema') }}"
+                       role="button">Vaccination :: Task :: update :: star_schema</a>
+                </div>
+            </div>
+        </div>
+        <p></p>
+        <div class="row">
+            <div class="col">
+                <h4>Full Update</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-success btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_download') }}"
+                       role="button">Vaccination :: Task :: download :: only</a>
+
+                    <a class="btn btn-info btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_import') }}"
+                       role="button">Vaccination :: Task :: import :: only</a>
+
+                    <a class="btn btn-warning btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_full_update_dimension_tables') }}"
+                       role="button">Vaccination :: Task :: update :: dimension-tables :: full</a>
+
+                    <a class="btn btn-secondary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_full_update_facttable') }}"
+                       role="button">Vaccination :: Task :: update :: fact-table :: full</a>
+                </div>
+            </div>
+            <div class="col">
+                <h4>Update</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-success btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_download') }}"
+                       role="button">Vaccination :: Task :: download :: only</a>
+
+                    <a class="btn btn-info btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_import') }}"
+                       role="button">Vaccination :: Task :: import :: only</a>
+
+                    <a class="btn btn-warning btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_update_dimension_tables') }}"
+                       role="button">Vaccination :: Task :: update :: dimension-tables</a>
+
+                    <a class="btn btn-secondary btn-lg btn-block text-left"
+                       href="{{ url_for( 'rki_vaccination.url_task_vaccination_update_facttable') }}"
+                       role="button">Vaccination :: Task :: update :: fact-table</a>
+                </div>
+            </div>
+        </div>
+    </div>
+{% endblock %}
+
+
+
+
diff --git a/src/covid19/blueprints/who/templates/who/country/who_country_all.html b/src/covid19/blueprints/who/templates/who/country/who_country_all.html
index da3c31d72d0481d16de5409022113b1f148ca06e..f0cb63bbdf1f9208bd37bfc884eb0d1eca142d86 100644
--- a/src/covid19/blueprints/who/templates/who/country/who_country_all.html
+++ b/src/covid19/blueprints/who/templates/who/country/who_country_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/country/who_country_germany.html b/src/covid19/blueprints/who/templates/who/country/who_country_germany.html
index cd4675faad9c64d74e8822f753415844f80a501a..9a5d2f990142141a6d0fafcb93f634be75f0c2f8 100644
--- a/src/covid19/blueprints/who/templates/who/country/who_country_germany.html
+++ b/src/covid19/blueprints/who/templates/who/country/who_country_germany.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/country/who_country_one.html b/src/covid19/blueprints/who/templates/who/country/who_country_one.html
index 7f61469fe8597dc6f9005c58247e8160448000b0..f640da896c099ead3ccdb5484febd102b7d5ee7c 100644
--- a/src/covid19/blueprints/who/templates/who/country/who_country_one.html
+++ b/src/covid19/blueprints/who/templates/who/country/who_country_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/country/who_country_one_cases_cumulative.html b/src/covid19/blueprints/who/templates/who/country/who_country_one_cases_cumulative.html
index 5aae35beb7ca944108a520b7800393c22aa14aca..3151606fd84e041ec42e7eb28795910f41a9b81f 100644
--- a/src/covid19/blueprints/who/templates/who/country/who_country_one_cases_cumulative.html
+++ b/src/covid19/blueprints/who/templates/who/country/who_country_one_cases_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/country/who_country_one_cases_new.html b/src/covid19/blueprints/who/templates/who/country/who_country_one_cases_new.html
index a522b64cdceb012b4ba9b9fb2c194ea7ee2500c5..b424d0e2bf519ee14c3db1fde56dec187592d6de 100644
--- a/src/covid19/blueprints/who/templates/who/country/who_country_one_cases_new.html
+++ b/src/covid19/blueprints/who/templates/who/country/who_country_one_cases_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/country/who_country_one_deaths_cumulative.html b/src/covid19/blueprints/who/templates/who/country/who_country_one_deaths_cumulative.html
index d55e49fc8fbfb8c331de4c776f9d878148a6aa6b..dd4769a07491441312b4e6b1dec1ce4cdf8ec16d 100644
--- a/src/covid19/blueprints/who/templates/who/country/who_country_one_deaths_cumulative.html
+++ b/src/covid19/blueprints/who/templates/who/country/who_country_one_deaths_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/country/who_country_one_deaths_new.html b/src/covid19/blueprints/who/templates/who/country/who_country_one_deaths_new.html
index 6a771b79bc54481fad5b95e556c13d23ddd0ba36..274dbb4b5fb17cc473763b9a6057dab35e70da21 100644
--- a/src/covid19/blueprints/who/templates/who/country/who_country_one_deaths_new.html
+++ b/src/covid19/blueprints/who/templates/who/country/who_country_one_deaths_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_all.html b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_all.html
index eea1d5dab6331468a984df2f3fc2fe962f0f3f34..5c2d9c89c18b82dcd956c8f36619ebf3b72660f2 100644
--- a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_all.html
+++ b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one.html b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one.html
index fb852908da57023a907d05d68bc08d75f8bd3bfa..7bd09c871cd38238088a03a1f07af03595397cf2 100644
--- a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one.html
+++ b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_cases_cumulative.html b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_cases_cumulative.html
index 2e6562a57a27c4cccce811027fea0fc595b738f3..00a1889a4da1c52169ff12839b710d7a3e451d3d 100644
--- a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_cases_cumulative.html
+++ b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_cases_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_cases_new.html b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_cases_new.html
index fb852908da57023a907d05d68bc08d75f8bd3bfa..7bd09c871cd38238088a03a1f07af03595397cf2 100644
--- a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_cases_new.html
+++ b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_cases_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_deaths_cumulative.html b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_deaths_cumulative.html
index 6cade560341b221034de178f547b65c38538e911..55dfd994935f5e907bffa4c9402a7e53307cd72f 100644
--- a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_deaths_cumulative.html
+++ b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_deaths_cumulative.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_deaths_new.html b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_deaths_new.html
index c61e0d1972b4df5e5cc5ef3b37a7458fb522ffbf..9ae177aa8bd9afcaddafa61f4632a3316d7bc64e 100644
--- a/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_deaths_new.html
+++ b/src/covid19/blueprints/who/templates/who/date_reported/who_date_reported_one_deaths_new.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/navigation/who_navbar_dropdown.html b/src/covid19/blueprints/who/templates/who/navigation/who_navbar_dropdown.html
index 2c2e5a9df4da1ab5a5a18de69361cec947ad163c..66039f6c56290c73e6a506e11bfb9ecc5b7b251d 100644
--- a/src/covid19/blueprints/who/templates/who/navigation/who_navbar_dropdown.html
+++ b/src/covid19/blueprints/who/templates/who/navigation/who_navbar_dropdown.html
@@ -4,60 +4,63 @@
                     </a>
                     <ul class="dropdown-menu">
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_date_reported_all') }}">
-                                WHO
+                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_info') }}">
+                                WHO Info
                             </a>
                         </li>
                         <li>
                             <div class="dropdown-divider"></div>
                         </li>
+                        {% if current_user.is_authenticated %}
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_germany') }}">
-                                WHO Germany
+                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_tasks') }}">
+                                WHO Tasks
                             </a>
                         </li>
+                        {% endif %}
+                        {% if current_user.is_authenticated %}
                         <li>
                             <div class="dropdown-divider"></div>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_region_all') }}">
-                                WHO Regions
+                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_imported') }}">
+                                WHO imported
                             </a>
                         </li>
+                        {% endif %}
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_date_reported_all') }}">
-                                WHO Date Reported
-                            </a>
+                            <div class="dropdown-divider"></div>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_country_all') }}">
-                                WHO Countries
+                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_date_reported_all') }}">
+                                WHO
                             </a>
                         </li>
                         <li>
                             <div class="dropdown-divider"></div>
                         </li>
-                        {% if current_user.is_authenticated %}
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_imported') }}">
-                                WHO imported
+                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_germany') }}">
+                                WHO Germany
                             </a>
                         </li>
-                        {% endif %}
                         <li>
                             <div class="dropdown-divider"></div>
                         </li>
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_info') }}">
-                                WHO Info
+                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_region_all') }}">
+                                WHO Regions
                             </a>
                         </li>
-                        {% if current_user.is_authenticated %}
                         <li>
-                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_tasks') }}">
-                                WHO Tasks
+                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_date_reported_all') }}">
+                                WHO Date Reported
+                            </a>
+                        </li>
+                        <li>
+                            <a class="dropdown-item" href="{{ url_for( 'who.url_who_country_all') }}">
+                                WHO Countries
                             </a>
                         </li>
-                        {% endif %}
                     </ul>
                 </li>
\ No newline at end of file
diff --git a/src/covid19/blueprints/who/templates/who/navigation/who_navtabs.html b/src/covid19/blueprints/who/templates/who/navigation/who_navtabs.html
index 032b51dc9f878a8676f2532346bc6777e51662e3..bb9fe4bbf1a5d5973161c9fc802de64877ae4015 100644
--- a/src/covid19/blueprints/who/templates/who/navigation/who_navtabs.html
+++ b/src/covid19/blueprints/who/templates/who/navigation/who_navtabs.html
@@ -13,12 +13,14 @@
                         <a class="nav-link"
                            href="{{ url_for( 'who.url_who_tasks') }}">WHO tasks</a>
                     </li>
-                    {% endif %}
-                    {% if current_user.is_authenticated %}
                     <li class="nav-item">
                         <a class="nav-link"
                            href="{{ url_for( 'who_test.url_who_test_tests') }}">WHO Tests</a>
                     </li>
+                    <li class="nav-item">
+                        <a class="nav-link"
+                           href="{{ url_for( 'who.url_who_imported') }}">WHO imported</a>
+                    </li>
                     {% endif %}
                     <li class="nav-item">
                         <a class="nav-link"
@@ -36,12 +38,6 @@
                         <a class="nav-link"
                            href="{{ url_for( 'who.url_who_country_all') }}">WHO Countries</a>
                     </li>
-                    {% if current_user.is_authenticated %}
-                    <li class="nav-item">
-                        <a class="nav-link"
-                           href="{{ url_for( 'who.url_who_imported') }}">WHO imported</a>
-                    </li>
-                    {% endif %}
                 </ul>
             </nav>
         </div>
diff --git a/src/covid19/blueprints/who/templates/who/region/who_region_all.html b/src/covid19/blueprints/who/templates/who/region/who_region_all.html
index 12960224fc8e1134a925f295a3b040d3e3bf3c5d..4e831b20362039c502ddfbdd480689de51b404a7 100644
--- a/src/covid19/blueprints/who/templates/who/region/who_region_all.html
+++ b/src/covid19/blueprints/who/templates/who/region/who_region_all.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/region/who_region_one.html b/src/covid19/blueprints/who/templates/who/region/who_region_one.html
index e273103351b75ac5ba0d54a70ffb0efe954eb0c4..ded82dc85ae4e54841d9cf70aa880263ad45e6d0 100644
--- a/src/covid19/blueprints/who/templates/who/region/who_region_one.html
+++ b/src/covid19/blueprints/who/templates/who/region/who_region_one.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/who_imported.html b/src/covid19/blueprints/who/templates/who/who_imported.html
index d12fed01d11e780fb0ef5fb7a5ffea531913d2c5..d79a0170478afe6fd6ded96218786afc03f4fb35 100644
--- a/src/covid19/blueprints/who/templates/who/who_imported.html
+++ b/src/covid19/blueprints/who/templates/who/who_imported.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/who_info.html b/src/covid19/blueprints/who/templates/who/who_info.html
index 43bb0444dd4b903d25ba2b6c07e7501283266e0e..27dc9729ed0bfa386305076637f46589c62b1f03 100644
--- a/src/covid19/blueprints/who/templates/who/who_info.html
+++ b/src/covid19/blueprints/who/templates/who/who_info.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who/templates/who/who_tasks.html b/src/covid19/blueprints/who/templates/who/who_tasks.html
index ce8cbe3f7e306b6aafa2beb6870bf443d729cc98..3be00b9f58497f47a5f8cd1900cc486836b411ee 100644
--- a/src/covid19/blueprints/who/templates/who/who_tasks.html
+++ b/src/covid19/blueprints/who/templates/who/who_tasks.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
@@ -13,10 +13,22 @@
                        href="{{ url_for( 'who.url_task_who_full_update_star_schema') }}"
                        role="button">WHO :: Task :: update :: star_schema :: full</a>
                 </div>
+            </div>
+            <div class="col">
+                <h4>Update</h4>
+                <div class="btn-group-vertical" role="group" aria-label="Views">
+                    <a class="btn btn-primary btn-lg btn-block text-left"
+                       href="{{ url_for( 'who.url_task_who_update_star_schema') }}"
+                       role="button">WHO :: Task :: update :: star_schema</a>
+                </div>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col">
                 <h4>Full Update</h4>
                 <div class="btn-group-vertical" role="group" aria-label="Views">
                     <a class="btn btn-success btn-lg btn-block text-left"
-                       href="{{ url_for( 'who.url_task_download_files') }}"
+                       href="{{ url_for( 'who.url_download_files') }}"
                        role="button">WHO :: Task :: download :: files</a>
                     <a class="btn btn-info btn-lg btn-block text-left"
                        href="{{ url_for( 'who.url_task_who_import_files') }}"
@@ -30,16 +42,10 @@
                 </div>
             </div>
             <div class="col">
-                <h4>Update</h4>
-                <div class="btn-group-vertical" role="group" aria-label="Views">
-                    <a class="btn btn-primary btn-lg btn-block text-left"
-                       href="{{ url_for( 'who.url_task_who_update_star_schema') }}"
-                       role="button">WHO :: Task :: update :: star_schema</a>
-                </div>
                 <h4>Update</h4>
                 <div class="btn-group-vertical" role="group" aria-label="Views">
                     <a class="btn btn-success btn-lg btn-block text-left"
-                       href="{{ url_for( 'who.url_task_download_files') }}"
+                       href="{{ url_for( 'who.url_download_files') }}"
                        role="button">WHO :: Task :: download :: files</a>
                     <a class="btn btn-info btn-lg btn-block text-left"
                        href="{{ url_for( 'who.url_task_who_import_files') }}"
diff --git a/src/covid19/blueprints/who/who_model.py b/src/covid19/blueprints/who/who_model.py
index cf768574c020d4d2cfbfab02ea7f9e9f37e4479f..6340ab3ffbea9c120fd23b15a031fb795f5885ce 100644
--- a/src/covid19/blueprints/who/who_model.py
+++ b/src/covid19/blueprints/who/who_model.py
@@ -2,7 +2,7 @@ from sqlalchemy import and_
 from datetime import date
 from sqlalchemy.orm import joinedload, subqueryload
 from database import db, ITEMS_PER_PAGE
-from covid19.blueprints.application.application_model import ApplicationDateReported, ApplicationRegion
+from covid19.blueprints.app_all.all_model import ApplicationDateReported, ApplicationRegion
 
 
 class WhoDateReported(ApplicationDateReported):
diff --git a/src/covid19/blueprints/who/who_model_import.py b/src/covid19/blueprints/who/who_model_import.py
index 4db10ce746df9cd7ec2f45a164d92e086910ee9d..ac099e8d29537de09be5a38c557290d2a939eb7b 100644
--- a/src/covid19/blueprints/who/who_model_import.py
+++ b/src/covid19/blueprints/who/who_model_import.py
@@ -1,19 +1,25 @@
 from sqlalchemy.orm import Bundle
 from database import db, ITEMS_PER_PAGE
 
-
 class WhoImport(db.Model):
     __tablename__ = 'application__import__who'
 
     id = db.Column(db.Integer, primary_key=True)
-    date_reported = db.Column(db.String(255), nullable=False)
-    country_code = db.Column(db.String(255), nullable=False)
-    country = db.Column(db.String(255), nullable=False)
-    who_region = db.Column(db.String(255), nullable=False)
     new_cases = db.Column(db.String(255), nullable=False)
     cumulative_cases = db.Column(db.String(255), nullable=False)
     new_deaths = db.Column(db.String(255), nullable=False)
     cumulative_deaths = db.Column(db.String(255), nullable=False)
+    country_code = db.Column(db.String(255), nullable=False)
+    country = db.Column(db.String(255), nullable=False)
+    who_region = db.Column(db.String(255), nullable=False)
+    date_reported = db.Column(db.String(255), nullable=False)
+    datum = db.Column(db.Date, nullable=False)
+    year = db.Column(db.Integer, nullable=False)
+    month = db.Column(db.Integer, nullable=False)
+    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)
+    year_week = db.Column(db.String(255), nullable=False)
 
     @classmethod
     def remove_all(cls):
diff --git a/src/covid19/blueprints/who/who_service.py b/src/covid19/blueprints/who/who_service.py
index fa0cf3376d290aa71930c3bfc4dff3b25dd7589a..407bee9d855f5b102d2531334ec9e05e33db6dc9 100644
--- a/src/covid19/blueprints/who/who_service.py
+++ b/src/covid19/blueprints/who/who_service.py
@@ -1,8 +1,8 @@
 from flask import flash
 
 from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
-from covid19.blueprints.application.application_service_download import ApplicationServiceDownload
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_download import ApplicationServiceDownload
 from covid19.blueprints.who.who_service_import import WhoServiceImport
 from covid19.blueprints.who.who_service_update import WhoServiceUpdate, WhoServiceUpdateFull
 
@@ -37,12 +37,12 @@ class WhoService:
         app.logger.info("WhoService.database_drop_create_posttask [done]")
         return self
 
-    def full_update_dimension_tables(self):
+    def task_admin_update_full_dimension_tables(self):
         self.service_update_full.full_update_dimension_tables()
         return self
 
-    def update_dimension_tables_only(self):
-        self.service_update_full.full_update_dimension_tables()
+    def task_admin_update_dimension_tables(self):
+        self.service_update.update_dimension_tables()
         return self
 
     def download_all_files(self):
@@ -67,12 +67,12 @@ class WhoService:
         self.service_update_full.full_update_star_schema()
         return self
 
-    def run_update_star_schema_initial(self):
+    def task_admin_full_update_star_schema(self):
         self.service_import.import_file()
         self.service_update_full.full_update_star_schema()
         return self
 
-    def run_update_star_schema_incremental(self):
+    def task_admin_update_fact_table(self):
         self.service_import.import_file()
         self.service_update.update_star_schema()
         return self
diff --git a/src/covid19/blueprints/who/who_service_import.py b/src/covid19/blueprints/who/who_service_import.py
index 124e4e5d591c0b0387a74aa0b333229269b6fdd3..2e30a87740ff6cbcb02ae11a93ae0ce35de9567c 100644
--- a/src/covid19/blueprints/who/who_service_import.py
+++ b/src/covid19/blueprints/who/who_service_import.py
@@ -2,8 +2,9 @@ import sys
 import csv
 import psycopg2
 from database import db, app
+from covid19.blueprints.who.who_model import WhoDateReported
 from covid19.blueprints.who.who_model_import import WhoImport
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 
 
 class WhoServiceImport:
@@ -32,15 +33,24 @@ class WhoServiceImport:
                 file_reader = csv.DictReader(csv_file, delimiter=',', quotechar='"')
                 k = 0
                 for row in file_reader:
+                    date_reported = row[keyDate_reported]
+                    d = WhoDateReported.create_new_object_factory(my_date_rep=date_reported)
                     o = WhoImport(
-                        date_reported=row[keyDate_reported],
-                        country_code=row['Country_code'],
-                        country=row['Country'],
-                        who_region=row['WHO_region'],
                         new_cases=row['New_cases'],
                         cumulative_cases=row['Cumulative_cases'],
                         new_deaths=row['New_deaths'],
-                        cumulative_deaths=row['Cumulative_deaths']
+                        cumulative_deaths=row['Cumulative_deaths'],
+                        country_code=row['Country_code'],
+                        country=row['Country'],
+                        who_region=row['WHO_region'],
+                        date_reported=row[keyDate_reported],
+                        datum=d.datum,
+                        year=d.year,
+                        month=d.month,
+                        day_of_month=d.day_of_month,
+                        day_of_week=d.day_of_week,
+                        week_of_year=d.day_of_week,
+                        year_week=d.year_week
                     )
                     db.session.add(o)
                     k += 1
diff --git a/src/covid19/blueprints/who/who_service_update.py b/src/covid19/blueprints/who/who_service_update.py
index 45c5c2a84bd0fd72e4af4d60cca9348cba7c6ee8..caf4a6f04a57ab40bad59faba7fdc06553e1e574 100644
--- a/src/covid19/blueprints/who/who_service_update.py
+++ b/src/covid19/blueprints/who/who_service_update.py
@@ -1,7 +1,7 @@
 from database import db, app
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 from covid19.blueprints.who.who_model import WhoCountryRegion, WhoDateReported, WhoCountry, WhoData
 from covid19.blueprints.who.who_model_import import WhoImport
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
 
 
 class WhoServiceUpdateBase:
diff --git a/src/covid19/blueprints/who/who_views.py b/src/covid19/blueprints/who/who_views.py
index c5df55bbce8592c94c00956392fb0d93fd74157b..1ab55345ef2867fffe189a8b87fdfef5437215ab 100644
--- a/src/covid19/blueprints/who/who_views.py
+++ b/src/covid19/blueprints/who/who_views.py
@@ -6,12 +6,12 @@ from flask_admin.contrib.sqla import ModelView
 from flask_login import login_required
 
 from database import app, admin, db
-from covid19.blueprints.application.application_services import who_service
-from covid19.blueprints.application.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 
 from covid19.blueprints.who.who_model_import import WhoImport
 from covid19.blueprints.who.who_model import WhoCountryRegion, WhoCountry, WhoDateReported, WhoData
-from covid19.blueprints.application.application_model_transient import ApplicationPage
 
 
 app_who = Blueprint('who', __name__, template_folder='templates', url_prefix='/who')
@@ -357,19 +357,6 @@ def url_who_mytest():
 # ----------------------------------------------------------------------------------------------------------------
 
 
-@celery.task(bind=True)
-def task_download_files(self):
-    logger = get_task_logger(__name__)
-    self.update_state(state=states.STARTED)
-    logger.info("------------------------------------------------------------")
-    logger.info(" Received: task_download_files [OK] ")
-    logger.info("------------------------------------------------------------")
-    who_service.download_files()
-    self.update_state(state=states.SUCCESS)
-    result = "OK (task_who_download_only)"
-    return result
-
-
 @celery.task(bind=True)
 def task_who_import_files(self):
     logger = get_task_logger(__name__)
@@ -475,17 +462,6 @@ def url_download_files():
     return redirect(url_for('who.url_who_tasks'))
 
 
-@app_who.route('/task/files/download')
-@login_required
-def url_task_download_files():
-    app.logger.info("url_task_download_files [start]")
-    task_download_files.apply_async()
-    flash(message="async task_download_files [start]", category="warning")
-    app.logger.warn("async task_download_files [start]")
-    app.logger.info("url_task_download_files [done]")
-    return redirect(url_for('who.url_who_tasks'))
-
-
 @app_who.route('/task/files/import')
 @login_required
 def url_task_who_import_files():
@@ -497,17 +473,6 @@ def url_task_who_import_files():
     return redirect(url_for('who.url_who_tasks'))
 
 
-@app_who.route('/task/update/dimension_tables')
-@login_required
-def url_task_who_update_dimension_tables():
-    app.logger.info("url_task_who_update_dimension_tables [start]")
-    task_who_update_dimension_tables.apply_async()
-    flash(message="async task_who_update_dimension_tables [start]", category="warning")
-    app.logger.warn("async task_who_update_dimension_tables [start]")
-    app.logger.info("url_task_who_update_dimension_tables [done]")
-    return redirect(url_for('who.url_who_tasks'))
-
-
 @app_who.route('/task/update/full/dimension_tables')
 @login_required
 def url_task_who_full_update_dimension_tables():
@@ -519,6 +484,17 @@ def url_task_who_full_update_dimension_tables():
     return redirect(url_for('who.url_who_tasks'))
 
 
+@app_who.route('/task/update/dimension_tables')
+@login_required
+def url_task_who_update_dimension_tables():
+    app.logger.info("url_task_who_update_dimension_tables [start]")
+    task_who_update_dimension_tables.apply_async()
+    flash(message="async task_who_update_dimension_tables [start]", category="warning")
+    app.logger.warn("async task_who_update_dimension_tables [start]")
+    app.logger.info("url_task_who_update_dimension_tables [done]")
+    return redirect(url_for('who.url_who_tasks'))
+
+
 @app_who.route('/task/update/full/fact-table')
 @login_required
 def url_task_who_full_update_fact_table():
@@ -541,6 +517,19 @@ def url_task_who_update_fact_table():
     return redirect(url_for('who.url_who_tasks'))
 
 
+@app_who.route('/task/update/full/star_schema')
+@login_required
+def url_task_who_full_update_star_schema():
+    app.logger.info("url_task_who_full_update_star_schema [start]")
+    who_service.download_files()
+    flash("who_service.run_download_only() [done]")
+    task_who_full_update_star_schema.apply_async()
+    flash(message="async task_who_full_update_star_schema [start]", category="warning")
+    app.logger.warn("async task_who_full_update_star_schema [start]")
+    app.logger.info("url_task_who_full_update_star_schema [done]")
+    return redirect(url_for('who.url_who_tasks'))
+
+
 @app_who.route('/task/update/star_schema')
 @login_required
 def url_task_who_update_star_schema():
@@ -553,15 +542,3 @@ def url_task_who_update_star_schema():
     app.logger.info("url_task_who_update_star_schema [done]")
     return redirect(url_for('who.url_who_tasks'))
 
-
-@app_who.route('/task/update/full/star_schema')
-@login_required
-def url_task_who_full_update_star_schema():
-    app.logger.info("url_task_who_full_update_star_schema [start]")
-    who_service.download_files()
-    flash("who_service.run_download_only() [done]")
-    task_who_full_update_star_schema.apply_async()
-    flash(message="async task_who_full_update_star_schema [start]", category="warning")
-    app.logger.warn("async task_who_full_update_star_schema [start]")
-    app.logger.info("url_task_who_full_update_star_schema [done]")
-    return redirect(url_for('who.url_who_tasks'))
diff --git a/src/covid19/blueprints/who_test/templates/who_test/who_tests.html b/src/covid19/blueprints/who_test/templates/who_test/who_tests.html
index f79ff4b1cf1ea3bce6075f1d7108fefaa131b554..daae61e99a2ab6d775faeffac505ce3fd717b059 100644
--- a/src/covid19/blueprints/who_test/templates/who_test/who_tests.html
+++ b/src/covid19/blueprints/who_test/templates/who_test/who_tests.html
@@ -1,4 +1,4 @@
-{% extends 'application/page_layout.html' %}
+{% extends 'app_all/layout/page_layout.html' %}
 
 {% block content %}
     {{super()}}
diff --git a/src/covid19/blueprints/who_test/who_test_service.py b/src/covid19/blueprints/who_test/who_test_service.py
index 565d5e8ef3788311980df2f3c9d1328da43c2e33..cd74347431af31de4bca9293580f7049958ba533 100644
--- a/src/covid19/blueprints/who_test/who_test_service.py
+++ b/src/covid19/blueprints/who_test/who_test_service.py
@@ -1,7 +1,8 @@
 from database import app
-from covid19.blueprints.application.application_service_config import ApplicationServiceConfig
+from covid19.blueprints.app_all.all_service_config import ApplicationServiceConfig
 from covid19.blueprints.who.who_model import WhoDateReported, WhoData
 
+
 class WhoTestService:
     def __init__(self, database, who_service):
         app.logger.debug("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/who_test/who_test_views.py b/src/covid19/blueprints/who_test/who_test_views.py
index d6126688609c498307d04b51dfafa94c7700a2a6..c04cba9bcef9de5c4867d7d07ce2f8286c3f73a9 100644
--- a/src/covid19/blueprints/who_test/who_test_views.py
+++ b/src/covid19/blueprints/who_test/who_test_views.py
@@ -4,12 +4,12 @@ from celery.utils.log import get_task_logger
 from flask_login import login_required
 
 from database import app, db
-from covid19.blueprints.application.application_services import who_service
-from covid19.blueprints.application.application_workers import celery
+from covid19.blueprints.app_all.all_services import who_service
+from covid19.blueprints.app_mq.application_workers import celery
+from covid19.blueprints.app_application.application_model_transient import ApplicationPage
 
 from covid19.blueprints.who.who_model_import import WhoImport
 from covid19.blueprints.who.who_model import WhoData
-from covid19.blueprints.application.application_model_transient import ApplicationPage
 
 from covid19.blueprints.who_test.who_test_service import WhoTestService
 
@@ -30,6 +30,7 @@ def url_who_test_tests():
         'who_test/who_tests.html',
         page_info=page_info)
 
+
 @app_who_test.route('/who_import/countries')
 @login_required
 def url_who_test_who_import_countries():
@@ -60,6 +61,7 @@ def url_who_test_who_import_get_new_dates_as_array():
     app.logger.info("url_who_mytest - DONE: WhoImport.get_new_dates_as_array()")
     return redirect(url_for('who_test.url_who_test_tests'))
 
+
 @app_who_test.route('/who_data/get_datum_of_all_who_data')
 @login_required
 def url_who_test_who_data_get_datum_of_all_who_data():
@@ -71,6 +73,7 @@ def url_who_test_who_data_get_datum_of_all_who_data():
     app.logger.info("url_who_test_who_data_get_datum_of_all_who_data - DONE: WhoData.get_datum_of_all_who_data()")
     return redirect(url_for('who_test.url_who_test_tests'))
 
+
 @app_who_test.route('/who_data/get_datum_of_all_who_import')
 @login_required
 def url_who_test_who_data_get_datum_of_all_who_import():
@@ -82,6 +85,7 @@ def url_who_test_who_data_get_datum_of_all_who_import():
     app.logger.info("url_who_test_who_data_get_datum_of_all_who_import - DONE: WhoImport.get_datum_of_all_who_import()")
     return redirect(url_for('who_test.url_who_test_tests'))
 
+
 @app_who_test.route('/who_service/service_update/who_import_get_new_dates_as_array')
 @login_required
 def url_who_test_who_service_who_import_get_new_dates_as_array():
@@ -93,6 +97,7 @@ def url_who_test_who_service_who_import_get_new_dates_as_array():
     app.logger.info("url_who_test_who_import_get_new_dates_as_array - DONE: WhoService.who_import_get_new_dates_as_array()")
     return redirect(url_for('who_test.url_who_test_tests'))
 
+
 @app_who_test.route('/who_test_service/delete_last_day')
 @login_required
 def url_who_test_who_test_service_delete_last_days_data():
@@ -125,6 +130,7 @@ def task_who_test_update_star_schema_incremental(self):
 #  URL Routes for Celery TASKS
 # ----------------------------------------------------------------------------------------------------------------
 
+
 @app_who_test.route('/task/update_star_schema_incremental')
 @login_required
 def url_task_who_test_update_star_schema_incremental():
diff --git a/src/covid19/package-lock.json b/src/covid19/package-lock.json
index b00774e09b9b78f357ed6d0454a882dc0050c591..4a5606c28ec6a0a139a41db72e33d82c0998b953 100644
--- a/src/covid19/package-lock.json
+++ b/src/covid19/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "flask-covid19-static",
-    "version": "0.0.32",
+    "version": "0.0.33",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
diff --git a/src/covid19/package.json b/src/covid19/package.json
index ebcf5a0fc6a6e4688fd7ebded6f84de8f9ae96ac..c39a3afae827f794eb30692537856b002b4cf39c 100644
--- a/src/covid19/package.json
+++ b/src/covid19/package.json
@@ -1,6 +1,6 @@
 {
     "name": "flask-covid19-static",
-    "version": "0.0.32",
+    "version": "0.0.34",
     "description": "Covid19 Data Aggregation - also a Project to learn Python Flask, SQLAlchemy, Celery et al.",
     "main": "index.js",
     "repository": {
diff --git a/src/mq.py b/src/mq.py
index 88b4f8a579bb39d98afd39cfdc870d344f31ff20..9ab036d12b46514d7274bc647a12e02e22f3c8ad 100644
--- a/src/mq.py
+++ b/src/mq.py
@@ -2,7 +2,7 @@ import sys
 import subprocess
 import covid19
 from covid19 import app
-from covid19.blueprints.application.application_workers import celery, run_mq
+from covid19.blueprints.app_mq.application_workers import celery, run_mq
 
 # Celery: https://docs.celeryproject.org/en/stable/userguide/index.html
 
diff --git a/version b/version
index f9d08f8f11b4cce9383c262a547e9c4a0b66472f..cdd2fd6ba5c77830ca11a19f1ec6ddb597ba6a21 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-0.0.32
\ No newline at end of file
+0.0.34
\ No newline at end of file