diff --git a/planetstack/observer/steps/garbage_collector.py b/planetstack/observer/steps/garbage_collector.py
index 4e0a865..495469f 100644
--- a/planetstack/observer/steps/garbage_collector.py
+++ b/planetstack/observer/steps/garbage_collector.py
@@ -21,7 +21,7 @@
             #self.gc_tenants()
             #self.gc_users()
             #self.gc_user_tenant_roles()
-            #self.gc_slivers()
+            self.gc_slivers()
             #self.gc_sliver_ips()
             #self.gc_external_routes()
             pass 
@@ -184,6 +184,8 @@
             sliver_dict[sliver.instance_id] = sliver
 
         for tenant in self.driver.shell.keystone.tenants.list():
+            if tenant.name in ['admin', 'services']:
+                continue
             # delete sliver that don't have a sliver record
             tenant_driver = self.driver.client_driver(tenant=tenant.name, deployment=sliver.node.deployment)
             for instance in tenant_driver.nova.servers.list():
diff --git a/planetstack/observer/steps/sync_network_deployments.py b/planetstack/observer/steps/sync_network_deployments.py
index f9a4bc0..d1b51d5 100644
--- a/planetstack/observer/steps/sync_network_deployments.py
+++ b/planetstack/observer/steps/sync_network_deployments.py
@@ -7,13 +7,14 @@
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.network import *
 from core.models.slice import *
+from core.models.slice import Sliver
 from util.logger import Logger, logging
 
 logger = Logger(level=logging.INFO)
 
 class SyncNetworkDeployments(OpenStackSyncStep):
     requested_interval = 0 
-    provides=[NetworkDeployments]
+    provides=[Networ, NetworkDeployments, Sliver]
     
     def fetch_pending(self):
         # network deployments are not visible to users. We must ensure
diff --git a/planetstack/observer/steps/sync_sliver_ips.py b/planetstack/observer/steps/sync_sliver_ips.py
index 83e33eb..e2212d1 100644
--- a/planetstack/observer/steps/sync_sliver_ips.py
+++ b/planetstack/observer/steps/sync_sliver_ips.py
@@ -24,5 +24,6 @@
         if not ips:
             return
         sliver.ip = ips[0]['addr']
-        sliver.save()
-        logger.info("saved sliver ip: %s %s" % (sliver, ips[0]))
+        if sliver.ip:
+            sliver.save()
+            logger.info("saved sliver ip: %s %s" % (sliver, ips[0]))
diff --git a/planetstack/observer/steps/sync_slivers.py b/planetstack/observer/steps/sync_slivers.py
index 473b3ac..b576bbc 100644
--- a/planetstack/observer/steps/sync_slivers.py
+++ b/planetstack/observer/steps/sync_slivers.py
@@ -76,13 +76,6 @@
                                'public_key': sliver.creator.public_key}
                 driver.create_keypair(**key_fields)       
  
-            slice_deployments = SliceDeployments.objects.filter(slice = sliver.slice, 
-                                                               deployment = sliver.deploymentNetwork)
-            for slice_deployment in slice_deployments:
-                if slice_deployment.keyname:
-                    keyname = slice_deployment.keyname
-                    break 
- 
             instance = driver.spawn_instance(name=sliver.name,
                                 key_name = keyname,
                                 image_id = image_id,
