diff --git a/hiboo/profile/format.py b/hiboo/format.py
similarity index 100%
rename from hiboo/profile/format.py
rename to hiboo/format.py
diff --git a/hiboo/profile/login.py b/hiboo/profile/login.py
index cd0b9e534aee69253d420a8c37b1b82429634b08..b6a0e242c888f0de1a9ca7fdf9a93e9a2dfc63cb 100644
--- a/hiboo/profile/login.py
+++ b/hiboo/profile/login.py
@@ -1,5 +1,5 @@
-from hiboo.profile import blueprint, forms, formats
-from hiboo import models, utils, security
+from hiboo.profile import blueprint, forms
+from hiboo import models, utils, security, format
 from hiboo import user as hiboo_user
 from passlib import context, hash
 from flask_babel import lazy_gettext as _
@@ -25,7 +25,7 @@ def create(service_uuid, create_for=False, quick=False):
     service = models.Service.query.get(service_uuid) or flask.abort(404)
     status = models.Profile.ACTIVE
     is_admin = flask_login.current_user.is_admin
-    format = formats[service.profile_format]
+    format = format.ProfileFormat.registry[service.profile_format]
     # If the admin passed a user uuid, use that one, otherwise ignore it
     user = hiboo_user.get_user(intent="profile.create_for", create_for=None) if (create_for and is_admin) else flask_login.current_user
     # Check that profile creation is allowed
diff --git a/hiboo/service/forms.py b/hiboo/service/forms.py
index 0d57f7577beb725db5fcfdaf52b86a2e7b683156..cc21824335d1afa6f59897251e257e392e2e2215 100644
--- a/hiboo/service/forms.py
+++ b/hiboo/service/forms.py
@@ -1,7 +1,7 @@
 from wtforms import validators, fields, widgets
 from flask_babel import lazy_gettext as _
 
-from hiboo import models, application, profile
+from hiboo import models, application, format
 
 import flask_wtf
 
@@ -16,8 +16,13 @@ class ServiceForm(flask_wtf.FlaskForm):
         [validators.NumberRange(1, 1000)])
     profile_format = fields.SelectField(_('Profile username format'),
         choices=(
-            [("", _("Default ({})".format(profile.formats[None].message)))] +
-            [(name, format.message.capitalize()) for name, format in profile.formats.items() if name]
+            [("", _("Default ({})".format(
+                format.ProfileFormat.registry[None].message))
+            )] +
+            [(name, format.message.capitalize())
+              for name, format in format.ProfileFormat.registry.items()
+              if name is not None
+            ]
         )
     )
     single_profile = fields.BooleanField(_('Enable single-profile behavior (no custom username, no additional profile)'))