property to get client from library, function to sanitize account names
diff --git a/planetstack/hpc_observer/hpclib.py b/planetstack/hpc_observer/hpclib.py
index 97e2a30..f6e875b 100644
--- a/planetstack/hpc_observer/hpclib.py
+++ b/planetstack/hpc_observer/hpclib.py
@@ -1,5 +1,6 @@
 import os
 import base64
+import string
 import sys
 import xmlrpclib
 
@@ -53,6 +54,17 @@
         self.onev = APIHelper(onev, onev_auth)
 
 class HpcLibrary:
+    def __init__(self):
+        self._client = None
+
+    def make_account_name(self, x):
+        x=x.lower()
+        y = ""
+        for c in x:
+            if (c in (string.lowercase + string.digits)):
+                y = y + c
+        return y
+
     def extract_slice_info(self, service):
         """ Produce a dict that describes the slices for the CMI
 
@@ -143,15 +155,20 @@
 PUPPET_MASTER_PORT="8140"
 """ % mapping)
 
+    @property
+    def client(self):
+        if self._client is None:
+            self._client = CmiClient(self.get_cmi_hostname())
+        return self._client
+
 if __name__ == '__main__':
     print "testing write_slices_file"
     lib = HpcLibrary()
     lib.write_slices_file()
 
     print "testing API connection"
-    client = CmiClient(lib.get_cmi_hostname())
-    client.cob.GetNewObjects()
-    client.onev.ListAll("CDN")
+    lib.client.cob.GetNewObjects()
+    lib.client.onev.ListAll("CDN")
 
 
 
diff --git a/planetstack/hpc_observer/steps/sync_hpcservices.py b/planetstack/hpc_observer/steps/sync_hpcservices.py
index a747cea..a4c9e77 100644
--- a/planetstack/hpc_observer/steps/sync_hpcservices.py
+++ b/planetstack/hpc_observer/steps/sync_hpcservices.py
@@ -21,6 +21,10 @@
     provides=[HpcService]
     requested_interval=0
 
+    def __init__(self, **args):
+        SyncStep.__init__(self, **args)
+        HpcLibrary.__init__(self)
+
     def fetch_pending(self):
         return HpcService.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))