diff --git a/planetstack/core/migrations/0001_initial.py b/planetstack/core/migrations/0001_initial.py
index de0de8a..8e1ec76 100644
--- a/planetstack/core/migrations/0001_initial.py
+++ b/planetstack/core/migrations/0001_initial.py
@@ -211,23 +211,6 @@
             bases=(models.Model,),
         ),
         migrations.CreateModel(
-            name='ControllerSiteDeployments',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
-                ('updated', models.DateTimeField(default=django.utils.timezone.now, auto_now=True)),
-                ('enacted', models.DateTimeField(default=None, null=True, blank=True)),
-                ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
-                ('deleted', models.BooleanField(default=False)),
-                ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, blank=True)),
-                ('controller', models.ForeignKey(related_name=b'controllersitedeployments', to='core.Controller')),
-            ],
-            options={
-                'abstract': False,
-            },
-            bases=(models.Model,),
-        ),
-        migrations.CreateModel(
             name='ControllerSlices',
             fields=[
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
@@ -829,6 +812,7 @@
                 ('enacted', models.DateTimeField(default=None, null=True, blank=True)),
                 ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
                 ('deleted', models.BooleanField(default=False)),
+                ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, blank=True)),
                 ('availability_zone', models.CharField(help_text=b'OpenStack availability zone', max_length=200, null=True, blank=True)),
                 ('controller', models.ForeignKey(related_name=b'sitedeployments', blank=True, to='core.Controller', null=True)),
                 ('deployment', models.ForeignKey(related_name=b'sitedeployments', to='core.Deployment')),
diff --git a/planetstack/core/models/site.py b/planetstack/core/models/site.py
index c7516d8..c61f5eb 100644
--- a/planetstack/core/models/site.py
+++ b/planetstack/core/models/site.py
@@ -316,15 +316,6 @@
     deployment = models.ForeignKey(Deployment,related_name='sitedeployments')
     controller = models.ForeignKey(Controller, null=True, blank=True, related_name='sitedeployments')
     availability_zone = models.CharField(max_length=200, null=True, blank=True, help_text="OpenStack availability zone")
-
-    def __unicode__(self):  return u'%s %s' % (self.deployment, self.site)
-
-class ControllerSiteDeployments(PlCoreBase):
-    objects = ControllerLinkManager()
-    deleted_objects = ControllerLinkDeletionManager()
-    
-    controller = models.ForeignKey(Controller, related_name='controllersitedeployments')
-    site_deployment = models.ForeignKey(SiteDeployments, related_name='controllersitedeployments') 
     tenant_id = models.CharField(null=True, blank=True, max_length=200, help_text="Keystone tenant id")
 
-    def __unicode__(self):  return u'%s %s' % (self.controller, self.site_deployment)
+    def __unicode__(self):  return u'%s %s' % (self.deployment, self.site)
diff --git a/planetstack/model_policies/model_policy_Site.py b/planetstack/model_policies/model_policy_Site.py
deleted file mode 100644
index 5b713e1..0000000
--- a/planetstack/model_policies/model_policy_Site.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from core.models import *
-
-def handle(site):
-    """ 
-    ensure ControllerSiteDeployment object exists for each of the site's SiteDeployment objects
-    """
-    from core.models import SiteDeployments, Controller, ControllerSiteDeployments 
-    from collections import defaultdict
-    
-    # get current controller site deployments	
-    ctrl_site_deployments = ControllerSiteDeployments.objects.filter(site_deployment__site = site)
-    ctrl_site_deployments_dict = {} 
-    for ctrl_site_depl in controller_site_deployments:
-        ctrl_site_deployments_dict[ctrl_site_depl.site_deployment] = ctrl_cite_depl
-
-    # get current site deployments
-    site_deployments = SiteDeployments.objects.filter(site=site)
- 
-    # for each site deployment, if there is no controller site deployment create one 
-    for site_deployment in site_deployments:
-        if site_deployment not in ctrl_site_deployments_dict:
-            ctrl_site_deployment = ControllerSiteDeployment(
-                site_deployment=site_deployment,
-                controller=site_deployment.controller,
-            )
-            ctrl_site_deployment.save()         
diff --git a/planetstack/openstack_observer/steps/sync_controller_site_deployments.py b/planetstack/openstack_observer/steps/sync_controller_site_deployments.py
index d0e4a7f..a923608 100644
--- a/planetstack/openstack_observer/steps/sync_controller_site_deployments.py
+++ b/planetstack/openstack_observer/steps/sync_controller_site_deployments.py
@@ -8,51 +8,51 @@
 
 class SyncControllerSiteDeployments(OpenStackSyncStep):
     requested_interval=0
-    provides=[ControllerSiteDeployments, SiteDeployments]
+    provides=[SiteDeployments]
 
-    def sync_record(self, controller_site_deployment):
+    def sync_record(self, site_deployment):
 
 	template = os_template_env.get_template('sync_controller_site_deployments.yaml')
-	tenant_fields = {'endpoint':controller_site_deployment.controller.auth_url,
-		         'admin_user': controller_site_deployment.controller.admin_user,
-		         'admin_password': controller_site_deployment.controller.admin_password,
-		         'admin_tenant': controller_site_deployment.controller.admin_tenant,
-	                 'ansible_tag': '%s@%s'%(controller_site_deployment.site_deployment.site.login_base,controller_site_deployment.site_deployment.deployment.name), # name of ansible playbook
-		         'tenant': controller_site_deployment.site_deployment.site.login_base,
-		         'tenant_description': controller_site_deployment.site_deployment.site.name}
+	tenant_fields = {'endpoint':site_deployment.controller.auth_url,
+		         'admin_user': site_deployment.controller.admin_user,
+		         'admin_password': site_deployment.controller.admin_password,
+		         'admin_tenant': site_deployment.controller.admin_tenant,
+	                 'ansible_tag': '%s@%s'%(site_deployment.site.login_base,site_deployment.site_deployment.deployment.name), # name of ansible playbook
+		         'tenant': site_deployment.site.login_base,
+		         'tenant_description': site_deployment.site.name}
 
 	rendered = template.render(tenant_fields)
-	res = run_template('sync_controller_site_deployments.yaml', tenant_fields, path='site_deployments')
+	res = run_template('sync_controller_site_deployments.yaml', tenant_fields, path='controller_site_deployments')
 
 	if (len(res)==1):
-		controller_site_deployment.tenant_id = res[0]['id']
-        	controller_site_deployment.save()
+		site_deployment.tenant_id = res[0]['id']
+        	site_deployment.save()
 	elif (len(res)):
 		raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
 	else:
 		raise Exception('Could not create or update user %s'%tenant_fields['tenant'])
             
-    def delete_record(self, controller_site_deployment):
-	if controller_site_deployment.tenant_id:
-            driver = self.driver.admin_driver(controller=controller_site_deployment.controller)
-            driver.delete_tenant(controller_site_deployment.tenant_id)
+    def delete_record(self, site_deployment):
+	if site_deployment.tenant_id:
+            driver = self.driver.admin_driver(controller=site_deployment.controller)
+            driver.delete_tenant(site_deployment.tenant_id)
 
 	"""
         Ansible does not support tenant deletion yet
 
 	import pdb
 	pdb.set_trace()
-        template = os_template_env.get_template('delete_controller_site_deployments.yaml')
-	tenant_fields = {'endpoint':controller_site_deployment.controller.auth_url,
-		         'admin_user': controller_site_deployment.controller.admin_user,
-		         'admin_password': controller_site_deployment.controller.admin_password,
+        template = os_template_env.get_template('delete_site_deployments.yaml')
+	tenant_fields = {'endpoint':site_deployment.controller.auth_url,
+		         'admin_user': site_deployment.controller.admin_user,
+		         'admin_password': site_deployment.controller.admin_password,
 		         'admin_tenant': 'admin',
-	                 'ansible_tag': 'site_deployments/%s@%s'%(controller_site_deployment.site_deployment.site.login_base,controller_site_deployment.site_deployment.deployment.name), # name of ansible playbook
-		         'tenant': controller_site_deployment.site_deployment.site.login_base,
+	                 'ansible_tag': 'site_deployments/%s@%s'%(site_deployment.site_deployment.site.login_base,site_deployment.site_deployment.deployment.name), # name of ansible playbook
+		         'tenant': site_deployment.site_deployment.site.login_base,
 		         'delete': True}
 
 	rendered = template.render(tenant_fields)
-	res = run_template('sync_controller_site_deployments.yaml', tenant_fields)
+	res = run_template('sync_site_deployments.yaml', tenant_fields)
 
 	if (len(res)!=1):
 		raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
