diff --git a/xos/admin.py b/xos/admin.py
deleted file mode 100644
index 6f74757..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.vsm.models import *
-
-class VSMServiceForm(forms.ModelForm):
-
-    class Meta:
-        model = VSMService
-        fields = '__all__'
-
-    def __init__(self, *args, **kwargs):
-        super(VSMServiceForm, self).__init__(*args, **kwargs)
-
-    def save(self, commit=True):
-        return super(VSMServiceForm, self).save(commit=commit)
-
-class VSMServiceAdmin(ReadOnlyAwareAdmin):
-
-    model = VSMService
-    verbose_name = "VSM Service"
-    verbose_name_plural = "VSM Services"
-    form = VSMServiceForm
-    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', 'VSM Service Details', ),
-        ('slices', 'Slices',),
-        )
-
-    suit_form_includes = (('mcordadmin.html',
-                           'top',
-                           'administration'),)
-
-    def get_queryset(self, request):
-        return VSMService.get_service_objects_by_user(request.user)
-
-admin.site.register(VSMService, VSMServiceAdmin)
-
-class VSMTenantForm(forms.ModelForm):
-
-    class Meta:
-        model = VSMTenant
-        fields = '__all__'
-
-    creator = forms.ModelChoiceField(queryset=User.objects.all())
-
-    def __init__(self, *args, **kwargs):
-        super(VSMTenantForm, self).__init__(*args, **kwargs)
-
-        self.fields['kind'].widget.attrs['readonly'] = True
-        self.fields['kind'].initial = "vSm"
-
-        self.fields['provider_service'].queryset = VSMService.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 VSMService.get_service_objects().exists():
-                self.fields['provider_service'].initial = VSMService.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(VSMTenantForm, self).save(commit=commit)
-
-
-class VSMTenantAdmin(ReadOnlyAwareAdmin):
-
-    verbose_name = "VSM Service Tenant"
-    verbose_name_plural = "VSM 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 = VSMTenantForm
-
-    suit_form_tabs = (('general', 'Details'),)
-
-    def get_queryset(self, request):
-        return VSMTenant.get_tenant_objects_by_user(request.user)
-
-admin.site.register(VSMTenant, VSMTenantAdmin)
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/make_synchronizer_manifest.sh b/xos/make_synchronizer_manifest.sh
old mode 100644
new mode 100755
diff --git a/xos/models.py b/xos/models.py
index b52029c..56350a7 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -2,6 +2,22 @@
 from models_decl import VSMService_decl
 from models_decl import VSMTenant_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 VSMService(VSMService_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_vsmtenant.py
similarity index 76%
rename from xos/synchronizer/steps/sync_vmmetenant.py
rename to xos/synchronizer/steps/sync_vsmtenant.py
index cf42ee0..dfb24f3 100644
--- a/xos/synchronizer/steps/sync_vmmetenant.py
+++ b/xos/synchronizer/steps/sync_vsmtenant.py
@@ -17,7 +17,7 @@
 
     template_name = "vsmtenant_playbook.yaml"
 
-    service_key_name = "/opt/xos/synchronizers/vsm/vsm_private_key"
+    service_key_name = "/opt/xos/configurations/mcord/mcord_private_key"
 
     def __init__(self, *args, **kwargs):
         super(SyncVSMTenant, self).__init__(*args, **kwargs)
@@ -33,22 +33,10 @@
 
         return objs
 
-    def get_vsmservice(self, o):
-        if not o.provider_service:
-            return None
-
-        vsmservice = VSMService.get_service_objects().filter(id=o.provider_service.id)
-
-        if not vsmservice:
-            return None
-
-        return vsmservice[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/vsmtenant_playbook.yaml
similarity index 100%
rename from xos/synchronizer/steps/vmmetenant_playbook.yaml
rename to xos/synchronizer/steps/vsmtenant_playbook.yaml
diff --git a/xos/synchronizer/vmm-synchronizer.py b/xos/synchronizer/vsm-synchronizer.py
old mode 100644
new mode 100755
similarity index 100%
rename from xos/synchronizer/vmm-synchronizer.py
rename to xos/synchronizer/vsm-synchronizer.py
diff --git a/xos/synchronizer/vmm_from_api_config b/xos/synchronizer/vsm_from_api_config
similarity index 100%
rename from xos/synchronizer/vmm_from_api_config
rename to xos/synchronizer/vsm_from_api_config
diff --git a/xos/templates/mcordadmin.html b/xos/templates/mcordadmin.html
deleted file mode 100644
index 106be25..0000000
--- a/xos/templates/mcordadmin.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<div class = "left-nav">
-  <ul>
-    <li>
-      <a href="/admin/mcordservice/vsmcomponent/">
-        MCORD Service Components
-      </a>
-    </li>
-  </ul>
-</div>
diff --git a/xos/tosca/custom_types/vsm.m4 b/xos/tosca/custom_types/vsm.m4
index c81705f..2c839a8 100644
--- a/xos/tosca/custom_types/vsm.m4
+++ b/xos/tosca/custom_types/vsm.m4
@@ -15,9 +15,6 @@
         properties:
             xos_base_props
             xos_base_service_props
-            service_message:
-                type: string
-                required: false
             
     tosca.nodes.VSMTenant:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/custom_types/vsm.yaml b/xos/tosca/custom_types/vsm.yaml
index 444c659..a9603fb 100644
--- a/xos/tosca/custom_types/vsm.yaml
+++ b/xos/tosca/custom_types/vsm.yaml
@@ -78,9 +78,6 @@
                 type: string
                 required: false
                 description: Version number of Service.
-            service_message:
-                type: string
-                required: false
             
     tosca.nodes.VSMTenant:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/resources/vsmservice.py b/xos/tosca/resources/vsmservice.py
index b702029..0fd7d6c 100644
--- a/xos/tosca/resources/vsmservice.py
+++ b/xos/tosca/resources/vsmservice.py
@@ -4,4 +4,4 @@
 class XOSVSMService(XOSService):
 	provides = "tosca.nodes.VSMService"
 	xos_model = VSMService
-	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/vsmtenant.py b/xos/tosca/resources/vsmtenant.py
index 56b2472..e932953 100644
--- a/xos/tosca/resources/vsmtenant.py
+++ b/xos/tosca/resources/vsmtenant.py
@@ -4,15 +4,15 @@
 class XOSVSMTenant(XOSResource):
     provides = "tosca.nodes.VSMTenant"
     xos_model = VSMTenant
-    copyin_props = ["tenant_message", "image_name"]  
+    copyin_props = ("tenant_message",) 
     name_field = None  
 
     def get_xos_args(self, throw_exception=True):
         args = super(XOSVSMTenant, 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(VSMService, 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/vsm-onboard.yaml b/xos/vsm-onboard.yaml
index bd8463a..9a0e5b0 100644
--- a/xos/vsm-onboard.yaml
+++ b/xos/vsm-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/vsm.yaml
           synchronizer: synchronizer/manifest
           synchronizer_run: vsm-synchronizer.py
diff --git a/xos/vsm.xproto b/xos/vsm.xproto
index 41dd1e0..9a9848c 100644
--- a/xos/vsm.xproto
+++ b/xos/vsm.xproto
@@ -1,15 +1,16 @@
-option name = "vsm";
+option name = "vSM";
+option verbose_name = "Virtual Session Management";
 option app_label = "vsm";
-option verbose_name = "vSM Service";
 option kind = "vEPC";
 option legacy = "True";
 
 message VSMService (Service){
-    required string service_message = 1 [help_text = "Service Message to Display", max_length = 254, null = False, db_index = False, blank = False];
+    option name = "VSMService";
+    option verbose_name = "Virtual Session Management Service";
 }
 
 message VSMTenant (TenantWithContainer){
-     option name = "vsmtenant";
-     option verbose_name = "vSM Tenant";
+     option name = "VSMTenant";
+     option verbose_name = "Virtual Session Management Tenant";
      required string tenant_message = 1 [help_text = "Tenant Message to Display", max_length = 254, null = False, db_index = False, blank = False];
 }
