diff --git a/xos/admin.py b/xos/admin.py
deleted file mode 100644
index df0f636..0000000
--- a/xos/admin.py
+++ /dev/null
@@ -1,112 +0,0 @@
-from core.admin import ReadOnlyAwareAdmin, SliceInline
-from core.middleware import get_request
-from core.models import User
-
-from django import forms
-from django.contrib import admin
-
-from services.vmme.models import *
-
-class VMMEServiceForm(forms.ModelForm):
-
-    class Meta:
-        model = VMMEService
-        fields = '__all__'
-
-    def __init__(self, *args, **kwargs):
-        super(VMMEServiceForm, self).__init__(*args, **kwargs)
-
-    def save(self, commit=True):
-        return super(VMMEServiceForm, self).save(commit=commit)
-
-class VMMEServiceAdmin(ReadOnlyAwareAdmin):
-
-    model = VMMEService
-    verbose_name = "VMME Service"
-    verbose_name_plural = "VMME Services"
-    form = VMMEServiceForm
-    inlines = [SliceInline]
-
-    list_display = ('backend_status_icon', 'name', 'enabled')
-    list_display_links = ('backend_status_icon', 'name')
-
-    fieldsets = [(None, {
-        'fields': ['backend_status_text', 'name', 'enabled', 'versionNumber', 'description',],
-        'classes':['suit-tab suit-tab-general',],
-        })]
-
-    readonly_fields = ('backend_status_text', )
-    user_readonly_fields = ['name', 'enabled', 'versionNumber', 'description',]
-
-    extracontext_registered_admins = True
-
-    suit_form_tabs = (
-        ('general', 'VMME Service Details', ),
-        ('slices', 'Slices',),
-        )
-
-    suit_form_includes = (('mcordadmin.html',
-                           'top',
-                           'administration'),)
-
-    def get_queryset(self, request):
-        return VMMEService.get_service_objects_by_user(request.user)
-
-admin.site.register(VMMEService, VMMEServiceAdmin)
-
-class VMMETenantForm(forms.ModelForm):
-
-    class Meta:
-        model = VMMETenant
-        fields = '__all__'
-
-    creator = forms.ModelChoiceField(queryset=User.objects.all())
-
-    def __init__(self, *args, **kwargs):
-        super(VMMETenantForm, self).__init__(*args, **kwargs)
-
-        self.fields['kind'].widget.attrs['readonly'] = True
-        self.fields['kind'].initial = "vmme"
-
-        self.fields['provider_service'].queryset = VMMEService.get_service_objects().all()
-
-        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
-            if VMMEService.get_service_objects().exists():
-                self.fields['provider_service'].initial = VMMEService.get_service_objects().all()[0]
-
-    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(VMMETenantForm, self).save(commit=commit)
-
-
-class VMMETenantAdmin(ReadOnlyAwareAdmin):
-
-    verbose_name = "VMME Service Tenant"
-    verbose_name_plural = "VMME Service Tenants"
-
-    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', 'image_name'],
-        'classes': ['suit-tab suit-tab-general'],
-        })]
-
-    readonly_fields = ('backend_status_text', 'instance',)
-
-    form = VMMETenantForm
-
-    suit_form_tabs = (('general', 'Details'),)
-
-    def get_queryset(self, request):
-        return VMMETenant.get_tenant_objects_by_user(request.user)
-
-admin.site.register(VMMETenant, VMMETenantAdmin)
diff --git a/xos/header.py b/xos/header.py
deleted file mode 100644
index 2e60747..0000000
--- a/xos/header.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from django.db import models
-from core.models import Service, PlCoreBase, Slice, Instance, Tenant, TenantWithContainer, Node, Image, User, Flavor, NetworkParameter, NetworkParameterType, Port, AddressPool
-from core.models.plcorebase import StrippedCharField
-import os
-from django.db import models, transaction
-from django.forms.models import model_to_dict
-from django.db.models import *
-from operator import itemgetter, attrgetter, methodcaller
-from core.models import Tag
-from core.models.service import LeastLoadedNodeScheduler
-import traceback
-from xos.exceptions import *
-from xos.config import Config
-from django.contrib.contenttypes.models import ContentType
-from django.contrib.contenttypes.fields import GenericForeignKey
diff --git a/xos/models.py b/xos/models.py
index 9e93636..3c8cf20 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -2,6 +2,22 @@
 from models_decl import VMMEService_decl
 from models_decl import VMMETenant_decl
 
+from django.db import models
+from core.models import Service, PlCoreBase, Slice, Instance, Tenant, TenantWithContainer, Node, Image, User, Flavor, NetworkParameter, NetworkParameterType, Port, AddressPool
+from core.models.plcorebase import StrippedCharField
+import os
+from django.db import models, transaction
+from django.forms.models import model_to_dict
+from django.db.models import *
+from operator import itemgetter, attrgetter, methodcaller
+from core.models import Tag
+from core.models.service import LeastLoadedNodeScheduler
+import traceback
+from xos.exceptions import *
+from xos.config import Config
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.contenttypes.fields import GenericForeignKey
+
 class VMMEService(VMMEService_decl):
    class Meta:
         proxy = True 
@@ -37,4 +53,4 @@
             return
         # Since this code is atomic it is safe to always use the first tenant
         tenant = tenant[0]
-        tenant.manage_container()
\ No newline at end of file
+        tenant.manage_container()
diff --git a/xos/synchronizer/steps/sync_vmmetenant.py b/xos/synchronizer/steps/sync_vmmetenant.py
index 7147e3f..ebb1ef3 100644
--- a/xos/synchronizer/steps/sync_vmmetenant.py
+++ b/xos/synchronizer/steps/sync_vmmetenant.py
@@ -18,7 +18,7 @@
 
     template_name = "vmmetenant_playbook.yaml"
 
-    service_key_name = "/opt/xos/synchronizers/vmme/vmme_private_key"
+    service_key_name = "/opt/xos/configurations/mcord/mcord_private_key"
 
     def __init__(self, *args, **kwargs):
         super(SyncVMMETenant, self).__init__(*args, **kwargs)
@@ -34,22 +34,10 @@
 
         return objs
 
-    def get_vmmeservice(self, o):
-        if not o.provider_service:
-            return None
-
-        vmmeservice = VMMEService.get_service_objects().filter(id=o.provider_service.id)
-
-        if not vmmeservice:
-            return None
-
-        return vmmeservice[0]
-
     # 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):
         fields = {}
         fields['tenant_message'] = o.tenant_message
-        fields['image_name'] = o.image_name
         return fields
 
diff --git a/xos/synchronizer/steps/vmmetenant_playbook.yaml b/xos/synchronizer/steps/vmmetenant_playbook.yaml
index c8a74d0..a73231c 100644
--- a/xos/synchronizer/steps/vmmetenant_playbook.yaml
+++ b/xos/synchronizer/steps/vmmetenant_playbook.yaml
@@ -5,6 +5,8 @@
   user: ubuntu 
   sudo: yes 
   tasks: 
+  vars:
+    - tenant_message: "{{ tenant_message }}"
  
  # - name: write message
  #   shell: echo "{{ tenant_message }}" > /var/tmp/index.html
diff --git a/xos/synchronizer/vmme-synchronizer.py b/xos/synchronizer/vmme-synchronizer.py
old mode 100644
new mode 100755
diff --git a/xos/templates/mcordadmin.html b/xos/templates/mcordadmin.html
deleted file mode 100644
index d8183c2..0000000
--- a/xos/templates/mcordadmin.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<div class = "left-nav">
-  <ul>
-    <li>
-      <a href="/admin/mcordservice/vmmecomponent/">
-        MCORD Service Components
-      </a>
-    </li>
-  </ul>
-</div>
diff --git a/xos/tosca/custom_types/vmme.m4 b/xos/tosca/custom_types/vmme.m4
index d3eb7d4..cf35121 100644
--- a/xos/tosca/custom_types/vmme.m4
+++ b/xos/tosca/custom_types/vmme.m4
@@ -15,9 +15,6 @@
         properties:
             xos_base_props
             xos_base_service_props
-            service_message:
-                type: string
-                required: false
                 
     tosca.nodes.MMETenant:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/custom_types/vmme.yaml b/xos/tosca/custom_types/vmme.yaml
index 337dffb..8c04163 100644
--- a/xos/tosca/custom_types/vmme.yaml
+++ b/xos/tosca/custom_types/vmme.yaml
@@ -78,9 +78,6 @@
                 type: string
                 required: false
                 description: Version number of Service.
-            service_message:
-                type: string
-                required: false
                 
     tosca.nodes.MMETenant:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/resources/vmmeservice.py b/xos/tosca/resources/vmmeservice.py
index e6280da..3001eac 100644
--- a/xos/tosca/resources/vmmeservice.py
+++ b/xos/tosca/resources/vmmeservice.py
@@ -1,7 +1,7 @@
-from services.vmme.models import VMMEService
 from service import XOSService
+from services.vmme.models import VMMEService
 
 class XOSVMMEService(XOSService):
 	provides = "tosca.nodes.VMMEService"
 	xos_model = VMMEService
-	copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "private_key_fn", "versionNumber"]
\ No newline at end of file
+	copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "private_key_fn", "versionNumber"]
diff --git a/xos/tosca/resources/vmmetenant.py b/xos/tosca/resources/vmmetenant.py
index 2a6e6d4..2ae223c 100644
--- a/xos/tosca/resources/vmmetenant.py
+++ b/xos/tosca/resources/vmmetenant.py
@@ -1,18 +1,19 @@
-from services.vmme.models import VMMETenant, VMMEService
 from xosresource import XOSResource
+from core.models import Tenant, Service
+from services.vmme.models import VMMETenant
 
 class XOSVMMETenant(XOSResource):
     provides = "tosca.nodes.VMMETenant"
     xos_model = VMMETenant
-    copyin_props = ["tenant_message", "image_name"]  
-    name_field = None  
+    name_field = None 
+    copyin_props = ("tenant_message",) 
 
     def get_xos_args(self, throw_exception=True):
         args = super(XOSVMMETenant, self).get_xos_args()
 
-        provider_name = self.get_requirement("tosca.relationships.MemberOfService", throw_exception=throw_exception)
+        provider_name = self.get_requirement("tosca.relationships.TenantOfService", throw_exception=throw_exception)
         if provider_name:
-            args["provider_service"] = self.get_xos_object(VMMEService, throw_exception=throw_exception, name=provider_name)
+            args["provider_service"] = self.get_xos_object(Service, throw_exception=throw_exception, name=provider_name)
 
         return args
 
diff --git a/xos/vmme-onboard.yaml b/xos/vmme-onboard.yaml
index 98d49e8..6774702 100644
--- a/xos/vmme-onboard.yaml
+++ b/xos/vmme-onboard.yaml
@@ -14,8 +14,6 @@
           # The following will concatenate with base_url automatically, if
           # base_url is non-null.
           xproto: ./
-          admin: admin.py
-          admin_template: templates/mcordadmin.html  
           tosca_custom_types: tosca/custom_types/vmme.yaml
           synchronizer: synchronizer/manifest  
           synchronizer_run: vmme-synchronizer.py
diff --git a/xos/vmme.xproto b/xos/vmme.xproto
index e46df6e..4948a28 100644
--- a/xos/vmme.xproto
+++ b/xos/vmme.xproto
@@ -1,15 +1,16 @@
-option name = "vmme";
+option name = "vMME";
+option verbose_name = "Virtual Mobility Management Entity";
 option app_label = "vmme";
-option verbose_name = "vMME Service";
 option kind = "vEPC";
 option legacy = "True";
 
 message VMMEService (Service){
-    required string service_message = 1 [help_text = "Service Message to Display", max_length = 254, null = False, db_index = False, blank = False];
+    option name = "VMMEService";
+    option verbose_name = "Virtual Mobility Management Entity Service";
 }
 
 message VMMETenant (TenantWithContainer){
-     option name = "vmmetenant";
-     option verbose_name = "vMME Tenant";
+     option name = "VMMETenant";
+     option verbose_name = "Virtual Mobility Management Entity Tenant";
      required string tenant_message = 1 [help_text = "Tenant Message to Display", max_length = 254, null = False, db_index = False, blank = False];
 }
