diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py
index 9ca9f663eb19823be1e89bd5a9df04ad2fed40c2..c368451ebcf95c187952a87f1a9b01492032f75e 100644
--- a/ckanext/odsh/plugin.py
+++ b/ckanext/odsh/plugin.py
@@ -46,46 +46,12 @@ class OdshPlugin(p.SingletonPlugin, DefaultTranslation, tk.DefaultDatasetForm):
     def get_blueprint(self):
         log.debug("OdshPlugin::get_blueprint")
 
-        # Default
-        bp_default = default.blueprint
-        rules = [
-            ('/info_page', 'info_page', default.info_page),
-            ('/home', 'start', default.start),
-            ('/robots.txt', 'robots_txt', default.robots_txt),
-            ('/not_found', 'not_found', default.not_found), ]
-        for rule in rules:
-            bp_default.add_url_rule(*rule)
-
-        # DCAT
-        # if tk.asbool(tk.config.get('ckanext.dcat.enable_rdf_endpoints', True)):
-        #     helpers_odsh.odsh_remove_route(map, 'dcat_catalog')
-        #     bp_default.add_url_rule('/catalog.<any("xml", "rdf", "n3", "ttl", "jsonld"):_format>', view_func=dcat_view.read_catalog, defaults={'_format': 'xml'}, methods=['GET'])
-
-        # Package
-        # bp_package = package.blueprint
-        # rules = [
-        #     ('/dataset/<id>/resource/<resource_id>', 'redirect_dataset_resource', package.redirect_dataset_resource), ]
-        # for rule in rules:
-        #     bp_package.add_url_rule(*rule)
-
-        # User
-        bp_user = user.blueprint
-        bp_user.add_url_rule(u'/user', endpoint='user_index',
-                             view_func=user.index, strict_slashes=False)
-        # bp_user.add_url_rule(u'/user/register', view_func=user.register)
-
-        # Harvest
-        bp_harvest = harvest.blueprint
-        bp_harvest.add_url_rule(u'/harvest', view_func=harvest.search, strict_slashes=False)
-        bp_harvest.add_url_rule(u'/harvest/new', view_func=harvest.new)
-        bp_harvest.add_url_rule(u'/harvest/<id>', view_func=harvest.read)
-        bp_harvest.add_url_rule(u'/harvest/about/<id>', view_func=harvest.about)
-
-        # Feed
-        bp_feed = feed.blueprint
-        bp_feed.add_url_rule(u'/feeds/custom.atom', methods=[u'GET'], view_func=feed.custom)
-
-        return [bp_default, bp_user, bp_harvest, bp_feed] # bp_package
+        bp_default = default.get_blueprint()
+        bp_user = user.get_blueprint()
+        bp_harvest = harvest.get_blueprint()
+        bp_feed = feed.get_blueprint()
+
+        return [bp_default, bp_user, bp_harvest, bp_feed]
 
     # IActions
 
diff --git a/ckanext/odsh/views/default.py b/ckanext/odsh/views/default.py
index 61333f696c5da067c3d18501e15261f01e9aea2b..f1d846d98831bd12d93e0cf4552bf96bfe8a5f4c 100644
--- a/ckanext/odsh/views/default.py
+++ b/ckanext/odsh/views/default.py
@@ -24,3 +24,14 @@ def robots_txt():
     resp = make_response(base.render('home/robots.txt'))
     resp.headers['Content-Type'] = "text/plain; charset=utf-8"
     return resp
+
+rules = [
+    ('/info_page', 'info_page', info_page),
+    ('/home', 'start', start),
+    ('/robots.txt', 'robots_txt', robots_txt),
+    ('/not_found', 'not_found', not_found), ]
+for rule in rules:
+    blueprint.add_url_rule(*rule)
+
+def get_blueprint():
+    return blueprint
\ No newline at end of file
diff --git a/ckanext/odsh/views/feed.py b/ckanext/odsh/views/feed.py
index 2305e2f3b0ea9b55143f045cd3993fd366ab5d27..e438830a98980972ce60ab3925334489eb9ffc35 100644
--- a/ckanext/odsh/views/feed.py
+++ b/ckanext/odsh/views/feed.py
@@ -65,3 +65,8 @@ def custom():
                           feed_guid=ckan_feed._create_atom_id(atom_url),
                           feed_url=feed_url,
                           navigation_urls=navigation_urls)
+
+blueprint.add_url_rule(u'/feeds/custom.atom', methods=[u'GET'], view_func=custom)
+
+def get_blueprint():
+    return blueprint
\ No newline at end of file
diff --git a/ckanext/odsh/views/harvest.py b/ckanext/odsh/views/harvest.py
index c9c3d78813212be6e2c161cd399227322255a3b4..3f33337b37c539db168ac50eef12b6242860ccbd 100644
--- a/ckanext/odsh/views/harvest.py
+++ b/ckanext/odsh/views/harvest.py
@@ -40,3 +40,11 @@ def about(id):
     if not is_sysadmin:
         toolkit.abort(403)
     return dataset.about(id)
+
+blueprint.add_url_rule(u'/harvest', view_func=search, strict_slashes=False)
+blueprint.add_url_rule(u'/harvest/new', view_func=new)
+blueprint.add_url_rule(u'/harvest/<id>', view_func=read)
+blueprint.add_url_rule(u'/harvest/about/<id>', view_func=about)
+
+def get_blueprint():
+    return blueprint
\ No newline at end of file
diff --git a/ckanext/odsh/views/user.py b/ckanext/odsh/views/user.py
index 7963a52e8be5d606e1f60b66bf2d62be42d900c4..e55338bd26917a69d19e445802f590e2db84d716 100644
--- a/ckanext/odsh/views/user.py
+++ b/ckanext/odsh/views/user.py
@@ -33,3 +33,10 @@ def read(id=None):
     if not g.user:
         return ckan_user_view.login()
     return ckan_user_view.read(id)
+
+blueprint.add_url_rule(u'/user', endpoint='user_index',
+                             view_func=index, strict_slashes=False)
+# blueprint.add_url_rule(u'/user/register', view_func=user.register)
+
+def get_blueprint():
+    return blueprint
\ No newline at end of file