diff --git a/xos/admin.py b/xos/admin.py
index 9055b3b..d9fafe5 100644
--- a/xos/admin.py
+++ b/xos/admin.py
@@ -111,6 +111,8 @@
             self.fields['creator'].initial = self.instance.creator
             self.fields[
                 'display_message'].initial = self.instance.display_message
+            self.fields[
+                'image_name'].initial = self.instance.image_name
 
         # If there is not an instance then we need to set initial values.
         if (not self.instance) or (not self.instance.pk):
@@ -134,8 +136,8 @@
     verbose_name_plural = "vPGWC Service Tenants"
     form = VPGWCTenantForm
 
-    list_display = ('id', 'backend_status_icon', 'instance', 'display_message')
-    list_display_links = ('backend_status_icon', 'instance', 'display_message', 'id')
+    list_display = ('id', 'backend_status_icon', 'instance', 'display_message', 'image_name')
+    list_display_links = ('backend_status_icon', 'instance', 'display_message', 'id', 'image_name')
     fieldsets = [(None, {'fields': ['backend_status_text', 'kind',
                                     'provider_service', 'instance', 'creator',
                                     'display_message'],
diff --git a/xos/models.py b/xos/models.py
index 987260b..f52a8ac 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -60,7 +60,7 @@
 
     # default_attributes is used cleanly indicate what the default values for
     # the fields are.
-    default_attributes = {"display_message": "New vPGWC Component", "s5s8_pgw_tag": "300"}
+    default_attributes = {"display_message": "New vPGWC Component", "s5s8_pgw_tag": "300", "image_name": "default"}
     def __init__(self, *args, **kwargs):
         pgwc_services = VPGWCService.get_service_objects().all()
         # When the tenant is created the default service in the form is set
@@ -183,6 +183,15 @@
         (a, b, c, d) = ip.split('.')
         return "02:42:%02x:%02x:%02x:%02x" % (int(a), int(b), int(c), int(d))
 
+  
+    @property
+    def image(self):
+        img = self.image_name.strip()
+        if img.lower() != "default":
+            return Image.objects.get(name=img)
+        else: 
+            return super(VMMETenant, self).image
+
     # Getter for the message that will appear on the webpage
     # By default it is "Hello World!"
     @property
@@ -196,6 +205,16 @@
         self.set_attribute("display_message", value)
 
     @property
+    def image_name(self):
+        return self.get_attribute(
+            "image_name",
+            self.default_attributes['image_name'])
+
+    @image_name.setter
+    def image_name(self, value):
+        self.set_attribute("image_name", value)
+
+    @property
     def s5s8_pgw_tag(self):
         return self.get_attribute(
             "s5s8_pgw_tag",
diff --git a/xos/synchronizer/steps/sync_vpgwc.py b/xos/synchronizer/steps/sync_vpgwc.py
index bbfc0a8..d9ec4f0 100644
--- a/xos/synchronizer/steps/sync_vpgwc.py
+++ b/xos/synchronizer/steps/sync_vpgwc.py
@@ -36,4 +36,7 @@
     # Gets the attributes that are used by the Ansible template but are not
     # part of the set of default attributes.
     def get_extra_attributes(self, o):
-        return {"display_message": o.display_message, "s5s8_pgw_tag": o.s5s8_pgw_tag}
+        return {"display_message": o.display_message, 
+                "s5s8_pgw_tag": o.s5s8_pgw_tag, 
+                "image_name": o.image_name,
+               }
diff --git a/xos/tosca/resources/VPGWCTenant.py b/xos/tosca/resources/VPGWCTenant.py
index afd6966..434972a 100644
--- a/xos/tosca/resources/VPGWCTenant.py
+++ b/xos/tosca/resources/VPGWCTenant.py
@@ -4,7 +4,7 @@
 class XOSVPGWCTenant(XOSResource):
     provides = "tosca.nodes.VPGWCTenant"
     xos_model = VPGWCTenant
-    copyin_props = ["s5s8_pgw_tag", "display_message"]
+    copyin_props = ["s5s8_pgw_tag", "display_message", "image_name"]
     name_field = None
 
     def get_xos_args(self, throw_exception=True):
