diff --git a/xos/tosca/tests/basetest.py b/xos/tosca/tests/basetest.py
index 038eea2..5d873d0 100644
--- a/xos/tosca/tests/basetest.py
+++ b/xos/tosca/tests/basetest.py
@@ -34,7 +34,7 @@
     def __init__(self):
         self.runtest()
 
-    def make_nodetemplate(self, name, type, props={}, reqs=[]):
+    def make_nodetemplate(self, name, type, props={}, reqs=[], caps={}):
         yml = "    %s:\n      type: %s\n"  % (name, type)
         if props:
             yml = yml + "      properties:\n"
@@ -50,6 +50,14 @@
                 yml = yml + "              relationship: %s\n" % relat
                 i = i + 1
 
+        if caps:
+            yml = yml + "      capabilities:\n"
+            for (cap,capdict) in caps.items():
+               yml = yml + "        %s:\n" % cap
+               yml = yml + "          properties:\n"
+               for (k,v) in capdict.items():
+                   yml = yml + "            %s: %s\n" % (k,v)
+
         return yml
 
     def assert_noobj(self, cls, name):
@@ -78,6 +86,14 @@
         xt = XOSTosca(self.base_yaml+yml, parent_dir=parentdir, log_to_console=False)
         xt.execute(u)
 
+    def destroy(self, yml):
+        u = User.objects.get(email=self.username)
+
+        #print self.base_yaml+yml
+
+        xt = XOSTosca(self.base_yaml+yml, parent_dir=parentdir, log_to_console=False)
+        xt.destroy(u)
+
     def runtest(self):
         for test in self.tests:
             print "running", test
