diff --git a/lib/hawat/app.py b/lib/hawat/app.py
index 3cb5f26f97462d02f07e9145bf92150ef1e792d4..bbb9dbca7253597bd856b042dcea8c2f74132001 100644
--- a/lib/hawat/app.py
+++ b/lib/hawat/app.py
@@ -31,7 +31,6 @@ from hawat.const import CFGKEY_MENTAT_CORE
 
 import hawat.base
 import hawat.config
-import hawat.db
 import hawat.events
 
 
diff --git a/lib/hawat/base.py b/lib/hawat/base.py
index f261a7f0232bf53e4cfc8ded64ec0e61fc6492a1..9cce3da13d691643c5a04bc7152f36e3fba97faa 100644
--- a/lib/hawat/base.py
+++ b/lib/hawat/base.py
@@ -31,7 +31,7 @@ import vial.app
 import vial.const
 import vial.menu
 import vial.errors
-import hawat.db
+import hawat.events
 
 import mentat
 import mentat._buildmeta
diff --git a/lib/hawat/blueprints/auth_api/__init__.py b/lib/hawat/blueprints/auth_api/__init__.py
index 713faaec794df6ce1b31cd739b17a0972851faed..70dab603781bce6f02602c1bf063d673181eb84b 100644
--- a/lib/hawat/blueprints/auth_api/__init__.py
+++ b/lib/hawat/blueprints/auth_api/__init__.py
@@ -75,12 +75,11 @@ from mentat.datatype.sqldb import UserModel, ItemChangeLogModel
 
 import vial.const
 import vial.forms
+import vial.db
 from vial.app import VialBlueprint
 from vial.view import ItemChangeView
 from vial.view.mixin import HTMLMixin, SQLAlchemyMixin
 
-import hawat.db
-
 
 BLUEPRINT_NAME = 'auth_api'
 """Name of the blueprint as module global constant."""
@@ -301,7 +300,7 @@ class APIAuthBlueprint(VialBlueprint):
 
             # Now login the user with provided API key.
             if api_key:
-                dbsess = hawat.db.db_get().session
+                dbsess = vial.db.db_get().session
                 try:
                     user = dbsess.query(UserModel).filter(UserModel.apikey == api_key).one()
                     if user:
diff --git a/lib/hawat/blueprints/auth_dev/__init__.py b/lib/hawat/blueprints/auth_dev/__init__.py
index 717456d8717e239bab3bd6cba89b7565f1b8e35a..7c653f3319a1a318f22bbb471a6e958f7c30d242 100644
--- a/lib/hawat/blueprints/auth_dev/__init__.py
+++ b/lib/hawat/blueprints/auth_dev/__init__.py
@@ -65,11 +65,11 @@ from mentat.datatype.sqldb import UserModel, ItemChangeLogModel
 
 import vial.const
 import vial.forms
+import vial.db
 from vial.app import VialBlueprint
 from vial.view import RenderableView, SimpleView
 from vial.view.mixin import HTMLMixin, SQLAlchemyMixin
 
-import hawat.db
 from hawat.blueprints.auth_dev.forms import LoginForm, RegisterUserAccountForm
 
 
@@ -111,7 +111,7 @@ class LoginView(HTMLMixin, SQLAlchemyMixin, SimpleView):
         form = LoginForm()
 
         if form.validate_on_submit():
-            dbsess = hawat.db.db_get().session
+            dbsess = vial.db.db_get().session
             try:
                 user = dbsess.query(UserModel).filter(UserModel.login == form.login.data).one()
 
diff --git a/lib/hawat/blueprints/auth_dev/forms.py b/lib/hawat/blueprints/auth_dev/forms.py
index cf6ffc9f9cc8988720ede4d33d7e83d1dc06c35d..fffb9a754e50cfbaa7a3c2d8fcd0090b4ad9f32f 100644
--- a/lib/hawat/blueprints/auth_dev/forms.py
+++ b/lib/hawat/blueprints/auth_dev/forms.py
@@ -31,8 +31,8 @@ from flask_babel import lazy_gettext
 from mentat.datatype.sqldb import UserModel, GroupModel
 
 import vial.forms
+import vial.db
 
-import hawat.db
 from hawat.blueprints.users.forms import check_id_existence, BaseUserAccountForm
 
 
@@ -40,7 +40,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 class LoginForm(flask_wtf.FlaskForm):
@@ -72,7 +72,7 @@ class LoginForm(flask_wtf.FlaskForm):
         Load list of all user accounts and populate the ``choices`` attribute of
         the ``login`` selectbox.
         """
-        dbsess = hawat.db.db_get().session
+        dbsess = vial.db.db_get().session
         users = dbsess.query(UserModel).order_by(UserModel.login).all()
 
         choices = []
diff --git a/lib/hawat/blueprints/auth_env/__init__.py b/lib/hawat/blueprints/auth_env/__init__.py
index aefc2700097c94e2235fbebd221e00b4b88093c2..774e921c8536ba5eee24a28dfdd42b304cdcc51c 100644
--- a/lib/hawat/blueprints/auth_env/__init__.py
+++ b/lib/hawat/blueprints/auth_env/__init__.py
@@ -96,7 +96,7 @@ from flask_babel import gettext, lazy_gettext, force_locale
 #
 from mentat.datatype.sqldb import UserModel, ItemChangeLogModel
 
-import hawat.db
+import vial.db
 import vial.const
 import vial.forms
 from vial.app import VialBlueprint
@@ -169,7 +169,7 @@ class LoginView(HTMLMixin, RenderableView):
             )
             self.abort(403)
 
-        dbsess = hawat.db.db_get().session
+        dbsess = vial.db.db_get().session
         try:
             user = dbsess.query(UserModel).filter(UserModel.login == user_login).one()
 
diff --git a/lib/hawat/blueprints/auth_env/forms.py b/lib/hawat/blueprints/auth_env/forms.py
index ec7d80a345055042ca37f710871c6031f986c9e8..7c3eba0a151acdd8daf197cc38677eb6dc2477e2 100644
--- a/lib/hawat/blueprints/auth_env/forms.py
+++ b/lib/hawat/blueprints/auth_env/forms.py
@@ -28,7 +28,7 @@ from flask_babel import lazy_gettext
 #
 # Custom modules.
 #
-import hawat.db
+import vial.db
 from hawat.blueprints.users.forms import BaseUserAccountForm
 from mentat.datatype.sqldb import GroupModel
 
@@ -37,7 +37,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 class RegisterUserAccountForm(BaseUserAccountForm):
diff --git a/lib/hawat/blueprints/changelogs/forms.py b/lib/hawat/blueprints/changelogs/forms.py
index 3bd0c3e132c09d6d1cfbc8ac20e5d7a9bc81d8da..7f3da8abc248ec879a43524f3730ce6f0de742e2 100644
--- a/lib/hawat/blueprints/changelogs/forms.py
+++ b/lib/hawat/blueprints/changelogs/forms.py
@@ -25,8 +25,7 @@ from flask_babel import lazy_gettext
 
 import vial.const
 import vial.forms
-
-import hawat.db
+import vial.db
 
 from mentat.datatype.sqldb import UserModel, ItemChangeLogModel
 
@@ -35,7 +34,7 @@ def get_available_authors():
     """
     Query the database for list of changelog authors.
     """
-    return hawat.db.db_query(UserModel).\
+    return vial.db.db_query(UserModel).\
         order_by(UserModel.fullname).\
         all()
 
@@ -43,7 +42,7 @@ def get_item_operation_choices():
     """
     Return select choices for item changelog operations.
     """
-    operations_list = hawat.db.db_query(ItemChangeLogModel).\
+    operations_list = vial.db.db_query(ItemChangeLogModel).\
         distinct(ItemChangeLogModel.operation).\
         all()
     return list(
@@ -57,7 +56,7 @@ def get_item_model_choices():
     """
     Return select choices for item changelog item models.
     """
-    models_list = hawat.db.db_query(ItemChangeLogModel).\
+    models_list = vial.db.db_query(ItemChangeLogModel).\
         distinct(ItemChangeLogModel.model).\
         all()
     return list(
diff --git a/lib/hawat/blueprints/dbstatus/__init__.py b/lib/hawat/blueprints/dbstatus/__init__.py
index c38c08ab598b45828877532b6a77724cebd76511..e72dd35d05b3c62b796e80929cddcaa41c3956e5 100644
--- a/lib/hawat/blueprints/dbstatus/__init__.py
+++ b/lib/hawat/blueprints/dbstatus/__init__.py
@@ -130,7 +130,7 @@ class ViewView(HTMLMixin, PsycopgMixin, SimpleView):
             record['user_id'] = user_id
             record['query_id'] = query_id
             if user_id not in cache:
-                cache[user_id] = hawat.db.db_get().session.query(UserModel).filter(UserModel.id == int(user_id)).one_or_none()
+                cache[user_id] = vial.db.db_get().session.query(UserModel).filter(UserModel.id == int(user_id)).one_or_none()
             record['user'] = cache[user_id]
         return result
 
@@ -212,7 +212,7 @@ class MyQueriesView(HTMLMixin, PsycopgMixin, SimpleView):
             record['user_id'] = user_id
             record['query_id'] = query_id
             if user_id not in cache:
-                cache[user_id] = hawat.db.db_get().session.query(UserModel).filter(UserModel.id == int(user_id)).one_or_none()
+                cache[user_id] = vial.db.db_get().session.query(UserModel).filter(UserModel.id == int(user_id)).one_or_none()
             record['user'] = cache[user_id]
         return result
 
diff --git a/lib/hawat/blueprints/dnsr/__init__.py b/lib/hawat/blueprints/dnsr/__init__.py
index baf4a10d55831b6dd4ea618305878218755ec5e8..dd263e694446b6d67737171a4b3fbd6be819673c 100644
--- a/lib/hawat/blueprints/dnsr/__init__.py
+++ b/lib/hawat/blueprints/dnsr/__init__.py
@@ -60,13 +60,14 @@ from flask_babel import lazy_gettext
 import mentat.services.dnsr
 from mentat.const import tr_
 
-import hawat.db
+import vial.db
 import vial.const
 import vial.acl
 from vial.app import VialBlueprint
 from vial.view import RenderableView
 from vial.view.mixin import HTMLMixin, AJAXMixin, SnippetMixin
 from vial.utils import URLParamsBuilder
+import hawat.const
 from hawat.blueprints.dnsr.forms import DnsrSearchForm
 
 
diff --git a/lib/hawat/blueprints/events/forms.py b/lib/hawat/blueprints/events/forms.py
index 998f1b1ba722054e7f606578f3c3b47b15b6ce92..ce111a432fc71da5322f28bd62eb524cda936989 100644
--- a/lib/hawat/blueprints/events/forms.py
+++ b/lib/hawat/blueprints/events/forms.py
@@ -26,8 +26,7 @@ from flask_babel import lazy_gettext
 
 import vial.const
 import vial.forms
-
-import hawat.db
+import vial.db
 
 from mentat.datatype.sqldb import GroupModel
 
@@ -36,7 +35,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 class SimpleEventSearchForm(vial.forms.BaseSearchForm):
diff --git a/lib/hawat/blueprints/filters/__init__.py b/lib/hawat/blueprints/filters/__init__.py
index 90cd4c9adace1fe76c3a64c9024b275ec3e0c8af..c49fb365d4a6dc630400fc408c9f91db0542055e 100644
--- a/lib/hawat/blueprints/filters/__init__.py
+++ b/lib/hawat/blueprints/filters/__init__.py
@@ -53,11 +53,11 @@ from mentat.datatype.sqldb import FilterModel, GroupModel, ItemChangeLogModel
 from mentat.idea.internal import Idea, IDEAFilterCompiler
 
 import vial.const
-import hawat.db
-import hawat.events
+import vial.db
 from vial.app import VialBlueprint
 from vial.view import RenderableView, ItemListView, ItemShowView, ItemCreateView, ItemCreateForView, ItemUpdateView, ItemDeleteView, ItemEnableView, ItemDisableView
 from vial.view.mixin import HTMLMixin, SQLAlchemyMixin
+import hawat.events
 from hawat.blueprints.filters.forms import BaseFilterForm, AdminFilterForm, PlaygroundFilterForm
 
 
diff --git a/lib/hawat/blueprints/filters/forms.py b/lib/hawat/blueprints/filters/forms.py
index 18af85cf1f4e6599a533d0860be6537c86444bee..20e6a8e2a204c54de7320b4f07e7d7be45362ba9 100644
--- a/lib/hawat/blueprints/filters/forms.py
+++ b/lib/hawat/blueprints/filters/forms.py
@@ -31,7 +31,7 @@ from flask_babel import gettext, lazy_gettext
 #
 # Custom modules.
 #
-import hawat.db
+import vial.db
 import vial.forms
 from mentat.datatype.sqldb import GroupModel
 from mentat.const import REPORTING_FILTER_BASIC, REPORTING_FILTER_ADVANCED
@@ -42,7 +42,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 def check_filter(form, field):  # pylint: disable=locally-disabled,unused-argument
diff --git a/lib/hawat/blueprints/geoip/__init__.py b/lib/hawat/blueprints/geoip/__init__.py
index 72bd723bf9cb3ce59da25708082fe33af08c6b80..650d095a2fa4f3485272e9f55ebd6dc48b524db8 100644
--- a/lib/hawat/blueprints/geoip/__init__.py
+++ b/lib/hawat/blueprints/geoip/__init__.py
@@ -63,13 +63,14 @@ from flask_babel import lazy_gettext
 import mentat.services.geoip
 from mentat.const import tr_
 
-import hawat.db
+import vial.db
 import vial.const
 import vial.acl
 from vial.app import VialBlueprint
 from vial.view import RenderableView
 from vial.view.mixin import HTMLMixin, AJAXMixin, SnippetMixin
 from vial.utils import URLParamsBuilder
+import hawat.const
 from hawat.blueprints.geoip.forms import GeoipSearchForm
 
 
diff --git a/lib/hawat/blueprints/groups/__init__.py b/lib/hawat/blueprints/groups/__init__.py
index 56d4a58c903359a770448a011d0c868323c30920..e585532198716eb41cdfd946fcc7ea9c49e20f83 100644
--- a/lib/hawat/blueprints/groups/__init__.py
+++ b/lib/hawat/blueprints/groups/__init__.py
@@ -45,13 +45,13 @@ from mentat.datatype.sqldb import UserModel, GroupModel, SettingsReportingModel,
     FilterModel, NetworkModel, ItemChangeLogModel
 from mentat.const import tr_
 
-import hawat.db
 import vial.acl
 import vial.menu
 from vial.app import VialBlueprint
 from vial.view import ItemListView, ItemShowView, ItemCreateView, ItemUpdateView, ItemDeleteView, ItemEnableView, ItemDisableView, ItemObjectRelationView
 from vial.view.mixin import HTMLMixin, SQLAlchemyMixin
 from vial.utils import URLParamsBuilder
+import hawat.const
 from hawat.blueprints.groups.forms import AdminCreateGroupForm, AdminUpdateGroupForm,\
     UpdateGroupForm
 
diff --git a/lib/hawat/blueprints/groups/forms.py b/lib/hawat/blueprints/groups/forms.py
index f3436f6a86de005479f8be812c9890a9b2110a51..de85b3e546eb358a2abf8862adceacd57c85f87c 100644
--- a/lib/hawat/blueprints/groups/forms.py
+++ b/lib/hawat/blueprints/groups/forms.py
@@ -29,7 +29,7 @@ from flask_babel import gettext, lazy_gettext
 #
 # Custom modules.
 #
-import hawat.db
+import vial.db
 import vial.forms
 from mentat.datatype.sqldb import GroupModel, UserModel
 
@@ -39,7 +39,7 @@ def check_name_existence(form, field):  # pylint: disable=locally-disabled,unuse
     Callback for validating user logins during account create action.
     """
     try:
-        hawat.db.db_get().session.query(GroupModel).\
+        vial.db.db_get().session.query(GroupModel).\
             filter(GroupModel.name == field.data).\
             one()
     except sqlalchemy.orm.exc.NoResultFound:
@@ -53,7 +53,7 @@ def check_name_uniqueness(form, field):
     """
     Callback for validating user logins during account update action.
     """
-    item = hawat.db.db_get().session.query(GroupModel).\
+    item = vial.db.db_get().session.query(GroupModel).\
         filter(GroupModel.name == field.data).\
         filter(GroupModel.id != form.db_item_id).\
         all()
@@ -74,7 +74,7 @@ def get_available_users():
     """
     Query the database for list of all available user accounts.
     """
-    return hawat.db.db_query(UserModel).order_by(UserModel.fullname).all()
+    return vial.db.db_query(UserModel).order_by(UserModel.fullname).all()
 
 
 def format_select_option_label_user(item):
@@ -88,7 +88,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 class BaseGroupForm(vial.forms.BaseItemForm):
diff --git a/lib/hawat/blueprints/nerd/__init__.py b/lib/hawat/blueprints/nerd/__init__.py
index 843c80df19702638ab6c7313de8b3cfa6362e726..da747f07592bc4822c13b657e5f979fc3f1cdd18 100644
--- a/lib/hawat/blueprints/nerd/__init__.py
+++ b/lib/hawat/blueprints/nerd/__init__.py
@@ -61,7 +61,7 @@ from flask_babel import lazy_gettext
 import mentat.services.nerd
 from mentat.const import tr_
 
-import hawat.db
+import vial.db
 import vial.const
 import vial.acl
 from vial.app import VialBlueprint
diff --git a/lib/hawat/blueprints/networks/forms.py b/lib/hawat/blueprints/networks/forms.py
index d3d7cafc4365846f1e5c45da6af12aabe5db2e6d..0221868fc27d11a5dcbc7530cef1b20b7694993e 100644
--- a/lib/hawat/blueprints/networks/forms.py
+++ b/lib/hawat/blueprints/networks/forms.py
@@ -30,8 +30,7 @@ from flask_babel import lazy_gettext
 #
 import vial.const
 import vial.forms
-
-import hawat.db
+import vial.db
 
 from mentat.datatype.sqldb import GroupModel
 
@@ -40,7 +39,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 class BaseNetworkForm(vial.forms.BaseItemForm):
diff --git a/lib/hawat/blueprints/pdnsr/__init__.py b/lib/hawat/blueprints/pdnsr/__init__.py
index 5ff3c4d0b8d388a04b344a4e26b218c06b82cd1e..317906751ce0b320a3027cffa27967cb3b043d29 100644
--- a/lib/hawat/blueprints/pdnsr/__init__.py
+++ b/lib/hawat/blueprints/pdnsr/__init__.py
@@ -61,7 +61,7 @@ from flask_babel import lazy_gettext
 import mentat.services.pdnsr
 from mentat.const import tr_
 
-import hawat.db
+import vial.db
 import vial.const
 import vial.acl
 from vial.app import VialBlueprint
diff --git a/lib/hawat/blueprints/reports/forms.py b/lib/hawat/blueprints/reports/forms.py
index 2b31c12fa897feeaa822e625d14eab50d68d2d26..2c085e40084b248415f3688c94bac9805e2e96b9 100644
--- a/lib/hawat/blueprints/reports/forms.py
+++ b/lib/hawat/blueprints/reports/forms.py
@@ -26,8 +26,7 @@ from flask_babel import lazy_gettext
 
 import vial.const
 import vial.forms
-
-import hawat.db
+import vial.db
 
 import mentat.const
 from mentat.datatype.sqldb import UserModel, GroupModel
@@ -39,11 +38,11 @@ def get_available_groups():
     """
     # In case current user is administrator provide list of all groups.
     if flask_login.current_user.has_role(vial.const.ROLE_ADMIN):
-        return hawat.db.db_query(GroupModel).\
+        return vial.db.db_query(GroupModel).\
             order_by(GroupModel.name).\
             all()
     # Otherwise provide only list of groups current user is member of.
-    return hawat.db.db_query(GroupModel).\
+    return vial.db.db_query(GroupModel).\
         filter(GroupModel.members.any(UserModel.id == flask_login.current_user.id)).\
         order_by(GroupModel.name).\
         all()
diff --git a/lib/hawat/blueprints/settings_reporting/forms.py b/lib/hawat/blueprints/settings_reporting/forms.py
index 12b5dc9e2eb47f5d835ae4410dc8753d25e6a09d..a68003fc1e3c3003c81dfde6309e76dc0e375d98 100644
--- a/lib/hawat/blueprints/settings_reporting/forms.py
+++ b/lib/hawat/blueprints/settings_reporting/forms.py
@@ -33,8 +33,7 @@ from flask_babel import gettext, lazy_gettext
 #
 import vial.const
 import vial.forms
-
-import hawat.db
+import vial.db
 
 import mentat.const
 from mentat.datatype.sqldb import GroupModel
@@ -47,7 +46,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 def get_available_locales():
diff --git a/lib/hawat/blueprints/timeline/forms.py b/lib/hawat/blueprints/timeline/forms.py
index aecdfe1a4f8facff0688ecda1efe054f0b8a0480..d23ff041a662ba00e8414144ed464cb479259d30 100644
--- a/lib/hawat/blueprints/timeline/forms.py
+++ b/lib/hawat/blueprints/timeline/forms.py
@@ -26,7 +26,7 @@ from flask_babel import lazy_gettext
 
 import vial.const
 import vial.forms
-import hawat.db
+import vial.db
 from mentat.datatype.sqldb import GroupModel
 
 
@@ -34,7 +34,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 class SimpleTimelineSearchForm(flask_wtf.FlaskForm):
diff --git a/lib/hawat/blueprints/users/forms.py b/lib/hawat/blueprints/users/forms.py
index 73d055a87efd2f32664bf0b826fc79fca8a87cc2..922f029cca4f6318fa10f4e9f8ed3cd88fc84101 100644
--- a/lib/hawat/blueprints/users/forms.py
+++ b/lib/hawat/blueprints/users/forms.py
@@ -30,7 +30,7 @@ from flask_babel import gettext, lazy_gettext
 #
 # Custom modules.
 #
-import hawat.db
+import vial.db
 import vial.forms
 from mentat.datatype.sqldb import UserModel, GroupModel
 
@@ -40,7 +40,7 @@ def check_id_existence(form, field):
     Callback for validating user logins during account create action.
     """
     try:
-        hawat.db.db_get().session.query(UserModel).\
+        vial.db.db_get().session.query(UserModel).\
             filter(UserModel.login == field.data).\
             one()
     except sqlalchemy.orm.exc.NoResultFound:
@@ -54,7 +54,7 @@ def check_id_uniqueness(form, field):
     """
     Callback for validating user logins during account update action.
     """
-    user = hawat.db.db_get().session.query(UserModel).\
+    user = vial.db.db_get().session.query(UserModel).\
         filter(UserModel.login == field.data).\
         filter(UserModel.id != form.db_item_id).\
         all()
@@ -67,7 +67,7 @@ def get_available_groups():
     """
     Query the database for list of all available groups.
     """
-    return hawat.db.db_query(GroupModel).order_by(GroupModel.name).all()
+    return vial.db.db_query(GroupModel).order_by(GroupModel.name).all()
 
 
 class BaseUserAccountForm(vial.forms.BaseItemForm):
diff --git a/lib/hawat/blueprints/whois/__init__.py b/lib/hawat/blueprints/whois/__init__.py
index 46f38bbaf43c9a1fe09d742b342edc8fafb95e6d..7d43ba843078c9beb8b10a16e5ba129a9b200dfe 100644
--- a/lib/hawat/blueprints/whois/__init__.py
+++ b/lib/hawat/blueprints/whois/__init__.py
@@ -69,7 +69,7 @@ import mentat.services.whois
 from mentat.const import tr_
 
 import hawat.const
-import hawat.db
+import vial.db
 import vial.const
 import vial.acl
 from vial.app import VialBlueprint
diff --git a/lib/hawat/db.py b/lib/hawat/db.py
deleted file mode 100644
index aa8f0f165658e48857003f8f88aa695b57913c96..0000000000000000000000000000000000000000
--- a/lib/hawat/db.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#-------------------------------------------------------------------------------
-# This file is part of Mentat system (https://mentat.cesnet.cz/).
-#
-# Copyright (C) since 2011 CESNET, z.s.p.o (http://www.ces.net/)
-# Use of this source is governed by the MIT license, see LICENSE file.
-#-------------------------------------------------------------------------------
-
-
-"""
-This module contains very thin database abstraction layer and access functions for
-Hawat. It is a wrapper around `SQLAlchemy <http://www.sqlalchemy.org/>`__ library.
-"""
-
-
-__author__ = "Jan Mach <jan.mach@cesnet.cz>"
-__credits__ = "Pavel Kácha <pavel.kacha@cesnet.cz>, Andrea Kropáčová <andrea.kropacova@cesnet.cz>"
-
-
-#
-# Flask related modules.
-#
-import flask_sqlalchemy
-
-#
-# Custom modules.
-#
-import mentat.datatype.sqldb
-import mentat.services.sqlstorage
-from mentat.const import CKEY_CORE_DATABASE, CKEY_CORE_DATABASE_SQLSTORAGE
-from hawat.const import CFGKEY_MENTAT_CORE
-
-
-_DB = None
-
-
-def db_settings(app):
-    """
-    Return database settings from Mentat core configurations.
-
-    :return: Database settings.
-    :rtype: dict
-    """
-    return app.config[CFGKEY_MENTAT_CORE][CKEY_CORE_DATABASE][CKEY_CORE_DATABASE_SQLSTORAGE]
-
-
-def db_get():
-    """
-    Opens a new database connection if there is none yet for the
-    current application context.
-
-    :return: Database storage handler.
-    :rtype: flask_sqlalchemy.SQLAlchemy
-    """
-    global _DB  # pylint: disable=locally-disabled,global-statement
-    if not _DB:
-        _DB = flask_sqlalchemy.SQLAlchemy(
-            metadata    = mentat.datatype.sqldb.MODEL.metadata,
-            model_class = mentat.datatype.sqldb.MODEL,
-            query_class = mentat.services.sqlstorage.RetryingQuery
-        )
-        mentat.services.sqlstorage.set_manager(StorageServiceManager())
-
-    return _DB
-
-
-def db_session():
-    """
-    Convenience method.
-    """
-    return db_get().session
-
-
-def db_query(dbmodel):
-    """
-    Convenience method.
-    """
-    return db_get().session.query(dbmodel)
-
-
-class StorageService:  # pylint: disable=locally-disabled,too-few-public-methods
-    """
-    This is a thin proxy class, that can be used in place of :py:class:`mentat.services.sqlstorage.StorageService`.
-    This is necessary for certain services like :py:mod:`mentat.services.whois`, that require
-    some access to database storage service and are hardcoded to use :py:class:`mentat.services.sqlstorage.StorageService`.
-    This is necessary when using the services from Flask framework, because there
-    is another storage service management feature in place using the py:mod:`flask_sqlalchemy`
-    module.
-    """
-    @property
-    def session(self):
-        """
-        Thin proxy property for retrieving reference to current database session.
-        """
-        return db_session()
-
-
-class StorageServiceManager:  # pylint: disable=locally-disabled,too-few-public-methods
-    """
-    This is a thin proxy class, that can be used in place of :py:class:`mentat.services.sqlstorage.StorageServiceManager`.
-    This is necessary for certain services like :py:mod:`mentat.services.whois`, that require
-    some access to database storage service manager and are hardcoded to use :py:class:`mentat.services.sqlstorage.StorageServiceManager`.
-    This is necessary when using the services from Flask framework, because there
-    is another storage service management feature in place using the py:mod:`flask_sqlalchemy`
-    module.
-    """
-    @staticmethod
-    def service():
-        """
-        Thin proxy property for retrieving reference to current database storage
-        service.
-        """
-        return StorageService()