diff --git a/xos/xos_client/xosapi/convenience/cordsubscriberroot.py b/xos/xos_client/xosapi/convenience/cordsubscriberroot.py
new file mode 100644
index 0000000..e722468
--- /dev/null
+++ b/xos/xos_client/xosapi/convenience/cordsubscriberroot.py
@@ -0,0 +1,12 @@
+from xosapi.orm import ORMWrapper, register_convenience_wrapper
+
+class ORMWrapperCordSubscriberRoot(ORMWrapper):
+    @property
+    def volt(self):
+        volt_tenants = self.stub.VOLTTenant.objects.filter(subscriber_root_id = self.id)
+        if volt_tenants:
+            return volt_tenants[0]
+        return None
+
+
+register_convenience_wrapper("CordSubscriberRoot", ORMWrapperCordSubscriberRoot)
diff --git a/xos/xos_client/xosapi/convenience/volttenant.py b/xos/xos_client/xosapi/convenience/volttenant.py
new file mode 100644
index 0000000..b3645e2
--- /dev/null
+++ b/xos/xos_client/xosapi/convenience/volttenant.py
@@ -0,0 +1,12 @@
+from xosapi.orm import ORMWrapper, register_convenience_wrapper
+
+class ORMWrapperVOLTTenant(ORMWrapper):
+    @property
+    def vcpe(self):
+        vcpe_tenants = self.stub.VSGTenant.objects.filter(subscriber_tenant_id = self.id)
+        if vcpe_tenants:
+            return vcpe_tenants[0]
+        return None
+
+
+register_convenience_wrapper("VOLTTenant", ORMWrapperVOLTTenant)
diff --git a/xos/xos_client/xosapi/orm.py b/xos/xos_client/xosapi/orm.py
index d113835..dc84c96 100644
--- a/xos/xos_client/xosapi/orm.py
+++ b/xos/xos_client/xosapi/orm.py
@@ -92,7 +92,7 @@
             dest_model = self.stub.invoke("Get%s" % fk_entry["modelName"], id)
 
         elif fk_kind=="generic_fk":
-            dest_model = self.stub.genericForeignKeyResolve(getattr(self, fk_entry["ct_fieldName"]), fk_id)
+            dest_model = self.stub.genericForeignKeyResolve(getattr(self, fk_entry["ct_fieldName"]), fk_id)._wrapped_class
 
         else:
             raise Exception("unknown fk_kind")
@@ -195,6 +195,10 @@
         return d
 
     @property
+    def model_name(self):
+        return self._wrapped_class.__class__.__name__
+
+    @property
     def ansible_tag(self):
         return "%s_%s" % (self._wrapped_class.__class__.__name__, self.id)
 
@@ -419,4 +423,6 @@
     return cls(wrapped_class, *args, **kwargs)
 
 import convenience.instance
+import convenience.cordsubscriberroot
+import convenience.volttenant
 
