diff --git a/planetstack/ec2_observer/event_loop.py b/planetstack/ec2_observer/event_loop.py
index 1319fec..fb5f973 100644
--- a/planetstack/ec2_observer/event_loop.py
+++ b/planetstack/ec2_observer/event_loop.py
@@ -16,7 +16,7 @@
 from openstack.driver import OpenStackDriver
 from util.logger import Logger, logging, logger
 #from timeout import timeout
-from planetstack.config import Config
+from planetstack.config import Config, XOS_DIR
 from observer.steps import *
 from syncstep import SyncStep
 from toposort import toposort
@@ -82,7 +82,7 @@
 			if hasattr(Config(), "observer_steps_dir"):
 				step_dir = Config().observer_steps_dir
 			else:
-				step_dir = "/opt/planetstack/observer/steps"
+				step_dir = XOS_DIR + "/observer/steps"
 
 		for fn in os.listdir(step_dir):
 			pathname = os.path.join(step_dir,fn)
@@ -336,7 +336,7 @@
 
 		while True:
 			try:
-				error_map_file = getattr(Config(), "error_map_path", "/opt/planetstack/error_map.txt")
+				error_map_file = getattr(Config(), "error_map_path", XOS_DIR + "/error_map.txt")
 				self.error_mapper = ErrorMapper(error_map_file)
 
 				# Set of whole steps that failed
diff --git a/planetstack/ec2_observer/event_manager.py b/planetstack/ec2_observer/event_manager.py
index 97454ec..190d4eb 100644
--- a/planetstack/ec2_observer/event_manager.py
+++ b/planetstack/ec2_observer/event_manager.py
@@ -1,7 +1,7 @@
 import threading
 import requests, json
 
-from planetstack.config import Config
+from planetstack.config import Config, XOS_DIR
 
 import uuid
 import os
@@ -16,13 +16,13 @@
 def get_random_client_id():
     global random_client_id
 
-    if (random_client_id is None) and os.path.exists("/opt/planetstack/random_client_id"):
+    if (random_client_id is None) and os.path.exists(XOS_DIR + "/random_client_id"):
         # try to use the last one we used, if we saved it
         try:
-            random_client_id = open("/opt/planetstack/random_client_id","r").readline().strip()
+            random_client_id = open(XOS_DIR+"/random_client_id","r").readline().strip()
             print "get_random_client_id: loaded %s" % random_client_id
         except:
-            print "get_random_client_id: failed to read /opt/planetstack/random_client_id"
+            print "get_random_client_id: failed to read " + XOS_DIR + "/random_client_id"
 
     if random_client_id is None:
         random_client_id = base64.urlsafe_b64encode(os.urandom(12))
@@ -30,9 +30,9 @@
 
         # try to save it for later (XXX: could race with another client here)
         try:
-            open("/opt/planetstack/random_client_id","w").write("%s\n" % random_client_id)
+            open(XOS_DIR + "/random_client_id","w").write("%s\n" % random_client_id)
         except:
-            print "get_random_client_id: failed to write /opt/planetstack/random_client_id"
+            print "get_random_client_id: failed to write " + XOS_DIR + "/random_client_id"
 
     return random_client_id
 
diff --git a/planetstack/ec2_observer/steps/sync_images.py b/planetstack/ec2_observer/steps/sync_images.py
index 903b73b..b494c06 100644
--- a/planetstack/ec2_observer/steps/sync_images.py
+++ b/planetstack/ec2_observer/steps/sync_images.py
@@ -1,7 +1,7 @@
 import os
 import base64
 from django.db.models import F, Q
-from planetstack.config import Config
+from planetstack.config import Config, XOS_DIR
 from ec2_observer.syncstep import SyncStep
 from core.models.image import Image
 from ec2_observer.awslib import *
@@ -21,10 +21,10 @@
         new_images = []
 
         try:
-            aws_images = json.loads(open('/opt/planetstack/aws-images').read())
+            aws_images = json.loads(open(XOS_DIR + '/aws-images').read())
         except:
             aws_images = aws_run('ec2 describe-images --owner 099720109477')
-            open('/opt/planetstack/aws-images','w').write(json.dumps(aws_images))
+            open(XOS_DIR + '/aws-images','w').write(json.dumps(aws_images))
 
         
 
