diff --git a/xos/models.py b/xos/models.py
index 215d71a..afd3194 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -1,5 +1,6 @@
 from core.models.plcorebase import *
 from models_decl import VMMService_decl
+from models_decl import VMMVendor_decl
 from models_decl import VMMTenant_decl
 
 from django.db import models
@@ -25,6 +26,10 @@
        t.save()
        return t
 
+class VMMVendor(VMMVendor_decl):
+   class Meta:
+       proxy = True
+
 class VMMTenant(VMMTenant_decl):
    class Meta:
         proxy = True 
@@ -36,6 +41,17 @@
                    "provider_service").default = vmmservice[0].id
        super(VMMTenant, self).__init__(*args, **kwargs)
 
+   @property
+   def image(self):
+       if not self.vmm_vendor:
+           return super(VMMTenant, self).image
+       return self.vmm_vendor.image
+   
+   def save_instance(self, instance):
+       if self.vmm_vendor:
+           instance.flavor = self.vmm_vendor.flavor
+       super(VMMTenant, self).save_instance(instance)
+
    def save(self, *args, **kwargs):
        if not self.creator:
            if not getattr(self, "caller", None):
