diff --git a/src/flask_covid19/blueprints/app_all/all_model.py b/src/flask_covid19/blueprints/app_all/all_model.py
index 3f7e3fc1c68e4e00463e64f3b3e7c668403b8b53..c62a7fb22b35de0dd61c280e89171b8c2b525768 100644
--- a/src/flask_covid19/blueprints/app_all/all_model.py
+++ b/src/flask_covid19/blueprints/app_all/all_model.py
@@ -315,7 +315,7 @@ class BlueprintLocation(db.Model):
 class BlueprintFactTableTimeSeries(db.Model):
     __tablename__ = 'blueprint_data_timeline'
     __table_args__ = (
-        db.UniqueConstraint('location_id', 'date_reported_id', name='uix_blueprint_data'),
+        db.UniqueConstraint('date_reported_id', name='uix_blueprint_data_timeline'),
     )
     id = db.Column(db.Integer, primary_key=True)
     date_reported_id = db.Column(db.Integer, db.ForeignKey('blueprint_date_reported.id'), nullable=False)
@@ -373,6 +373,10 @@ class BlueprintFactTable(db.Model):
     __table_args__ = (
         db.UniqueConstraint('location_id', 'date_reported_id', name='uix_blueprint_data'),
     )
+
+    def __str__(self):
+        return self.date_reported.__str__() + " " + self.location.__str__()
+
     id = db.Column(db.Integer, primary_key=True)
     date_reported_id = db.Column(db.Integer, db.ForeignKey('blueprint_date_reported.id'), nullable=False)
     date_reported = db.relationship(
diff --git a/src/flask_covid19/blueprints/data_divi/divi_model.py b/src/flask_covid19/blueprints/data_divi/divi_model.py
index ae4da87b1f4b484652336fb9f46e54d3f6c19980..687a5ab75806ffdad281925396be21e95344205e 100644
--- a/src/flask_covid19/blueprints/data_divi/divi_model.py
+++ b/src/flask_covid19/blueprints/data_divi/divi_model.py
@@ -60,7 +60,7 @@ class DiviCountry(BlueprintLocation):
     id = db.Column(db.Integer, primary_key=True)
     location_code = db.Column(db.String(255), unique=True, nullable=True)
     location = db.Column(db.String(255), nullable=False, unique=True)
-    location_group_id = db.Column(db.Integer, db.ForeignKey('blueprint_location_group.id'), nullable=False)
+    location_group_id = db.Column(db.Integer, db.ForeignKey('divi_country_region.id'), nullable=False)
     location_group = db.relationship(
         'DiviRegion',
         lazy='joined',
diff --git a/src/flask_covid19/blueprints/data_divi/divi_service_import.py b/src/flask_covid19/blueprints/data_divi/divi_service_import.py
index 29c7a6b0d6e27738c4670d9589df2b768b76f240..55b14a07484f4912c0d6393f29d381802e5a6cff 100644
--- a/src/flask_covid19/blueprints/data_divi/divi_service_import.py
+++ b/src/flask_covid19/blueprints/data_divi/divi_service_import.py
@@ -4,6 +4,7 @@ import psycopg2
 
 from database import db, app
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_divi.divi_model_import import DiviImport
 
 
diff --git a/src/flask_covid19/blueprints/data_divi/divi_service_update.py b/src/flask_covid19/blueprints/data_divi/divi_service_update.py
index a703398d13c8f6d8f44f7d8175722e259cdacc05..eaafd48e4fb2f89b082588d8c49a7f1b41936939 100644
--- a/src/flask_covid19/blueprints/data_divi/divi_service_update.py
+++ b/src/flask_covid19/blueprints/data_divi/divi_service_update.py
@@ -1,6 +1,7 @@
 from database import db, app
 
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 
 from flask_covid19.blueprints.data_divi.divi_model import DiviRegion, DiviDateReported, DiviCountry, DiviData
 from flask_covid19.blueprints.data_divi.divi_model_import import DiviImport
@@ -28,7 +29,7 @@ class DiviServiceUpdateFull(DiviServiceUpdateBase):
             output = " [ " + str(i) + " ] " + i_date_reported
             c = DiviDateReported.find_by_date_reported(i_date_reported)
             if c is None:
-                o = DiviDateReported.create_new_object_factory(my_date_rep=i_date_reported)
+                o = BlueprintDateReportedFactory.create_new_object_for_divi(my_date_rep=i_date_reported)
                 db.session.add(o)
                 db.session.commit()
                 output += " added"
diff --git a/src/flask_covid19/blueprints/data_ecdc/ecdc_model.py b/src/flask_covid19/blueprints/data_ecdc/ecdc_model.py
index 460f50350264d1055cb7cb11c1138c0dcdb69f43..01c4240a415a440eab3ad472b900606b84458b53 100644
--- a/src/flask_covid19/blueprints/data_ecdc/ecdc_model.py
+++ b/src/flask_covid19/blueprints/data_ecdc/ecdc_model.py
@@ -176,7 +176,7 @@ class EcdcData(BlueprintFactTable):
         'EcdcCountry',
         lazy='joined',
         cascade='save-update',
-        order_by='asc(EcdcDateReported.location)')
+        order_by='asc(EcdcCountry.location)')
     processed_update = db.Column(db.Boolean, nullable=False)
     processed_full_update = db.Column(db.Boolean, nullable=False)
     #
diff --git a/src/flask_covid19/blueprints/data_ecdc/ecdc_service_import.py b/src/flask_covid19/blueprints/data_ecdc/ecdc_service_import.py
index 0f9cef4b02d0416d120c3403b8b2f68e04e9d671..a39a00f59951978a93521aea610db08dacbcb376 100644
--- a/src/flask_covid19/blueprints/data_ecdc/ecdc_service_import.py
+++ b/src/flask_covid19/blueprints/data_ecdc/ecdc_service_import.py
@@ -4,6 +4,7 @@ import psycopg2
 from database import db, app
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
 from flask_covid19.blueprints.data_ecdc.ecdc_model import EcdcDateReported
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_ecdc.ecdc_model_import import EcdcImport, EcdcFlat
 
 
@@ -30,7 +31,7 @@ class EcdcServiceImport:
                 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)
+                    d = BlueprintDateReportedFactory.create_new_object_for_ecdc(my_date_rep=date_rep)
                     o = EcdcImport(
                         date_rep=date_rep,
                         day=row['day'],
diff --git a/src/flask_covid19/blueprints/data_ecdc/ecdc_service_update.py b/src/flask_covid19/blueprints/data_ecdc/ecdc_service_update.py
index 7495de21deb5fbdaf06a1dd799629f8db57de134..2242bf7eec182995e125353600ac8b510323c559 100644
--- a/src/flask_covid19/blueprints/data_ecdc/ecdc_service_update.py
+++ b/src/flask_covid19/blueprints/data_ecdc/ecdc_service_update.py
@@ -1,6 +1,7 @@
 from database import db, app
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
 from flask_covid19.blueprints.data_ecdc.ecdc_model_import import EcdcImport
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_ecdc.ecdc_model import EcdcDateReported, EcdcContinent, EcdcCountry, EcdcData
 
 
@@ -26,9 +27,7 @@ class EcdcServiceUpdateFull(EcdcServiceUpdateBase):
         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,
-            )
+            o = BlueprintDateReportedFactory.create_new_object_for_ecdc(my_date_rep=my_date_rep)
             db.session.add(o)
             a = str(o)
             b = str(k)
diff --git a/src/flask_covid19/blueprints/data_owid/owid_service_import.py b/src/flask_covid19/blueprints/data_owid/owid_service_import.py
index 7ca6214d082337ba8ff092e2a72e2a94021ed951..dbeebabdb022c6c51c87d9aa109270f1f6f4d28c 100644
--- a/src/flask_covid19/blueprints/data_owid/owid_service_import.py
+++ b/src/flask_covid19/blueprints/data_owid/owid_service_import.py
@@ -4,6 +4,7 @@ from database import db, app
 
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
 from flask_covid19.blueprints.data_owid.owid_model import OwidDateReported
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_owid.owid_model_import import OwidImport, OwidFlat
 
 
@@ -31,7 +32,7 @@ class OwidServiceImport:
                 k = 0
                 for row in file_reader:
                     date_reported = row['date']
-                    d = OwidDateReported.create_new_object_factory(my_date_rep=date_reported)
+                    d = BlueprintDateReportedFactory.create_new_object_for_owid(my_date_rep=date_reported)
                     o = OwidImport(
                         iso_code=row['iso_code'],
                         date=date_reported,
diff --git a/src/flask_covid19/blueprints/data_owid/owid_service_update.py b/src/flask_covid19/blueprints/data_owid/owid_service_update.py
index 2a4808cea36f930a2ab6946fa31c1cb20b1a86f9..b05e65db7fd9de3b4e8645e439a0e6ccf7b4fd25 100644
--- a/src/flask_covid19/blueprints/data_owid/owid_service_update.py
+++ b/src/flask_covid19/blueprints/data_owid/owid_service_update.py
@@ -1,5 +1,6 @@
 from database import db, app
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_owid.owid_model import OwidDateReported, OwidData, OwidContinent, OwidCountry
 from flask_covid19.blueprints.data_owid.owid_model_import import OwidImport
 
@@ -25,7 +26,7 @@ class OwidServiceUpdateFull(OwidServiceUpdateBase):
         log_lines = []
         for i_date_reported, in OwidImport.get_dates():
             i += 1
-            o = OwidDateReported.create_new_object_factory(my_date_rep=i_date_reported)
+            o = BlueprintDateReportedFactory.create_new_object_for_owid(my_date_rep=i_date_reported)
             db.session.add(o)
             output = " full update  OWID date_reported [ " + str(i) + " ] " + i_date_reported + " added"
             log_lines.append(output)
diff --git a/src/flask_covid19/blueprints/data_rki/rki_service_import.py b/src/flask_covid19/blueprints/data_rki/rki_service_import.py
index ed5bc71c328729afd9a12f512c2cd3edee623fee..3388d1b4b2a3544b28461665401d6ff65768fd9c 100644
--- a/src/flask_covid19/blueprints/data_rki/rki_service_import.py
+++ b/src/flask_covid19/blueprints/data_rki/rki_service_import.py
@@ -3,6 +3,7 @@ import psycopg2
 
 from database import db, app
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_rki.rki_model import RkiMeldedatum
 from flask_covid19.blueprints.data_rki.rki_model_import import RkiImport, RkiFlat
 
@@ -32,7 +33,7 @@ class RkiServiceImport:
                 for row in file_reader:
                     k = k + 1
                     meldedatum = row['Meldedatum']
-                    d = RkiMeldedatum.create_new_object_factory(my_date_rep=meldedatum)
+                    d = BlueprintDateReportedFactory.create_new_object_for_rki(my_date_rep=meldedatum)
                     # app.logger.info("RKI meldedatum: " + str(d) + " " + meldedatum)
                     o = RkiImport(
                         fid=row['FID'],
diff --git a/src/flask_covid19/blueprints/data_rki/rki_service_update.py b/src/flask_covid19/blueprints/data_rki/rki_service_update.py
index 06d032b982d382be06e4028e5f7e2348c1830c53..a7d966f8dd7ff6fa53e10b4eca8da56f71fe823a 100644
--- a/src/flask_covid19/blueprints/data_rki/rki_service_update.py
+++ b/src/flask_covid19/blueprints/data_rki/rki_service_update.py
@@ -1,6 +1,7 @@
 from database import db, app
 
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_rki.rki_model import RkiData, RkiMeldedatum, RkiBundesland, RkiLandkreis
 from flask_covid19.blueprints.data_rki.rki_model_import import RkiImport
 
@@ -26,7 +27,7 @@ class RkiServiceUpdateFull(RkiServiceUpdateBase):
         output_lines = []
         for datum_of_import in RkiImport.get_datum_of_all_import():
             i += 1
-            o = RkiMeldedatum.create_new_object_factory(my_date_rep=datum_of_import)
+            o = BlueprintDateReportedFactory.create_new_object_for_rki(my_date_rep=datum_of_import)
             db.session.add(o)
             output = "  [ " + str(i) + " ] full update RKI meldedatum ... " + str(o)
             output_lines.append(output)
diff --git a/src/flask_covid19/blueprints/data_vaccination/vaccination_model.py b/src/flask_covid19/blueprints/data_vaccination/vaccination_model.py
index 6e2062382fe8bc7ebd10a60abead270e3ea5d123..32aaff55d2086ddfb45f8d9c6310f5d6777e6eb9 100644
--- a/src/flask_covid19/blueprints/data_vaccination/vaccination_model.py
+++ b/src/flask_covid19/blueprints/data_vaccination/vaccination_model.py
@@ -38,6 +38,7 @@ class VaccinationDateReported(BlueprintDateReported):
 
 class VaccinationData(BlueprintFactTableTimeSeries):
     __tablename__ = 'vaccination'
+    __mapper_args__ = {'concrete': True}
 
     id = db.Column(db.Integer, primary_key=True)
     date_reported_id = db.Column(db.Integer, db.ForeignKey('vaccination_date_reported.id'), nullable=False)
diff --git a/src/flask_covid19/blueprints/data_vaccination/vaccination_service_import.py b/src/flask_covid19/blueprints/data_vaccination/vaccination_service_import.py
index 9927ec1d528fab81dc8868a0646b0bfa44642e02..a8fa7cf895b956bf0299949599b4fbfbd11c627a 100644
--- a/src/flask_covid19/blueprints/data_vaccination/vaccination_service_import.py
+++ b/src/flask_covid19/blueprints/data_vaccination/vaccination_service_import.py
@@ -4,6 +4,7 @@ import psycopg2
 from database import db, app
 
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 
 from flask_covid19.blueprints.data_vaccination.vaccination_model import VaccinationDateReported
 from flask_covid19.blueprints.data_vaccination.vaccination_model_import import VaccinationImport, VaccinationFlat
@@ -39,7 +40,7 @@ class VaccinationServiceImport:
                 file_reader = csv.DictReader(csv_file, delimiter='\t', quotechar='"')
                 for row in file_reader:
                     date_reported = row['date']
-                    d = VaccinationDateReported.create_new_object_factory(my_date_rep=date_reported)
+                    d = BlueprintDateReportedFactory.create_new_object_for_vaccination(my_date_rep=date_reported)
                     o = VaccinationImport(
                         dosen_kumulativ=self.__int(row['dosen_kumulativ']),
                         dosen_differenz_zum_vortag=self.__int(row['dosen_differenz_zum_vortag']),
diff --git a/src/flask_covid19/blueprints/data_vaccination/vaccination_service_update.py b/src/flask_covid19/blueprints/data_vaccination/vaccination_service_update.py
index d9a844f3212695ec437795d594b60236526d5e78..87f711a4f575a8bc82caf655df3855aa6d4f6dc5 100644
--- a/src/flask_covid19/blueprints/data_vaccination/vaccination_service_update.py
+++ b/src/flask_covid19/blueprints/data_vaccination/vaccination_service_update.py
@@ -1,5 +1,6 @@
 from database import db, app
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_vaccination.vaccination_model_import import VaccinationImport
 from flask_covid19.blueprints.data_vaccination.vaccination_model import VaccinationDateReported
 from flask_covid19.blueprints.data_vaccination.vaccination_model import VaccinationData
@@ -26,7 +27,7 @@ class VaccinationServiceUpdateFull(VaccinationServiceUpdateBase):
         i = 0
         for one_date_reported in date_reported_list:
             i += 1
-            o = VaccinationDateReported.create_new_object_factory(one_date_reported)
+            o = BlueprintDateReportedFactory.create_new_object_for_vaccination(my_date_rep=one_date_reported)
             db.session.add(o)
             output = " full_update RkiVaccination date_reported [ " + str(i) + " ] " + str(o)
             app.logger.info(output)
diff --git a/src/flask_covid19/blueprints/data_who/who_model.py b/src/flask_covid19/blueprints/data_who/who_model.py
index 3f9a96c0fceb7ecc601286761d9ace2e8757645e..c03fa1b54c6dc9b9e9063a1a5371cb0656a1b60f 100644
--- a/src/flask_covid19/blueprints/data_who/who_model.py
+++ b/src/flask_covid19/blueprints/data_who/who_model.py
@@ -130,9 +130,6 @@ class WhoData(BlueprintFactTable):
     __tablename__ = 'who'
     __mapper_args__ = {'concrete': True}
 
-    def __str__(self):
-        return self.date_reported.__str__() + " " + self.location.__str__()
-
     id = db.Column(db.Integer, primary_key=True)
     date_reported_id = db.Column(db.Integer, db.ForeignKey('who_date_reported.id'), nullable=False)
     date_reported = db.relationship(
diff --git a/src/flask_covid19/blueprints/data_who/who_service_import.py b/src/flask_covid19/blueprints/data_who/who_service_import.py
index 5a0fcc8a56d46eceb4ada84c86f14d34cf16e5ca..ca00c01be41f74f7ebe6fee0c8175eb63320f8cb 100644
--- a/src/flask_covid19/blueprints/data_who/who_service_import.py
+++ b/src/flask_covid19/blueprints/data_who/who_service_import.py
@@ -2,6 +2,7 @@ import sys
 import csv
 import psycopg2
 from database import db, app
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
 from flask_covid19.blueprints.data_who.who_model import WhoDateReported
 from flask_covid19.blueprints.data_who.who_model_import import WhoImport, WhoFlat
@@ -35,7 +36,7 @@ class WhoServiceImport:
                 k = 0
                 for row in file_reader:
                     date_reported = row[keyDate_reported]
-                    d = WhoDateReported.create_new_object_factory(date_reported)
+                    d = BlueprintDateReportedFactory.create_new_object_for_who(my_date_rep=date_reported)
                     o = WhoImport(
                         new_cases=row['New_cases'],
                         cumulative_cases=row['Cumulative_cases'],
diff --git a/src/flask_covid19/blueprints/data_who/who_service_update.py b/src/flask_covid19/blueprints/data_who/who_service_update.py
index aa935f351f4b0364ac70e7c21ed3ff854bdee56e..0d0d5b2a05cbc508012c78e3ca084f8f525892b3 100644
--- a/src/flask_covid19/blueprints/data_who/who_service_update.py
+++ b/src/flask_covid19/blueprints/data_who/who_service_update.py
@@ -1,5 +1,6 @@
 from database import db, app
 from flask_covid19.blueprints.app_all.all_config import BlueprintConfig
+from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory
 from flask_covid19.blueprints.data_who.who_model import WhoCountryRegion, WhoDateReported, WhoCountry, WhoData
 from flask_covid19.blueprints.data_who.who_model_import import WhoImport
 
@@ -35,7 +36,7 @@ class WhoServiceUpdateFull(WhoServiceUpdateBase):
         #    app.logger.info(str(b))
         for s_date_reported in WhoImport.get_dates_reported_as_string_array():
             i += 1
-            o = WhoDateReported.create_new_object_factory(my_date_rep=s_date_reported)
+            o = BlueprintDateReportedFactory.create_new_object_for_who(my_date_rep=s_date_reported)
             db.session.add(o)
             a = str(o)
             b = str(i)