diff --git a/xos/admin.py b/xos/admin.py
index 8dc98d9..a7b9850 100644
--- a/xos/admin.py
+++ b/xos/admin.py
@@ -78,6 +78,7 @@
         if self.instance:
             self.fields['creator'].initial = self.instance.creator
             self.fields['tenant_message'].initial = self.instance.tenant_message
+            self.fields['image_name'].initial = self.instance.image_name
 
         if (not self.instance) or (not self.instance.pk):
             self.fields['creator'].initial = get_request().user
@@ -87,6 +88,7 @@
     def save(self, commit=True):
         self.instance.creator = self.cleaned_data.get('creator')
         self.instance.tenant_message = self.cleaned_data.get('tenant_message')
+        self.instance.image_name = self.cleaned_data.get('image_name')
         return super(VSGWTenantForm, self).save(commit=commit)
 
 
@@ -95,11 +97,11 @@
     verbose_name = TENANT_NAME_VERBOSE
     verbose_name_plural = TENANT_NAME_VERBOSE_PLURAL
 
-    list_display = ('id', 'backend_status_icon', 'instance', 'tenant_message')
-    list_display_links = ('backend_status_icon', 'instance', 'tenant_message', 'id')
+    list_display = ('id', 'backend_status_icon', 'instance', 'tenant_message', 'image_name')
+    list_display_links = ('backend_status_icon', 'instance', 'tenant_message', 'id', 'image_name')
 
     fieldsets = [(None, {
-        'fields': ['backend_status_text', 'kind', 'provider_service', 'instance', 'creator', 'tenant_message'],
+        'fields': ['backend_status_text', 'kind', 'provider_service', 'instance', 'creator', 'tenant_message', 'image_name'],
         'classes': ['suit-tab suit-tab-general'],
         })]
 
diff --git a/xos/models.py b/xos/models.py
index b06b72f..e4f75a5 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -1,6 +1,6 @@
 # models.py -  vSGW Models
 
-from core.models import Service, TenantWithContainer
+from core.models import Service, TenantWithContainer, Image
 from django.db import models, transaction
 
 MCORD_KIND = 'EPC'
@@ -28,6 +28,7 @@
         verbose_name = TENANT_NAME_VERBOSE
 
     tenant_message = models.CharField(max_length=254, help_text="Tenant Message to Display")
+    image_name = models.CharField(max_length=254, help_text="Name of VM image")
 
     def __init__(self, *args, **kwargs):
         vsgw_service = VSGWService.get_service_objects().all()
@@ -43,6 +44,14 @@
         self.cleanup_container()
         super(VSGWTenant, self).delete(*args, **kwargs)
 
+    @property
+    def image(self):
+        img = self.image_name.strip()
+        if img.lower() != "default":
+            return Image.objects.get(name=img)
+        else: 
+            return super(VSGWTenant, self).image
+
 def model_policy_vsgwtenant(pk):
     with transaction.atomic():
         tenant = VSGWTenant.objects.select_for_update().filter(pk=pk)
diff --git a/xos/synchronizer/steps/sync_vsgw.py b/xos/synchronizer/steps/sync_vsgw.py
index ddc06e9..375c3a1 100644
--- a/xos/synchronizer/steps/sync_vsgw.py
+++ b/xos/synchronizer/steps/sync_vsgw.py
@@ -36,5 +36,6 @@
     def get_extra_attributes(self, o):
         fields = {}
         fields['tenant_message'] = o.tenant_message
+        fields['image_name'] = o.image_name
         return fields
 
diff --git a/xos/tosca/resources/vsgwtenant.py b/xos/tosca/resources/vsgwtenant.py
index ecf6051..f53048a 100644
--- a/xos/tosca/resources/vsgwtenant.py
+++ b/xos/tosca/resources/vsgwtenant.py
@@ -5,7 +5,7 @@
     provides = "tosca.nodes.VSGWTenant"
     xos_model = VSGWTenant
     name_field = "service_specific_id"
-    copyin_props = ("tenant_message",)
+    copyin_props = ("tenant_message", "image_name")
 
     def get_xos_args(self, throw_exception=True):
         args = super(XOSVSGWTenant, self).get_xos_args()
