diff --git a/xos/tosca/resources/cdnservice.py b/xos/tosca/resources/cdnservice.py
new file mode 100644
index 0000000..4dbc561
--- /dev/null
+++ b/xos/tosca/resources/cdnservice.py
@@ -0,0 +1,16 @@
+import os
+import pdb
+import sys
+import tempfile
+sys.path.append("/opt/tosca")
+from translator.toscalib.tosca_template import ToscaTemplate
+
+from hpc.models import HpcService
+
+from service import XOSService
+
+class XOSCdnService(XOSService):
+    provides = "tosca.nodes.CDNService"
+    xos_model = HpcService
+    copyin_props = ["view_url", "icon_url"]
+
diff --git a/xos/tosca/resources/service.py b/xos/tosca/resources/service.py
index 12b0464..c331789 100644
--- a/xos/tosca/resources/service.py
+++ b/xos/tosca/resources/service.py
@@ -12,9 +12,7 @@
 class XOSService(XOSResource):
     provides = "tosca.nodes.Service"
     xos_model = Service
-
-    def get_xos_args(self):
-        return {"name": self.nodetemplate.name}
+    copyin_props = ["view_url"]
 
     def postprocess(self, obj):
         for provider_service_name in self.get_requirements("tosca.relationships.TenantOfService"):
@@ -30,21 +28,8 @@
 
                 self.info("Created Tenancy relationship  from %s to %s" % (str(obj), str(provider_service)))
 
-    def create(self):
-        nodetemplate = self.nodetemplate
-
-        xos_args = self.get_xos_args()
-        service = Service(**xos_args)
-        service.caller = self.user
-        service.save()
-
-        self.postprocess(service)
-
-        self.info("Created Service '%s'" % (str(service), ))
-
-    def delete(self, obj):
+    def pre_delete(self, obj):
         if obj.slices.exists():
             self.info("Service %s has active slices; skipping delete" % obj.name)
             return
-        obj.delete()
 
diff --git a/xos/tosca/resources/vbngservice.py b/xos/tosca/resources/vbngservice.py
new file mode 100644
index 0000000..70f47aa
--- /dev/null
+++ b/xos/tosca/resources/vbngservice.py
@@ -0,0 +1,16 @@
+import os
+import pdb
+import sys
+import tempfile
+sys.path.append("/opt/tosca")
+from translator.toscalib.tosca_template import ToscaTemplate
+
+from cord.models import VBNGService
+
+from service import XOSService
+
+class XOSVBGNService(XOSService):
+    provides = "tosca.nodes.VBNGService"
+    xos_model = VBNGService
+    copyin_props = ["view_url", "icon_url", "vnbg_url"]
+
diff --git a/xos/tosca/resources/vcpeservice.py b/xos/tosca/resources/vcpeservice.py
new file mode 100644
index 0000000..a2247c6
--- /dev/null
+++ b/xos/tosca/resources/vcpeservice.py
@@ -0,0 +1,16 @@
+import os
+import pdb
+import sys
+import tempfile
+sys.path.append("/opt/tosca")
+from translator.toscalib.tosca_template import ToscaTemplate
+
+from cord.models import VCPEService
+
+from service import XOSService
+
+class XOSVcpeService(XOSService):
+    provides = "tosca.nodes.VCPEService"
+    xos_model = VCPEService
+    copyin_props = ["view_url", "icon_url", "backend_network_label"]
+
