diff --git a/xos/synchronizer/model_policies/model_policy_vsgserviceinstance.py b/xos/synchronizer/model_policies/model_policy_vsgserviceinstance.py
index 050093f..6800e81 100644
--- a/xos/synchronizer/model_policies/model_policy_vsgserviceinstance.py
+++ b/xos/synchronizer/model_policies/model_policy_vsgserviceinstance.py
@@ -106,14 +106,17 @@
         assert (slice is not None)
         assert (node is not None)
         assert (desired_image is not None)
-        assert (service_instance.creator is not None)
         assert (node.site_deployment.deployment is not None)
         assert (desired_image is not None)
 
+        assert(service_instance.volt)
+        assert(service_instance.volt.subscriber)
+        assert(service_instance.volt.subscriber.creator)
+
         instance = Instance(slice=slice,
                             node=node,
                             image=desired_image,
-                            creator=service_instance.creator,
+                            creator=service_instance.volt.subscriber.creator,
                             deployment=node.site_deployment.deployment,
                             flavor=flavors[0],
                             isolation=slice.default_isolation,
diff --git a/xos/synchronizer/model_policies/test_model_policy_vsgserviceinstance.py b/xos/synchronizer/model_policies/test_model_policy_vsgserviceinstance.py
index 99cdd94..5dd860d 100644
--- a/xos/synchronizer/model_policies/test_model_policy_vsgserviceinstance.py
+++ b/xos/synchronizer/model_policies/test_model_policy_vsgserviceinstance.py
@@ -79,7 +79,7 @@
         self.policy = VSGServiceInstancePolicy()
         self.tenant = VSGServiceInstance()
         self.user = User(email="testadmin@test.org")
-        self.tenant = VSGServiceInstance(creator=self.user, id=1)
+        self.tenant = VSGServiceInstance(id=1)
         self.flavor = Flavor(name="m1.small")
         self.npt_ctag = NetworkParameterType(name="c_tag", id=1)
         self.npt_stag = NetworkParameterType(name="s_tag", id=2)
@@ -378,7 +378,6 @@
 
             # make sure Instance was created
             self.assertNotEqual(instance, None)
-            self.assertEqual(instance.creator.email, "testadmin@test.org")
             self.assertEqual(instance.image.name, "trusty-server-multi-nic")
             self.assertEqual(instance.flavor.name, "m1.small")
             self.assertEqual(instance.isolation, "vm")
diff --git a/xos/synchronizer/models/models.py b/xos/synchronizer/models/models.py
deleted file mode 100644
index 108de2f..0000000
--- a/xos/synchronizer/models/models.py
+++ /dev/null
@@ -1,41 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from xos.exceptions import *
-from models_decl import *
-
-class VSGServiceInstance(VSGServiceInstance_decl):
-    class Meta:
-        proxy = True
-
-    def __init__(self, *args, **kwargs):
-        super(VSGServiceInstance, self).__init__(*args, **kwargs)
-
-    def save(self, *args, **kwargs):
-        if not self.creator:
-            if not getattr(self, "caller", None):
-                # caller must be set when creating a vCPE since it creates a slice
-                raise XOSProgrammingError("VSGServiceInstance's self.caller was not set")
-            self.creator = self.caller
-            if not self.creator:
-                raise XOSProgrammingError("VSGServiceInstance's self.creator was not set")
-
-        super(VSGServiceInstance, self).save(*args, **kwargs)
-
-class VSGService(VSGService_decl):
-    class Meta:
-        proxy = True
-
-    pass
diff --git a/xos/synchronizer/models/vsg.xproto b/xos/synchronizer/models/vsg.xproto
index 06584b0..4540f78 100644
--- a/xos/synchronizer/models/vsg.xproto
+++ b/xos/synchronizer/models/vsg.xproto
@@ -1,7 +1,6 @@
 option name = "vsg";
 option app_label = "vsg";
 option kind = "vCPE";
-option legacy="True";
 
 message VSGService (Service){
     option verbose_name = "vSG Service";
diff --git a/xos/synchronizer/steps/test_sync_vsgserviceinstance.py b/xos/synchronizer/steps/test_sync_vsgserviceinstance.py
index 31f3674..36f8307 100644
--- a/xos/synchronizer/steps/test_sync_vsgserviceinstance.py
+++ b/xos/synchronizer/steps/test_sync_vsgserviceinstance.py
@@ -99,8 +99,7 @@
                                                      "url_filter_level", "cdn_enable", "uplink_speed",
                                                      "downlink_speed", "enable_uverse", "status"])
         self.volt = MagicMock(s_tag=111, c_tag=222, subscriber=self.subscriber)
-        self.tenant = VSGServiceInstance(creator=self.user,
-                                         id=401,
+        self.tenant = VSGServiceInstance(id=401,
                                          volt=self.volt,
                                          owner=self.service,
                                          wan_container_ip="10.7.1.3",
