diff --git a/planetstack/model_policies/model_policy_Site.py b/planetstack/model_policies/model_policy_Site.py
index a49c868..7d96264 100644
--- a/planetstack/model_policies/model_policy_Site.py
+++ b/planetstack/model_policies/model_policy_Site.py
@@ -1,6 +1,6 @@
-from core.models import *
 
 def handle(site):
+    from core.models import Controller, ControllerSite 
     # make sure site has a ControllerSite record for each controller
     ctrl_sites = ControllerSite.objects.filter(site=site)
     existing_controllers = [cs.controller for cs in ctrl_sites]
diff --git a/planetstack/model_policies/model_policy_Slice.py b/planetstack/model_policies/model_policy_Slice.py
index 37129a3..cc9f2b0 100644
--- a/planetstack/model_policies/model_policy_Slice.py
+++ b/planetstack/model_policies/model_policy_Slice.py
@@ -8,7 +8,7 @@
     all_controllers = Controller.objects.all() 
     for controller in all_controllers:
         if controller not in existing_controllers:
-            sd = ControllerSlice(slice=slice, controller=controller_controller)
+            sd = ControllerSlice(slice=slice, controller=controller)
             sd.save()
 
     # make sure slice has at least 1 public and 1 private networkd
diff --git a/planetstack/model_policies/model_policy_User.py b/planetstack/model_policies/model_policy_User.py
index 5e2adad..b7b16ad 100644
--- a/planetstack/model_policies/model_policy_User.py
+++ b/planetstack/model_policies/model_policy_User.py
@@ -1,30 +1,12 @@
-from core.models import *
-
 def handle(user):
-	from core.models import Controller, ControllerSite, ControllerUser
-	from collections import defaultdict
-	ctrl_site_deployments = ControllerSite.objects.all()
-	controller_lookup = defaultdict(list)
-	for ctrl_site_deployment in ctrl_site_deployments:
-		controller_site_lookup[ctrl_site_deployment.site_deployment].append(ctrl_site_deployment)
-
-	controller_user_lookup = defaultdict(list)
-	for controller_user in ControllerUser.objects.all():
-		controller_user_lookup[controller_user.user].append(controller_user.controller)
-   
-	if user.is_admin:
-		# admins should have an account at all controllers
-		expected_controllers = controllers
-	else:
-		# normal users should have an account at their site's controllers
-		#expected_controllers = controller_site_lookup[user.site]
-		# users are added to all controllers for now
-		expected_controllers = controllers        
-
-	for expected_controller in expected_controllers:
-		if not user in controller_user_lookup or \
-		  expected_controller not in controller_user_lookup[user]: 
-			# add new record
-			ud = ControllerUser(user=user, controller=expected_controller)
-			ud.save()    
+    from core.models import Controller, ControllerSite, ControllerUser
+    from collections import defaultdict
+    
+    controller_users = ControllerUser.objects.filter(user=user)
+    existing_controllers = [cu.controller for cu in controller_users]
+    all_controllers = Controller.objects.all()
+    for controller in all_controllers:
+        if controller not in existing_controllers:
+            ctrl_user = ControllerUser(controller=controller, user=user)
+            ctrl_user.save()  
 
