diff --git a/djangoldp/admin.py b/djangoldp/admin.py
index 94fa93d75594ae814d3efef9ac97de5c3fc59857..dffdc236ff97205748b9dcaa3626bbb1f35adcfd 100644
--- a/djangoldp/admin.py
+++ b/djangoldp/admin.py
@@ -23,4 +23,4 @@ for class_name in model_classes:
     if not admin.site.is_registered(model_class):
         admin.site.register(model_class)
 
-admin.site.register(LDPSource)
+# admin.site.register(LDPSource)
diff --git a/djangoldp/models.py b/djangoldp/models.py
index ca8bb3f3cf20c89cb7233498e98314484f78976d..493f3e34ae53edade8f233e2ebec8aaceefa3935 100644
--- a/djangoldp/models.py
+++ b/djangoldp/models.py
@@ -116,7 +116,7 @@ class Model(models.Model):
         return [{'mode': {'@type': name.split('_')[0]}} for name in permissions]
 
 
-class LDPSource(models.Model):
+class LDPSource(Model):
     container = models.URLField()
     federation = models.CharField(max_length=255)
 
diff --git a/djangoldp/urls.py b/djangoldp/urls.py
index 31aa83129a4d34905f582f9c25b4a92f7761701b..39b9e3518bc8c10bb2b14701591b4549063679f8 100644
--- a/djangoldp/urls.py
+++ b/djangoldp/urls.py
@@ -4,8 +4,8 @@ from django.conf import settings
 from django.conf.urls import url, include
 
 from djangoldp.models import LDPSource, Model
-from djangoldp.views import LDPSourceViewSet
 from djangoldp.permissions import LDPPermissions
+from djangoldp.views import LDPSourceViewSet
 
 
 def __clean_path(path):
@@ -17,7 +17,8 @@ def __clean_path(path):
 
 
 urlpatterns = [
-    url(r'^sources/', LDPSourceViewSet.urls(model=LDPSource)),
+    url(r'^sources/(?P<federation>\w+)/', LDPSourceViewSet.urls(model=LDPSource, fields=['federation', 'container'],
+                                                                permission_classes=[LDPPermissions], )),
 ]
 
 for package in settings.DJANGOLDP_PACKAGES:
diff --git a/djangoldp/views.py b/djangoldp/views.py
index eb8ecad93c8bb35808d9a99c29c697d7ebd429a0..3879cd1f198a69f26a9c75abed18b129d8c11af8 100644
--- a/djangoldp/views.py
+++ b/djangoldp/views.py
@@ -278,24 +278,5 @@ class LDPSourceViewSet(LDPViewSet):
     model = LDPSource
     federation = None
 
-    @classonlymethod
-    def urls(cls, **kwargs):
-        try:
-            return include([url(name + '/', super(LDPSourceViewSet, cls).urls(federation=name, **kwargs))
-                            for name in LDPSource.objects.order_by().values_list('federation', flat=True).distinct()])
-        except (OperationalError, ProgrammingError):  # for the case where the table doesn't exist
-            return include([])
-
     def get_queryset(self, *args, **kwargs):
-        return super().get_queryset(*args, **kwargs).filter(federation=self.federation)
-
-
-@receiver([post_save, post_delete], sender=LDPSource)
-def reload_sources_module(sender, instance, **kwargs):
-    urlconf = settings.ROOT_URLCONF
-    clear_url_caches()
-
-    if 'djangoldp.urls' in sys.modules:
-        reload(sys.modules['djangoldp.urls'])
-    if urlconf in sys.modules:
-        reload(sys.modules[urlconf])
+        return super().get_queryset(*args, **kwargs).filter(federation=self.kwargs['federation'])