diff --git a/src/covid19/blueprints/common/common_model.py b/src/covid19/blueprints/common/common_model.py
index 1404451522d7224706bcba298aac85f90a1c2c7f..168acb86b49925b917e540554d6b7ced48ff4065 100644
--- a/src/covid19/blueprints/common/common_model.py
+++ b/src/covid19/blueprints/common/common_model.py
@@ -71,8 +71,8 @@ class CommonDateReported(db.Model):
 
     @classmethod
     def remove_all(cls):
-        # TODO: SQLalchemy instead of SQL
-        db.session.execute("delete from " + cls.__tablename__)
+        for one in cls.get_all():
+            db.session.delete(one)
         db.session.commit()
         return None
 
@@ -123,13 +123,16 @@ class CommonRegion(db.Model):
         'polymorphic_identity': 'common_date_reported',
         'polymorphic_on': type
     }
+    __table_args__ = (
+        db.UniqueConstraint('type', 'region', name='unique_common_region_reported'),
+    )
     id = db.Column(db.Integer, primary_key=True)
     region = db.Column(db.String(255), unique=True)
 
     @classmethod
     def remove_all(cls):
-        # TODO: SQLalchemy instead of SQL
-        db.session.execute("delete from " + cls.__tablename__)
+        for one in cls.get_all():
+            db.session.delete(one)
         db.session.commit()
         return None
 
diff --git a/src/covid19/blueprints/europe/europe_model.py b/src/covid19/blueprints/europe/europe_model.py
index f654f7ab73b625b20b49b898881ad361d61a01ae..e135bae8db32d8f573ced72ca88f5387c7708fd7 100644
--- a/src/covid19/blueprints/europe/europe_model.py
+++ b/src/covid19/blueprints/europe/europe_model.py
@@ -47,8 +47,8 @@ class EuropeCountry(db.Model):
 
     @classmethod
     def remove_all(cls):
-        # TODO: SQLalchemy instead of SQL
-        db.session.execute("delete from " + cls.__tablename__ + " cascade")
+        for one in cls.get_all():
+            db.session.delete(one)
         db.session.commit()
         return None
 
@@ -101,8 +101,8 @@ class EuropeData(db.Model):
 
     @classmethod
     def remove_all(cls):
-        # TODO: SQLalchemy instead of SQL
-        db.session.execute("delete from " + cls.__tablename__ + " cascade")
+        for one in cls.get_all():
+            db.session.delete(one)
         db.session.commit()
         return None
 
diff --git a/src/covid19/blueprints/europe/europe_model_import.py b/src/covid19/blueprints/europe/europe_model_import.py
index 4570ba8dae203de7dfb0ac2d8b1770e4e7ca9bba..43da468f4a1ee09ad9b56bb7d1374467621fb4b3 100644
--- a/src/covid19/blueprints/europe/europe_model_import.py
+++ b/src/covid19/blueprints/europe/europe_model_import.py
@@ -18,19 +18,25 @@ class EuropeDataImportTable(db.Model):
 
     @classmethod
     def remove_all(cls):
-        # TODO: SQLalchemy instead of SQL
-        db.session.execute("delete from " + cls.__tablename__ + " cascade")
+        for one in cls.get_all():
+            db.session.delete(one)
         db.session.commit()
         return None
 
     @classmethod
     def get_all_as_page(cls, page):
         #TODO: #51 order_by: year_week, country
-        return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE)
+        return db.session.query(cls).order_by(
+            cls.year_week,
+            cls.countries_and_territories
+        ).paginate(page, per_page=ITEMS_PER_PAGE)
 
     @classmethod
     def get_all(cls):
-        return db.session.query(cls).all()
+        return db.session.query(cls).order_by(
+            cls.year_week,
+            cls.countries_and_territories
+        ).all()
 
     @classmethod
     def get_by_id(cls, other_id):