diff --git a/xos/models.py b/xos/models.py
index a2924ca..fe90502 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -1,5 +1,6 @@
 from core.models.plcorebase import *
 from models_decl import VPGWUService_decl
+from models_decl import VPGWUVendor_decl
 from models_decl import VPGWUTenant_decl
 
 from django.db import models
@@ -26,6 +27,10 @@
        t.save()
        return t
 
+class VPGWUVendor(VPGWUVendor_decl):
+   class Meta:
+       proxy = True
+
 class VPGWUTenant(VPGWUTenant_decl):
    class Meta:
         proxy = True 
@@ -39,6 +44,17 @@
                 "provider_service").default = vpgwuservice[0].id
        super(VPGWUTenant, self).__init__(*args, **kwargs)
 
+   @property
+   def image(self):
+       if not self.vpgwu_vendor:
+           return super(VPGWUTenant, self).image
+       return self.vpgwu_vendor.image
+   
+   def save_instance(self, instance):
+       if self.vpgwu_vendor:
+           instance.flavor = self.vpgwu_vendor.flavor
+       super(VPGWUTenant, self).save_instance(instance)
+
    def save(self, *args, **kwargs):
        if not self.creator:
            if not getattr(self, "caller", None):
