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")
 
 
 
