diff --git a/xos/admin.py b/xos/admin.py
deleted file mode 100644
index 3a02eeb..0000000
--- a/xos/admin.py
+++ /dev/null
@@ -1,144 +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.vbbu.models import *
-from synchronizers.new_base.modelaccessor import *
-
-# The class to provide an admin interface on the web for the service.
-# We do only configuration here and don't change any logic because the logic
-# is taken care of for us by ReadOnlyAwareAdmin
-class VBBUServiceAdmin(ReadOnlyAwareAdmin):
-    # We must set the model so that the admin knows what fields to use
-    model = VBBUService
-    verbose_name = "VBBU Service"
-    verbose_name_plural = "VBBU Services"
-
-    # Setting list_display creates columns on the admin page, each value here
-    # is a column, the column is populated for every instance of the model.
-    list_display = ("backend_status_icon", "name", "enabled")
-
-    # Used to indicate which values in the columns of the admin form are links.
-    list_display_links = ('backend_status_icon', 'name', )
-
-    # Denotes the sections of the form, the fields in the section, and the
-    # CSS classes used to style them. We represent this as a set of tuples, each
-    # tuple as a name (or None) and a set of fields and classes.
-    # Here the first section does not have a name so we use none. That first
-    # section has several fields indicated in the 'fields' attribute, and styled
-    # by the classes indicated in the 'classes' attribute. The classes given
-    # here are important for rendering the tabs on the form. To give the tabs
-    # we must assign the classes suit-tab and suit-tab-<name> where
-    # where <name> will be used later.
-    fieldsets = [(None, {'fields': ['backend_status_text', 'name', 'enabled',
-                                    'versionNumber', 'description', "view_url"],
-                         'classes':['suit-tab suit-tab-general']})]
-
-    # Denotes the fields that are readonly and cannot be changed.
-    readonly_fields = ('backend_status_text', )
-
-    # Inlines are used to denote other models that can be edited on the same
-    # form as this one. In this case the service form also allows changes
-    # to slices.
-    inlines = [SliceInline]
-
-    extracontext_registered_admins = True
-
-    # Denotes the fields that can be changed by an admin but not be all users
-    user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
-
-    # Associates fieldsets from this form and from the inlines.
-    # The format here are tuples, of (<name>, tab title). <name> comes from the
-    # <name> in the fieldsets.
-    suit_form_tabs = (('general', 'MCORD Service Details'),
-                      ('administration', 'Components'),
-                      ('slices', 'Slices'),)
-
-    # Used to include a template for a tab. Here we include the
-    # helloworldserviceadmin template in the top position for the administration
-    # tab.
-    suit_form_includes = (('admin.html',
-                           'top',
-                           'administration'),)
-
-    # Used to get the objects for this model that are associated with the
-    # requesting user.
-    def queryset(self, request):
-        return VBBUService.get_service_objects_by_user(request.user)
-
-# Class to represent the form to add and edit tenants.
-# We need to define this instead of just using an admin like we did for the
-# service because tenants vary more than services and there isn't a common form.
-# This allows us to change the python behavior for the admin form to save extra
-# fields and control defaults.
-class VBBUTenantForm(forms.ModelForm):
-    # Defines a field for the creator of this service. It is a dropdown which
-    # is populated with all of the users.
-    creator = forms.ModelChoiceField(queryset=User.objects.all())
-    # Defines a text field for the display message, it is not required.
-    display_message = forms.CharField(required=False)
-
-    def __init__(self, *args, **kwargs):
-        super(VBBUTenantForm, self).__init__(*args, **kwargs)
-        # Set the kind field to readonly
-        self.fields['kind'].widget.attrs['readonly'] = True
-        # Define the logic for obtaining the objects for the provider_service
-        # dropdown of the tenant form.
-        self.fields[
-            'provider_service'].queryset = VBBUService.get_service_objects().all()
-        # Set the initial kind to HELLO_WORLD_KIND for this tenant.
-        self.fields['kind'].initial = MCORD_KIND
-        # If there is an instance of this model then we can set the initial
-        # form values to the existing values.
-        if self.instance:
-            self.fields['creator'].initial = self.instance.creator
-            self.fields[
-                'display_message'].initial = self.instance.display_message
-
-        # If there is not an instance then we need to set initial values.
-        if (not self.instance) or (not self.instance.pk):
-            self.fields['creator'].initial = get_request().user
-            if VBBUService.get_service_objects().exists():
-                self.fields["provider_service"].initial = VBBUService.get_service_objects().all()[0]
-
-    # This function describes what happens when the save button is pressed on
-    # the tenant form. In this case we set the values for the instance that were
-    # entered.
-    def save(self, commit=True):
-        self.instance.creator = self.cleaned_data.get("creator")
-        self.instance.display_message = self.cleaned_data.get(
-            "display_message")
-        return super(VBBUTenantForm, self).save(commit=commit)
-
-    class Meta:
-        model = VBBUTenant
-        fields = '__all__'
-
-
-# Define the admin form for the tenant. This uses a similar structure as the
-# service but uses HelloWorldTenantCompleteForm to change the python behavior.
-
-class VBBUTenantAdmin(ReadOnlyAwareAdmin):
-    verbose_name = "vBBU Component"
-    verbose_name_plural = "vBBU Components"
-    list_display = ('id', 'backend_status_icon', 'instance', 'display_message')
-    list_display_links = ('backend_status_icon', 'instance', 'display_message',
-                          'id')
-    fieldsets = [(None, {'fields': ['backend_status_text', 'kind',
-                                    'provider_service', 'instance', 'creator',
-                                    'display_message'],
-                         'classes': ['suit-tab suit-tab-general']})]
-    readonly_fields = ('backend_status_text', 'instance',)
-    form = VBBUTenantForm
-
-    suit_form_tabs = (('general', 'Details'),)
-
-    def queryset(self, request):
-        return VBBUTenant.get_tenant_objects_by_user(request.user)
-
-
-# Associate the admin forms with the models.
-admin.site.register(VBBUService, VBBUServiceAdmin)
-admin.site.register(VBBUTenant, VBBUTenantAdmin)
diff --git a/xos/header.py b/xos/header.py
deleted file mode 100644
index 20a9153..0000000
--- a/xos/header.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from core.models import Service, TenantWithContainer
-from django.db import transaction
-from django.db.models import *
diff --git a/xos/models.py b/xos/models.py
index 3169185..e49bfad 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -2,6 +2,10 @@
 from models_decl import VBBUService_decl
 from models_decl import VBBUTenant_decl
 
+from core.models import Service, TenantWithContainer
+from django.db import transaction
+from django.db.models import *
+
 class VBBUService(VBBUService_decl):
    class Meta:
         proxy = True 
diff --git a/xos/synchronizer/__init__.py b/xos/synchronizer/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/xos/synchronizer/__init__.py
+++ /dev/null
diff --git a/xos/synchronizer/steps/vbbutenant_playbook.yaml b/xos/synchronizer/steps/vbbutenant_playbook.yaml
index e268dfb..de19598 100644
--- a/xos/synchronizer/steps/vbbutenant_playbook.yaml
+++ b/xos/synchronizer/steps/vbbutenant_playbook.yaml
@@ -4,4 +4,5 @@
   connection: ssh
   user: ubuntu
   become: yes
-  tasks:
+  vars:
+    - tenant_message: "{{ tenant_message }}"
diff --git a/xos/synchronizer/vbbu-synchronizer.py b/xos/synchronizer/vbbu-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 6ef0d37..0000000
--- a/xos/templates/mcordadmin.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- Template used to for the button leading to the HelloWorldTenantComplete form. -->
-<div class = "left-nav">
-  <ul>
-    <li>
-      <a href="/admin/mcordservice/vbbutenant/">
-        MCORD Service Components
-      </a>
-    </li>
-  </ul>
-</div>
diff --git a/xos/tosca/custom_types/vbbu.m4 b/xos/tosca/custom_types/vbbu.m4
index 9e455aa..fe5065f 100644
--- a/xos/tosca/custom_types/vbbu.m4
+++ b/xos/tosca/custom_types/vbbu.m4
@@ -15,9 +15,6 @@
         properties:
             xos_base_props
             xos_base_service_props
-            service_message:
-                type: string
-                required: false
             
     tosca.nodes.VBBUTenant:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/custom_types/vbbu.yaml b/xos/tosca/custom_types/vbbu.yaml
index 7dc507d..b272a5f 100644
--- a/xos/tosca/custom_types/vbbu.yaml
+++ b/xos/tosca/custom_types/vbbu.yaml
@@ -78,9 +78,6 @@
                 type: string
                 required: false
                 description: Version number of Service.
-            service_message:
-                type: string
-                required: false
             
     tosca.nodes.VBBUTenant:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/resources/vbbuservice.py b/xos/tosca/resources/vbbuservice.py
index 55bb167..8723a3e 100644
--- a/xos/tosca/resources/vbbuservice.py
+++ b/xos/tosca/resources/vbbuservice.py
@@ -1,11 +1,8 @@
-# from services.vbbu.models import MCORDService
-from synchronizers.new_base.modelaccessor import *
 from service import XOSService
+from services.vbbu.models import VBBUService
 
 class XOSMVBBUService(XOSService):
     provides = "tosca.nodes.VBBUService"
     xos_model = VBBUService
-    copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key",
-                    "private_key_fn", "versionNumber",
-                    ]
+    copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "private_key_fn", "versionNumber"]
 
diff --git a/xos/tosca/resources/vbbutenant.py b/xos/tosca/resources/vbbutenant.py
index b93c023..d8cf10d 100644
--- a/xos/tosca/resources/vbbutenant.py
+++ b/xos/tosca/resources/vbbutenant.py
@@ -1,19 +1,19 @@
-# from services.vbbu.models import *
-from synchronizers.new_base.modelaccessor import *
 from xosresource import XOSResource
+from core.models import Tenant, Service
+from services.vbbu.models import VBBUTenant
 
 class XOSVBBUTenant(XOSResource):
     provides = "tosca.nodes.VBBUTenant"
     xos_model = VBBUTenant
-    copyin_props = ["s1u_tag", "s1mme_tag", "rru_tag", "display_message"]
+    copyin_props = ("tenant_message",)
     name_field = None
 
     def get_xos_args(self, throw_exception=True):
         args = super(XOSVBBUTenant, 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(MCORDService, 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/vbbu-onboard.yaml b/xos/vbbu-onboard.yaml
index df9d947..1fbeb9e 100644
--- a/xos/vbbu-onboard.yaml
+++ b/xos/vbbu-onboard.yaml
@@ -15,11 +15,9 @@
           # base_url is non-null.
           # models: models.py
           xproto: ./
-          admin: admin.py
-          admin_template: templates/mcordadmin.html
           synchronizer: synchronizer/manifest
           synchronizer_run: vbbu-synchronizer.py
           tosca_custom_types: tosca/custom_types/vbbu.yaml
           tosca_resource: tosca/resources/vbbutenant.py, tosca/resources/vbbuservice.py
           private_key: file:///opt/xos/key_import/mcord_rsa
-          public_key: file:///opt/xos/key_import/mcord_rsa.pub
\ No newline at end of file
+          public_key: file:///opt/xos/key_import/mcord_rsa.pub
diff --git a/xos/vbbu.xproto b/xos/vbbu.xproto
index 2a30222..07b24f3 100644
--- a/xos/vbbu.xproto
+++ b/xos/vbbu.xproto
@@ -1,15 +1,16 @@
-option name = "vbbu";
+option name = "vBBU";
+option verbose_name = "Virtual Broadband Base Unit";
 option app_label = "vbbu";
-option verbose_name = "vBBU Service";
 option kind = "vRAN";
 option legacy = "True";
 
 message VBBUService (Service){
-    required string service_message = 1 [help_text = "Service Message to Display", max_length = 254, null = False, db_index = False, blank = False];
+    option name = "VBBUService";
+    option verbose_name = "Virtual Broadband Base Unit Service";
 }
 
 message VBBUTenant (TenantWithContainer){
-     option name = "vbbutenant";
-     option verbose_name = "vBBU Tenant";
+     option name = "VBBUTenant";
+     option verbose_name = "Virtual Broadband Base Unit Tenant";
      required string tenant_message = 1 [help_text = "Tenant Message to Display", max_length = 254, null = False, db_index = False, blank = False];
 }
