diff --git a/xos/tosca/resources/.DS_Store b/xos/tosca/resources/.DS_Store
new file mode 100644
index 0000000..89f9d26
--- /dev/null
+++ b/xos/tosca/resources/.DS_Store
Binary files differ
diff --git a/xos/tosca/resources/vmmeservice.py b/xos/tosca/resources/vmmeservice.py
new file mode 100644
index 0000000..e6280da
--- /dev/null
+++ b/xos/tosca/resources/vmmeservice.py
@@ -0,0 +1,7 @@
+from services.vmme.models import VMMEService
+from service import XOSService
+
+class XOSVMMEService(XOSService):
+	provides = "tosca.nodes.VMMEService"
+	xos_model = VMMEService
+	copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "private_key_fn", "versionNumber"]
\ No newline at end of file
diff --git a/xos/tosca/resources/vmmetenant.py b/xos/tosca/resources/vmmetenant.py
new file mode 100644
index 0000000..848d2c8
--- /dev/null
+++ b/xos/tosca/resources/vmmetenant.py
@@ -0,0 +1,30 @@
+from services.vmme.models import VMMETenant, VMMEService
+from xosresource import XOSResource
+
+class XOSVMMETenant(XOSResource):
+    provides = "tosca.nodes.VMMETenant"
+    xos_model = VMMETenant
+    copyin_props = ["tenant_message"]  #should this be a list or a tuple (as in exampleservice) ? 
+    name_field = None  #should this be "service_specific id" (as in exampleservice) ? 
+
+    def get_xos_args(self, throw_exception=True):
+        args = super(XOSVMMETenant, self).get_xos_args()
+
+        provider_name = self.get_requirement("tosca.relationships.MemberOfService", throw_exception=throw_exception)
+        if provider_name:
+            args["provider_service"] = self.get_xos_object(VMMEService, throw_exception=throw_exception, name=provider_name)
+
+        return args
+
+    def get_existing_objs(self):
+        args = self.get_xos_args(throw_exception=False)
+        provider_service = args.get("provider", None)
+        if provider_service:
+            return [ self.get_xos_object(provider_service=provider_service) ]
+        return []
+
+    def postprocess(self, obj):
+        pass
+
+    def can_delete(self, obj):
+        return super(XOSVMMETenant, self).can_delete(obj)
