diff --git a/xos/core/models/plcorebase.py b/xos/core/models/plcorebase.py
index 3760fde..b9a2345 100644
--- a/xos/core/models/plcorebase.py
+++ b/xos/core/models/plcorebase.py
@@ -150,6 +150,7 @@
                                       default="0 - Provisioning in progress")
     deleted = models.BooleanField(default=False)
     write_protect = models.BooleanField(default=False)
+    lazy_blocked = models.BooleanField(default=False)
 
     class Meta:
         # Changing abstract to False would require the managers of subclasses of
diff --git a/xos/model_policies/__init__.py b/xos/model_policies/__init__.py
index 8285cb2..a74e7be 100644
--- a/xos/model_policies/__init__.py
+++ b/xos/model_policies/__init__.py
@@ -1,4 +1,5 @@
 from .model_policy_Slice import *
+from .model_policy_Sliver import *
 from .model_policy_User import *
 from .model_policy_Network import *
 from .model_policy_Site import *
diff --git a/xos/model_policies/model_policy_Network.py b/xos/model_policies/model_policy_Network.py
index 8702d21..38d0377 100644
--- a/xos/model_policies/model_policy_Network.py
+++ b/xos/model_policies/model_policy_Network.py
@@ -21,5 +21,5 @@
 	for expected_controller in expected_controllers:
 		if network not in network_deploy_lookup or \
 		  expected_controller not in network_deploy_lookup[network]:
-			nd = ControllerNetwork(network=network, controller=expected_controller)
+			nd = ControllerNetwork(network=network, controller=expected_controller, lazy_blocked=True)
 			nd.save()
diff --git a/xos/model_policy.py b/xos/model_policy.py
index dc14766..3fa7218 100644
--- a/xos/model_policy.py
+++ b/xos/model_policy.py
@@ -53,10 +53,10 @@
         instance.save(update_fields=['policed'])
 
 def run_policy():
-        from core.models import Slice,Controller,Network,User,SlicePrivilege,Site,SitePrivilege,Image,ControllerSlice,ControllerUser,ControllerSite
+        from core.models import Sliver,Slice,Controller,Network,User,SlicePrivilege,Site,SitePrivilege,Image,ControllerSlice,ControllerUser,ControllerSite
 	while (True):
 		start = time.time()
-		models = [Slice, Controller, Network, User, SlicePrivilege, Site, SitePrivilege, Image, ControllerSlice, ControllerSite, ControllerUser]
+		models = [Sliver,Slice, Controller, Network, User, SlicePrivilege, Site, SitePrivilege, Image, ControllerSlice, ControllerSite, ControllerUser]
 		objects = []
 		
 		for m in models:
diff --git a/xos/openstack_observer/steps/sync_controller_networks.py b/xos/openstack_observer/steps/sync_controller_networks.py
index cb758ec..8866e53 100644
--- a/xos/openstack_observer/steps/sync_controller_networks.py
+++ b/xos/openstack_observer/steps/sync_controller_networks.py
@@ -31,13 +31,6 @@
         return cidr
 
 
-    def fetch_pending(self, deleted):
-        if (deleted):
-            return ControllerNetwork.deleted_objects.all()
-        else:
-            return ControllerNetwork.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-
-
     def save_controller_network(self, controller_network):
         network_name = controller_network.network.name
         subnet_name = '%s-%d'%(network_name,controller_network.pk)
diff --git a/xos/openstack_observer/syncstep.py b/xos/openstack_observer/syncstep.py
index fc1a6ec..a4d591d 100644
--- a/xos/openstack_observer/syncstep.py
+++ b/xos/openstack_observer/syncstep.py
@@ -67,7 +67,7 @@
         # for figuring out what objects are outstanding.
         main_obj = self.observes
         if (not deletion):
-            objs = main_obj.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+            objs = main_obj.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None),Q(lazy_blocked=False))
         else:
             objs = main_obj.deleted_objects.all()
 
