diff --git a/planetstack/openstack_observer/backend.py b/planetstack/openstack_observer/backend.py
index fe623ca..7b67494 100644
--- a/planetstack/openstack_observer/backend.py
+++ b/planetstack/openstack_observer/backend.py
@@ -1,6 +1,6 @@
 import threading
 import time
-from observer.event_loop import PlanetStackObserver
+from observer.event_loop import XOSObserver
 from observer.event_manager import EventListener
 from util.logger import Logger, logging
 from model_policy import run_policy
@@ -11,7 +11,7 @@
     
     def run(self):
             # start the openstack observer
-            observer = PlanetStackObserver()
+            observer = XOSObserver()
             observer_thread = threading.Thread(target=observer.run)
             observer_thread.start()
             
diff --git a/planetstack/openstack_observer/deleter.py b/planetstack/openstack_observer/deleter.py
index f7d459d..93fa572 100644
--- a/planetstack/openstack_observer/deleter.py
+++ b/planetstack/openstack_observer/deleter.py
@@ -9,7 +9,7 @@
                 pass
 
 	def call(self, pk, model_dict):
-		# Fetch object from PlanetStack db and delete it
+		# Fetch object from XOS db and delete it
 		pass
 
 	def __call__(self, *args, **kwargs):
diff --git a/planetstack/openstack_observer/event_loop.py b/planetstack/openstack_observer/event_loop.py
index 752cb86..0da51b8 100644
--- a/planetstack/openstack_observer/event_loop.py
+++ b/planetstack/openstack_observer/event_loop.py
@@ -64,7 +64,7 @@
 				ig=[k]
 	return ig
 
-class PlanetStackObserver:
+class XOSObserver:
 	#sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivilege,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
 	sync_steps = []
 
diff --git a/planetstack/openstack_observer/openstacksyncstep.py b/planetstack/openstack_observer/openstacksyncstep.py
index 51b510f..cc568f8 100644
--- a/planetstack/openstack_observer/openstacksyncstep.py
+++ b/planetstack/openstack_observer/openstacksyncstep.py
@@ -3,7 +3,7 @@
 from syncstep import SyncStep
 
 class OpenStackSyncStep(SyncStep):
-    """ PlanetStack Sync step for copying data to OpenStack 
+    """ XOS Sync step for copying data to OpenStack 
     """ 
     
     def __init__(self, **args):
diff --git a/planetstack/openstack_observer/syncstep.py b/planetstack/openstack_observer/syncstep.py
index 0541c67..4ffa211 100644
--- a/planetstack/openstack_observer/syncstep.py
+++ b/planetstack/openstack_observer/syncstep.py
@@ -29,7 +29,7 @@
     pass
 
 class SyncStep(object):
-    """ A PlanetStack Sync step. 
+    """ An XOS Sync step. 
 
     Attributes:
         psmodel        Model name the step synchronizes 
@@ -40,7 +40,7 @@
         try:
             sync_config_dir = Config().sync_config_dir
         except:
-            sync_config_dir = '/etc/planetstack/sync'
+            sync_config_dir = '/etc/planetstack/sync'     # XXX TODO: update path
         prop_config_path = '/'.join(sync_config_dir,self.name,prop)
         return open(prop_config_path).read().rstrip()
 
@@ -48,7 +48,7 @@
         """Initialize a sync step
            Keyword arguments:
                    name -- Name of the step
-                provides -- PlanetStack models sync'd by this step
+                provides -- XOS models sync'd by this step
         """
         dependencies = []
         self.driver = args.get('driver')
diff --git a/planetstack/openstack_observer/toposort.py b/planetstack/openstack_observer/toposort.py
index 5170f20..6839861 100644
--- a/planetstack/openstack_observer/toposort.py
+++ b/planetstack/openstack_observer/toposort.py
@@ -62,7 +62,7 @@
 	return order + noorder
 
 def main():
-	graph_file=open('planetstack.deps').read()
+	graph_file=open('xos.deps').read()
 	g = json.loads(graph_file)
 	print toposort(g)
 
