diff --git a/xos/models.py b/xos/models.py
index 4da52cb..a2924ca 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -16,13 +16,16 @@
 from xos.exceptions import *
 from sets import Set
 from xos.config import Config
-from django.contrib.contenttypes.models import ContentType
-from django.contrib.contenttypes.fields import GenericForeignKey
 
 class VPGWUService(VPGWUService_decl):
    class Meta:
         proxy = True 
 
+   def create_tenant(self, **kwargs):
+       t = VPGWUTenant(kind="vEPC", provider_service=self, connect_method="na", **kwargs)
+       t.save()
+       return t
+
 class VPGWUTenant(VPGWUTenant_decl):
    class Meta:
         proxy = True 
@@ -37,6 +40,13 @@
        super(VPGWUTenant, self).__init__(*args, **kwargs)
 
    def save(self, *args, **kwargs):
+       if not self.creator:
+           if not getattr(self, "caller", None):
+               raise XOSProgrammingError("VPGWUTenant's self.caller was not set")
+           self.creator = self.caller
+           if not self.creator:
+               raise XOSProgrammingError("VPGWUTenant's self.creator was not set")
+
        # Update the instance that was created for this tenant
        super(VPGWUTenant, self).save(*args, **kwargs)
        model_policy_vpgwutenant(self.pk)   
