diff --git a/xos/admin.py b/xos/admin.py
index a479d9c..094872d 100644
--- a/xos/admin.py
+++ b/xos/admin.py
@@ -9,7 +9,7 @@
 from django.utils import timezone
 from django.contrib.contenttypes import generic
 from suit.widgets import LinkedSelect
-from core.admin import ServiceAppAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, XOSTabularInline, ServicePrivilegeInline, TenantRootTenantInline, TenantRootPrivilegeInline
+from core.admin import ServiceAppAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, XOSTabularInline, ServicePrivilegeInline
 from core.middleware import get_request
 
 from services.vtr.models import *
@@ -53,14 +53,13 @@
 
     def __init__(self,*args,**kwargs):
         super (VTRTenantForm,self ).__init__(*args,**kwargs)
-        self.fields['provider_service'].queryset = VTRService.objects.all()
+        self.fields['owner'].queryset = VTRService.objects.all()
         if self.instance:
             if self.instance.target_id:
                 self.fields["target"].initial = CordSubscriberRoot.get_content_object(self.instance.target_type, self.instance.target_id)
         if (not self.instance) or (not self.instance.pk):
-            self.fields['kind'].initial = VTR_KIND
             if VTRService.objects.exists():
-               self.fields["provider_service"].initial = VTRService.objects.all()[0]
+               self.fields["owner"].initial = VTRService.objects.all()[0]
 
     def save(self, commit=True):
         if self.cleaned_data.get("target"):
@@ -75,7 +74,7 @@
 class VTRTenantAdmin(ReadOnlyAwareAdmin):
     list_display = ('backend_status_icon', 'id', 'target_type', 'target_id', 'test', 'argument' )
     list_display_links = ('backend_status_icon', 'id')
-    fieldsets = [ (None, {'fields': ['backend_status_text', 'kind', 'provider_service',
+    fieldsets = [ (None, {'fields': ['backend_status_text', 'owner',
                                      'target', 'scope', 'test', 'argument', 'is_synced', 'result_code', 'result'],
                           'classes':['suit-tab suit-tab-general']})]
     readonly_fields = ('backend_status_text', 'service_specific_attribute', 'is_synced')
diff --git a/xos/api/tenant/truckroll.py b/xos/api/tenant/truckroll.py
deleted file mode 100644
index caf9e24..0000000
--- a/xos/api/tenant/truckroll.py
+++ /dev/null
@@ -1,74 +0,0 @@
-from rest_framework.decorators import api_view
-from rest_framework.response import Response
-from rest_framework.reverse import reverse
-from rest_framework import serializers
-from rest_framework import generics
-from rest_framework import status
-from core.models import *
-from django.forms import widgets
-from services.vtr.models import VTRTenant, VTRService
-from services.rcord.models import CordSubscriberRoot
-from xos.apibase import XOSListCreateAPIView, XOSRetrieveUpdateDestroyAPIView, XOSPermissionDenied
-from api.xosapi_helpers import PlusModelSerializer, XOSViewSet, ReadOnlyField
-from django.contrib.contenttypes.models import ContentType
-
-def get_default_vtr_service():
-    vtr_services = VTRService.objects.all()
-    if vtr_services:
-        return vtr_services[0]
-    return None
-
-class VTRTenantForAPI(VTRTenant):
-    class Meta:
-        proxy = True
-        app_label = "cord"
-
-class VTRTenantSerializer(PlusModelSerializer):
-        id = ReadOnlyField()
-        target_id = serializers.IntegerField()
-        test = serializers.CharField()
-        scope = serializers.CharField()
-        argument = serializers.CharField(required=False)
-        provider_service = serializers.PrimaryKeyRelatedField(queryset=VTRService.objects.all(), default=get_default_vtr_service)
-        result = serializers.CharField(required=False)
-        result_code = serializers.CharField(required=False)
-        backend_status = ReadOnlyField()
-
-        humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
-        is_synced = serializers.SerializerMethodField("isSynced")
-
-        class Meta:
-            model = VTRTenantForAPI
-            fields = ('humanReadableName', 'id', 'provider_service', 'target_id', 'scope', 'test', 'argument', 'result', 'result_code', 'is_synced', 'backend_status' )
-
-        def getHumanReadableName(self, obj):
-            return obj.__unicode__()
-
-        def isSynced(self, obj):
-            return (obj.enacted is not None) and (obj.enacted >= obj.updated)
-
-        def create(self, validated_data):
-            # force the target_type to be CordSubscriberRoot
-            validated_data["target_type_id"] = ContentType.objects.get_for_model(CordSubscriberRoot).id
-            return super(VTRTenantSerializer, self).create(validated_data)
-
-class TruckRollViewSet(XOSViewSet):
-    base_name = "truckroll"
-    method_name = "truckroll"
-    method_kind = "viewset"
-    queryset = VTRTenantForAPI.objects.all() # select_related().all()
-    serializer_class = VTRTenantSerializer
-
-    @classmethod
-    def get_urlpatterns(self, api_path="^"):
-        patterns = super(TruckRollViewSet, self).get_urlpatterns(api_path=api_path)
-
-        return patterns
-
-    def list(self, request):
-        queryset = self.filter_queryset(self.get_queryset())
-
-        serializer = self.get_serializer(queryset, many=True)
-
-        return Response(serializer.data)
-
diff --git a/xos/attic/header.py b/xos/attic/header.py
index e483538..36d0a6f 100644
--- a/xos/attic/header.py
+++ b/xos/attic/header.py
@@ -1,5 +1,5 @@
 from django.db import models
-from core.models import Service, XOSBase, Slice, Instance, Tenant, TenantWithContainer, Node, Image, User, Flavor, NetworkParameter, NetworkParameterType, Port, AddressPool
+from core.models import Service, XOSBase, Slice, Instance, ServiceInstance, TenantWithContainer, Node, Image, User, Flavor, NetworkParameter, NetworkParameterType, Port, AddressPool
 from core.models.xosbase import StrippedCharField
 import os
 from django.db import models, transaction
diff --git a/xos/attic/vtrtenant_model.py b/xos/attic/vtrtenant_model.py
index f2d24c3..2bd55cb 100644
--- a/xos/attic/vtrtenant_model.py
+++ b/xos/attic/vtrtenant_model.py
@@ -3,7 +3,7 @@
 def __init__(self, *args, **kwargs):
     vtr_services = VTRService.objects.all()
     if vtr_services:
-        self._meta.get_field("provider_service").default = vtr_services[0].id
+        self._meta.get_field("owner").default = vtr_services[0].id
     super(VTRTenant, self).__init__(*args, **kwargs)
 
 def save(self, *args, **kwargs):
diff --git a/xos/synchronizer/steps/sync_vtrtenant.py b/xos/synchronizer/steps/sync_vtrtenant.py
index 7cc480f..5182f01 100644
--- a/xos/synchronizer/steps/sync_vtrtenant.py
+++ b/xos/synchronizer/steps/sync_vtrtenant.py
@@ -23,10 +23,11 @@
         super(SyncVTRTenant, self).__init__(*args, **kwargs)
 
     def get_vtr_service(self, o):
-        if not o.provider_service:
+        if not o.owner:
             return None
 
-        vtrs = VTRService.objects.filter(id=o.provider_service.id)
+        # cast from Service to VTRService
+        vtrs = VTRService.objects.filter(id=o.owner.id)
         if not vtrs:
             return None
 
@@ -36,20 +37,17 @@
         target = o.target
         if target:
             model_name = getattr(target, "model_name", target.__class__.__name__)
-            # CordSubscriberRoot is a Proxy object, and o.target will point to
-            # the base class... so fix it up.
-            if model_name == "TenantRoot":
-                target = CordSubscriberRoot.objects.get(id=target.id)
-            return target
+            if model_name in ["ServiceInstance", "CordSubscriberRoot"]:
+                # cast from ServiceInstance to CordSubscriberRoot
+                csrs = CordSubscriberRoot.objects.filter(id=target.id)
+                if csrs:
+                    return csrs[0]
         return None
 
     def get_vcpe_service(self, o):
         target = self.get_target(o)
         if target and target.volt and target.volt.vcpe:
-            vcpes = VSGService.objects.filter(id=target.volt.vcpe.provider_service.id)
-            if not vcpes:
-                return None
-            return vcpes[0]
+            return target.volt.vcpe
         return None
 
     def get_instance(self, o):
diff --git a/xos/vtr-onboard.yaml b/xos/vtr-onboard.yaml
index db4b653..8188cd1 100644
--- a/xos/vtr-onboard.yaml
+++ b/xos/vtr-onboard.yaml
@@ -18,7 +18,6 @@
           admin_template: templates/vtradmin.html
           tosca_custom_types: tosca/custom_types/vtr.yaml
           tosca_resource: tosca/resources/vtrservice.py
-          rest_tenant: api/tenant/truckroll.py
           private_key: file:///opt/xos/key_import/vsg_rsa
           public_key: file:///opt/xos/key_import/vsg_rsa.pub
 
diff --git a/xos/vtr.xproto b/xos/vtr.xproto
index e60425f..e21812b 100644
--- a/xos/vtr.xproto
+++ b/xos/vtr.xproto
@@ -2,7 +2,7 @@
 option name="vtr";
 option verbose_name="Virtual Truck Roll Service";
 
-message VTRTenant (Tenant){
+message VTRTenant (ServiceInstance){
      required string test = 1 [choices = "(('ping', 'Ping'), ('traceroute', 'Trace Route'), ('tcpdump', 'Tcp Dump'), ('memory', 'Memory'), ('bandwidth', 'Bandwidth'))", max_length = 30, content_type = "stripped", blank = False, help_text = "type of test", null = False, db_index = False];
      required string scope = 2 [choices = "(('container', 'Container'), ('vm', 'VM'))", max_length = 30, content_type = "stripped", blank = False, help_text = "scope of test", null = False, db_index = False];
      optional string argument = 3 [db_index = False, max_length = 40, null = True, content_type = "stripped", blank = True];
