diff --git a/src/grpc_client/main.py b/src/grpc_client/main.py
new file mode 100644
index 0000000..b5bfa4f
--- /dev/null
+++ b/src/grpc_client/main.py
@@ -0,0 +1,43 @@
+import functools
+from xosapi.xos_grpc_client import SecureClient, InsecureClient
+from twisted.internet import reactor, defer
+from tosca.resources import RESOURCES
+from xosconfig import Config
+
+LOCAL_CERT = '/Users/teone/Sites/opencord/orchestration/xos-tosca/local_certs.crt'
+
+class GRPC_Client:
+    def __init__(self):
+        self.client = None
+
+        self.grpc_secure_endpoint = Config.get('grpc.secure_endpoint')
+        self.grpc_insecure_endpoint = Config.get('grpc.insecure_endpoint')
+        self.username = Config.get('grpc.admin_username')
+        self.password = Config.get('grpc.admin_password')
+
+    def setup_resources(self, client):
+        print "[XOS-TOSCA] Loading resources"
+        for k in client.xos_orm.all_model_names:
+            RESOURCES[k] = getattr(client.xos_orm, k)
+
+    def start(self):
+        print "[XOS-TOSCA] Connecting to xos-core"
+
+        deferred = defer.Deferred()
+
+        if self.client:
+            self.client.stop()
+            self.client.session_change = True
+
+        if self.username and self.password:
+            # NOTE if we authenticate users given the parameters in the rest request, do we need this?
+            self.client = SecureClient(endpoint=self.grpc_secure_endpoint, username=self.username, password=self.password, cacert=LOCAL_CERT)
+        else:
+            self.client = InsecureClient(endpoint=self.grpc_insecure_endpoint)
+
+        self.client.set_reconnect_callback(functools.partial(self.setup_resources, self.client))
+        self.client.start()
+
+        # TODO can we call this once the client is setted up?
+        reactor.callLater(12, deferred.callback, self.client)
+        return deferred
\ No newline at end of file
