diff --git a/planetstack/apigen/deps.template.json b/planetstack/apigen/deps.template.json
old mode 100755
new mode 100644
diff --git a/planetstack/apigen/dot.template.dot b/planetstack/apigen/dot.template.dot
old mode 100755
new mode 100644
diff --git a/planetstack/apigen/modelgen b/planetstack/apigen/modelgen
old mode 100755
new mode 100644
diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index e0664a5..9e9d0c6 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -414,6 +414,13 @@
     def queryset(self, request):
         return ControllerPrivilege.select_by_user(request.user)
 
+class ControllerSiteInline(PlStackTabularInline):
+    model = ControllerSite
+    extra = 0
+    suit_classes = 'suit-tab suit-tab-admin-only'
+    fields = ['controller', 'site_deployment', 'tenant_id']
+
+
 class SitePrivilegeInline(PlStackTabularInline):
     model = SitePrivilege
     extra = 0
@@ -432,8 +439,8 @@
     def queryset(self, request):
         return SitePrivilege.select_by_user(request.user)
 
-class SiteDeploymentsInline(PlStackTabularInline):
-    model = SiteDeployments
+class SiteDeploymentInline(PlStackTabularInline):
+    model = SiteDeployment
     extra = 0
     suit_classes = 'suit-tab suit-tab-deployments'
     fields = ['backend_status_icon', 'deployment','site', 'controller']
@@ -449,10 +456,10 @@
         if db_field.name == 'controller':
             kwargs['queryset'] = Controller.select_by_user(request.user)
 
-        return super(SiteDeploymentsInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
+        return super(SiteDeploymentInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
 
     def queryset(self, request):
-        return SiteDeployments.select_by_user(request.user)
+        return SiteDeployment.select_by_user(request.user)
 
 
 class SlicePrivilegeInline(PlStackTabularInline):
@@ -597,7 +604,7 @@
         #    create/destroy the through models ourselves. There has to be
         #    a better way...
 
-        self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployments.all(), SiteDeployments, "deployment", "site")
+        self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployments.all(), SiteDeployment, "deployment", "site")
         self.manipulate_m2m_objs(deployment, self.cleaned_data['images'], deployment.imagedeployments.all(), ImageDeployments, "deployment", "image")
         # manipulate_m2m_objs doesn't work for Flavor/Deployment relationship
         # so well handle that manually here
@@ -656,7 +663,7 @@
 
 class ControllerAdminForm(forms.ModelForm):
     site_deployments = forms.ModelMultipleChoiceField(
-        queryset=SiteDeployments.objects.all(),
+        queryset=SiteDeployment.objects.all(),
         required=False,
         help_text="Select which sites deployments are managed by this controller",
         widget=FilteredSelectMultiple(
@@ -710,7 +717,7 @@
             # save_m2m() doesn't seem to work with 'through' relations. So we
             #    create/destroy the through models ourselves. There has to be
             #    a better way...
-            #self.manipulate_m2m_objs(controller, self.cleaned_data['site_deployments'], controller.controllersitedeployments.all(), ControllerSiteDeployments, "controller", "site_deployment")
+            self.manipulate_m2m_objs(controller, self.cleaned_data['site_deployments'], controller.controllersitedeployments.all(), ControllerSite, "controller", "site_deployment")
             pass
     	
         self.save_m2m()
@@ -721,7 +728,7 @@
     model = Controller 
     fieldList = ['name', 'version', 'backend_type', 'auth_url', 'admin_user', 'admin_tenant','admin_password']
     #fieldsets = [(None, {'fields': fieldList, 'classes':['suit-tab suit-tab-general']})]
-    inlines = [] # ,ControllerImagesInline]
+    inlines = [ControllerSiteInline] # ,ControllerImagesInline]
     list_display = ['backend_status_icon', 'name', 'version', 'backend_type']
     list_display_links = ('backend_status_icon', 'name', )
     readonly_fields = ('backend_status_text',)
@@ -787,7 +794,7 @@
     list_display = ('backend_status_icon', 'name', 'login_base','site_url', 'enabled')
     list_display_links = ('backend_status_icon', 'name', )
     filter_horizontal = ('deployments',)
-    inlines = [SliceInline,UserInline,TagInline, SitePrivilegeInline, SiteDeploymentsInline]
+    inlines = [SliceInline,UserInline,TagInline, SitePrivilegeInline, SiteDeploymentInline]
     search_fields = ['name']
 
     def queryset(self, request):
@@ -888,8 +895,8 @@
             raise forms.ValidationError('slice name must begin with %s' % site.login_base)
         return cleaned_data
 
-class ControllerSlicesInline(PlStackTabularInline):
-    model = ControllerSlices
+class ControllerSliceInline(PlStackTabularInline):
+    model = ControllerSlice
     extra = 0
     verbose_name = "Controller Slices"
     verbose_name_plural = "Controller Slices"
@@ -905,7 +912,7 @@
     list_display = ('backend_status_icon', 'name', 'site','serviceClass', 'slice_url', 'max_slivers')
     list_display_links = ('backend_status_icon', 'name', )
     inlines = [SlicePrivilegeInline,SliverInline, TagInline, ReservationInline,SliceNetworkInline]
-    admin_inlines = [ControllerSlicesInline]
+    admin_inlines = [ControllerSliceInline]
 
     user_readonly_fields = fieldList
 
@@ -1472,8 +1479,8 @@
     fields = ['backend_status_icon', 'network','slice']
     readonly_fields = ('backend_status_icon', )
 
-class ControllerNetworksInline(PlStackTabularInline):
-    model = ControllerNetworks
+class ControllerNetworkInline(PlStackTabularInline):
+    model = ControllerNetwork
     extra = 0
     verbose_name_plural = "Controller Networks"
     verbose_name = "Controller Network"
@@ -1495,7 +1502,7 @@
     readonly_fields = ("subnet", )
 
     inlines = [NetworkParameterInline, NetworkSliversInline, NetworkSlicesInline, RouterInline]
-    admin_inlines = [ControllerNetworksInline]
+    admin_inlines = [ControllerNetworkInline]
 
     form=NetworkForm
 
diff --git a/planetstack/core/fixtures/demo_data.json b/planetstack/core/fixtures/demo_data.json
index 400148f..12ee426 100644
--- a/planetstack/core/fixtures/demo_data.json
+++ b/planetstack/core/fixtures/demo_data.json
@@ -636,7 +636,7 @@
 },
 {
     "pk": 1, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-07T23:52:01.453Z", 
         "created": "2014-05-07T23:52:01.453Z", 
@@ -650,7 +650,7 @@
 },
 {
     "pk": 2, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-07T23:52:01.455Z", 
         "created": "2014-05-07T23:52:01.455Z", 
@@ -664,7 +664,7 @@
 },
 {
     "pk": 3, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-07T23:52:01.456Z", 
         "created": "2014-05-07T23:52:01.456Z", 
@@ -678,7 +678,7 @@
 },
 {
     "pk": 4, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-07T23:52:01.457Z", 
         "created": "2014-05-07T23:52:01.456Z", 
@@ -692,7 +692,7 @@
 },
 {
     "pk": 5, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-07T23:52:01.457Z", 
         "created": "2014-05-07T23:52:01.457Z", 
@@ -706,7 +706,7 @@
 },
 {
     "pk": 6, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-07T23:52:01.458Z", 
         "created": "2014-05-07T23:52:01.458Z", 
@@ -720,7 +720,7 @@
 },
 {
     "pk": 7, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:00:37.305Z", 
         "created": "2014-05-08T00:00:37.305Z", 
@@ -734,7 +734,7 @@
 },
 {
     "pk": 8, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:01:18.181Z", 
         "created": "2014-05-08T00:01:18.181Z", 
@@ -748,7 +748,7 @@
 },
 {
     "pk": 9, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:01:29.768Z", 
         "created": "2014-05-08T00:01:29.768Z", 
@@ -762,7 +762,7 @@
 },
 {
     "pk": 10, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:01:52.173Z", 
         "created": "2014-05-08T00:01:52.173Z", 
@@ -776,7 +776,7 @@
 },
 {
     "pk": 11, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:02:03.435Z", 
         "created": "2014-05-08T00:02:03.435Z", 
@@ -790,7 +790,7 @@
 },
 {
     "pk": 12, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:02:16.038Z", 
         "created": "2014-05-08T00:02:16.038Z", 
@@ -804,7 +804,7 @@
 },
 {
     "pk": 13, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:02:33.626Z", 
         "created": "2014-05-08T00:02:33.626Z", 
@@ -818,7 +818,7 @@
 },
 {
     "pk": 14, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:02:46.549Z", 
         "created": "2014-05-08T00:02:46.549Z", 
@@ -832,7 +832,7 @@
 },
 {
     "pk": 15, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:03:01.445Z", 
         "created": "2014-05-08T00:03:01.445Z", 
@@ -846,7 +846,7 @@
 },
 {
     "pk": 16, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:03:18.238Z", 
         "created": "2014-05-08T00:03:18.238Z", 
@@ -860,7 +860,7 @@
 },
 {
     "pk": 17, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:03:32.156Z", 
         "created": "2014-05-08T00:03:32.156Z", 
@@ -874,7 +874,7 @@
 },
 {
     "pk": 18, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:03:45.449Z", 
         "created": "2014-05-08T00:03:45.448Z", 
@@ -888,7 +888,7 @@
 },
 {
     "pk": 19, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:03:59.510Z", 
         "created": "2014-05-08T00:03:59.510Z", 
@@ -902,7 +902,7 @@
 },
 {
     "pk": 20, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:04:12.516Z", 
         "created": "2014-05-08T00:04:12.516Z", 
@@ -916,7 +916,7 @@
 },
 {
     "pk": 21, 
-    "model": "core.sitedeployments", 
+    "model": "core.sitedeployment", 
     "fields": {
         "updated": "2014-05-08T00:04:25.576Z", 
         "created": "2014-05-08T00:04:25.576Z", 
@@ -1851,7 +1851,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-08-27T22:40:05.088Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "HyperCache", 
         "service": 14, 
         "created": "2013-04-03T23:14:11.072Z", 
@@ -1864,7 +1864,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
         "enacted": null
@@ -1875,7 +1875,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:12:27.541Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "Syndicate", 
         "service": 5, 
         "created": "2013-04-03T23:14:11.072Z", 
@@ -1888,7 +1888,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
         "enacted": null
@@ -1899,7 +1899,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:17:33.686Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "DnsRedir", 
         "service": 4, 
         "created": "2013-12-04T22:48:35.584Z", 
@@ -1912,7 +1912,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 8, 
         "enacted": null
@@ -1923,7 +1923,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:18:00.528Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "DnsDemux", 
         "service": 4, 
         "created": "2013-12-04T22:49:23.051Z", 
@@ -1936,7 +1936,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 8, 
         "enacted": null
@@ -1947,7 +1947,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:19:56.253Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "Infrastructure", 
         "service": null, 
         "created": "2013-12-09T14:13:15.392Z", 
@@ -1960,7 +1960,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
         "enacted": null
@@ -1971,7 +1971,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:15:29.953Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "Stork", 
         "service": 8, 
         "created": "2013-12-13T21:49:59.476Z", 
@@ -1984,7 +1984,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
         "enacted": null
@@ -1995,7 +1995,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:16:01.742Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "Owl", 
         "service": 8, 
         "created": "2013-12-13T21:52:15.590Z", 
@@ -2008,7 +2008,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
         "enacted": null
@@ -2019,7 +2019,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:15:02.712Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "Hadoop", 
         "service": null, 
         "created": "2013-12-13T21:54:20.895Z", 
@@ -2032,7 +2032,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
         "enacted": null
@@ -2043,7 +2043,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:14:27.648Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "test", 
         "service": null, 
         "created": "2013-12-13T21:56:57.299Z", 
@@ -2056,7 +2056,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
         "enacted": null
@@ -2067,7 +2067,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-03-23T23:14:00.911Z", 
-        "imagePreference": "Ubuntu 12.04 LTS", 
+        "image_preference": "Ubuntu 12.04 LTS", 
         "name": "test2", 
         "service": null, 
         "created": "2013-12-13T22:00:03.049Z", 
@@ -2080,7 +2080,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank", 
+        "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
         "enacted": null
@@ -2091,7 +2091,7 @@
     "model": "core.slice", 
     "fields": {
         "updated": "2014-05-27T14:05:40.950Z", 
-        "imagePreference": "Hadoop 2.4.0", 
+        "image_preference": "Hadoop 2.4.0", 
         "name": "Analytics", 
         "service": null, 
         "created": "2014-05-20T17:54:07.100Z", 
@@ -2104,7 +2104,7 @@
         "omf_friendly": false, 
         "network": "Private Only", 
         "max_slivers": 10, 
-        "mountDataSets": "GenBank-11-2013", 
+        "mount_data_sets": "GenBank-11-2013", 
         "backend_status": "Provisioning in progress", 
         "creator": 8, 
         "enacted": null
@@ -12784,10 +12784,10 @@
         "created": "2013-12-09T14:15:16.899Z", 
         "deleted": false, 
         "description": "Connect a sliver to the public network using dedicated public IPv4 address", 
-        "sharedNetworkName": "ext-net", 
-        "guaranteedBandwidth": 0, 
+        "shared_network_name": "ext-net", 
+        "guaranteed_bandwidth": 0, 
         "visibility": "public", 
-        "sharedNetworkId": "", 
+        "shared_network_id": "", 
         "translation": "none", 
         "backend_status": "Provisioning in progress", 
         "enacted": "2014-05-12T19:24:09Z"
@@ -12802,10 +12802,10 @@
         "created": "2013-12-09T14:17:29.551Z", 
         "deleted": false, 
         "description": "Connect a sliver to the public network via NAT, with port forwarding", 
-        "sharedNetworkName": "nat-net", 
-        "guaranteedBandwidth": 0, 
+        "shared_network_name": "nat-net", 
+        "guaranteed_bandwidth": 0, 
         "visibility": "private", 
-        "sharedNetworkId": "", 
+        "shared_network_id": "", 
         "translation": "NAT", 
         "backend_status": "Provisioning in progress", 
         "enacted": "2014-05-12T19:23:54Z"
@@ -12820,10 +12820,10 @@
         "created": "2013-12-09T14:18:02.336Z", 
         "deleted": false, 
         "description": "A private virtual network", 
-        "sharedNetworkName": "", 
-        "guaranteedBandwidth": 0, 
+        "shared_network_name": "", 
+        "guaranteed_bandwidth": 0, 
         "visibility": "private", 
-        "sharedNetworkId": "", 
+        "shared_network_id": "", 
         "translation": "none", 
         "backend_status": "Provisioning in progress", 
         "enacted": "2014-05-12T19:23:30Z"
@@ -12841,10 +12841,10 @@
         "created": "2013-12-09T14:24:19.970Z", 
         "deleted": false, 
         "network_id": "7cb4291d-f8d3-4797-83b0-8deefd85bdf5", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -12864,10 +12864,10 @@
         "created": "2013-12-09T14:31:41.605Z", 
         "deleted": false, 
         "network_id": "810b4cb8-9d8e-4eee-becc-676785a07725", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -12887,10 +12887,10 @@
         "created": "2013-12-09T14:33:10.312Z", 
         "deleted": false, 
         "network_id": "4b37f048-11de-4ddd-acaf-2fc5e8716f0e", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -12910,10 +12910,10 @@
         "created": "2013-12-09T14:34:55.754Z", 
         "deleted": false, 
         "network_id": "684386d7-1286-4e58-acda-8ff45deac99e", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -12933,10 +12933,10 @@
         "created": "2013-12-09T14:36:09.261Z", 
         "deleted": false, 
         "network_id": "fa090174-ec59-4b7a-812b-9206d911fb61", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -12956,10 +12956,10 @@
         "created": "2013-12-09T14:37:02.420Z", 
         "deleted": false, 
         "network_id": "017a3914-5eaf-4bcb-8609-6d17ebcdf075", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -12979,10 +12979,10 @@
         "created": "2013-12-09T14:38:11.552Z", 
         "deleted": false, 
         "network_id": "fdf0e3b1-439b-4673-b56e-d9dfe52b2bb7", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -13002,10 +13002,10 @@
         "created": "2013-12-09T14:39:51.262Z", 
         "deleted": false, 
         "network_id": "fdf0e3b1-439b-4673-b56e-d9dfe52b2bb7", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -13025,10 +13025,10 @@
         "created": "2013-12-09T14:41:00.237Z", 
         "deleted": false, 
         "network_id": "fdf0e3b1-439b-4673-b56e-d9dfe52b2bb7", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -13048,10 +13048,10 @@
         "created": "2013-12-09T14:42:03.158Z", 
         "deleted": false, 
         "network_id": "ecdbaf66-b659-4d59-b0b7-1bf6d232ccba", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -13071,10 +13071,10 @@
         "created": "2013-12-09T14:42:49.781Z", 
         "deleted": false, 
         "network_id": "ae4d42e8-a97c-440d-9533-4bcbd62dfb00", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "public-net", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -13094,10 +13094,10 @@
         "created": "2013-12-13T21:51:04.425Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": true, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": true, 
         "template": 4, 
         "owner": 11, 
         "backend_status": "Provisioning in progress", 
@@ -13117,10 +13117,10 @@
         "created": "2013-12-13T21:53:07.783Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": true, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": true, 
         "template": 4, 
         "owner": 12, 
         "backend_status": "Provisioning in progress", 
@@ -13140,10 +13140,10 @@
         "created": "2013-12-13T21:55:51.703Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": true, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": true, 
         "template": 4, 
         "owner": 13, 
         "backend_status": "Provisioning in progress", 
@@ -13163,10 +13163,10 @@
         "created": "2013-12-13T21:57:38.995Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 14, 
         "backend_status": "Provisioning in progress", 
@@ -13186,10 +13186,10 @@
         "created": "2013-12-13T22:00:40.549Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 3, 
         "owner": 15, 
         "backend_status": "Provisioning in progress", 
@@ -13209,10 +13209,10 @@
         "created": "2013-12-18T22:05:09.944Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 4, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -13232,10 +13232,10 @@
         "created": "2013-12-18T22:05:50.112Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 10, 
         "backend_status": "Provisioning in progress", 
@@ -13255,10 +13255,10 @@
         "created": "2013-12-18T22:13:17.310Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 4, 
         "owner": 9, 
         "backend_status": "Provisioning in progress", 
@@ -13278,10 +13278,10 @@
         "created": "2013-12-18T22:13:38.194Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 9, 
         "backend_status": "Provisioning in progress", 
@@ -13301,10 +13301,10 @@
         "created": "2013-12-18T22:16:19.797Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 4, 
         "owner": 8, 
         "backend_status": "Provisioning in progress", 
@@ -13324,10 +13324,10 @@
         "created": "2013-12-18T22:16:38.335Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 8, 
         "backend_status": "Provisioning in progress", 
@@ -13347,13 +13347,13 @@
         "created": "2013-12-18T22:24:19.109Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [
+        "permitted_slices": [
             6, 
             8
         ], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 4, 
         "owner": 4, 
         "backend_status": "Provisioning in progress", 
@@ -13373,10 +13373,10 @@
         "created": "2013-12-18T22:24:38.066Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 4, 
         "backend_status": "Provisioning in progress", 
@@ -13396,10 +13396,10 @@
         "created": "2013-12-18T22:26:46.435Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 4, 
         "owner": 6, 
         "backend_status": "Provisioning in progress", 
@@ -13419,10 +13419,10 @@
         "created": "2013-12-18T22:27:12.647Z", 
         "deleted": false, 
         "network_id": "", 
-        "permittedSlices": [], 
+        "permitted_slices": [], 
         "labels": "", 
-        "guaranteedBandwidth": 0, 
-        "permitAllSlices": false, 
+        "guaranteed_bandwidth": 0, 
+        "permit_all_slices": false, 
         "template": 1, 
         "owner": 6, 
         "backend_status": "Provisioning in progress", 
diff --git a/planetstack/core/fixtures/initial_data.json b/planetstack/core/fixtures/initial_data.json
index aef01f1..a7abdbe 100644
--- a/planetstack/core/fixtures/initial_data.json
+++ b/planetstack/core/fixtures/initial_data.json
@@ -721,7 +721,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": "2014-06-20T01:53:28.687Z"
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 19
 },
 {
@@ -734,7 +734,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": "2014-06-20T01:53:34.657Z"
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 20
 },
 {
@@ -747,7 +747,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": "2014-06-20T01:53:40.604Z"
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 21
 },
 {
@@ -760,7 +760,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": "2014-06-20T01:53:47.047Z"
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 22
 },
 {
@@ -773,7 +773,7 @@
         "backend_status": "Authorization Failed: unsupported operand type(s) for +: 'NoneType' and 'str'",
         "enacted": "2014-08-08T03:49:32.318Z"
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 27
 },
 {
@@ -786,7 +786,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": "2014-08-06T17:46:03.289Z"
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 28
 },
 {
@@ -799,7 +799,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": "2014-08-06T17:46:07.804Z"
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 29
 },
 {
@@ -812,7 +812,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": "2014-08-06T17:46:12.521Z"
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 30
 },
 {
@@ -825,7 +825,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 31
 },
 {
@@ -838,7 +838,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 32
 },
 {
@@ -851,7 +851,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 33
 },
 {
@@ -864,7 +864,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 34
 },
 {
@@ -877,7 +877,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 35
 },
 {
@@ -890,7 +890,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 36
 },
 {
@@ -903,7 +903,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 37
 },
 {
@@ -916,7 +916,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 38
 },
 {
@@ -929,7 +929,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 39
 },
 {
@@ -942,7 +942,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 40
 },
 {
@@ -955,7 +955,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 41
 },
 {
@@ -968,7 +968,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 42
 },
 {
@@ -981,7 +981,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 43
 },
 {
@@ -994,7 +994,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 44
 },
 {
@@ -1007,7 +1007,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 45
 },
 {
@@ -1020,7 +1020,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 46
 },
 {
@@ -1033,7 +1033,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 47
 },
 {
@@ -1046,7 +1046,7 @@
         "backend_status": "Provisioning in progress",
         "enacted": null
     },
-    "model": "core.sitedeployments",
+    "model": "core.sitedeployment",
     "pk": 48
 },
 {
diff --git a/planetstack/core/migrations/0001_initial.py b/planetstack/core/migrations/0001_initial.py
index 8e1ec76..d440ded 100644
--- a/planetstack/core/migrations/0001_initial.py
+++ b/planetstack/core/migrations/0001_initial.py
@@ -41,7 +41,7 @@
                 ('enacted', models.DateTimeField(default=None, null=True)),
                 ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
                 ('deleted', models.BooleanField(default=False)),
-                ('timezone', timezones.fields.TimeZoneField(default=b'America/New_York', max_length=100, choices=[(b'Pacific/Midway', b'(GMT-1100) Pacific/Midway'), (b'Pacific/Niue', b'(GMT-1100) Pacific/Niue'), (b'Pacific/Pago_Pago', b'(GMT-1100) Pacific/Pago_Pago'), (b'America/Adak', b'(GMT-1000) America/Adak'), (b'Pacific/Honolulu', b'(GMT-1000) Pacific/Honolulu'), (b'Pacific/Johnston', b'(GMT-1000) Pacific/Johnston'), (b'Pacific/Rarotonga', b'(GMT-1000) Pacific/Rarotonga'), (b'Pacific/Tahiti', b'(GMT-1000) Pacific/Tahiti'), (b'US/Hawaii', b'(GMT-1000) US/Hawaii'), (b'Pacific/Marquesas', b'(GMT-0930) Pacific/Marquesas'), (b'America/Anchorage', b'(GMT-0900) America/Anchorage'), (b'America/Juneau', b'(GMT-0900) America/Juneau'), (b'America/Nome', b'(GMT-0900) America/Nome'), (b'America/Sitka', b'(GMT-0900) America/Sitka'), (b'America/Yakutat', b'(GMT-0900) America/Yakutat'), (b'Pacific/Gambier', b'(GMT-0900) Pacific/Gambier'), (b'US/Alaska', b'(GMT-0900) US/Alaska'), (b'America/Dawson', b'(GMT-0800) America/Dawson'), (b'America/Los_Angeles', b'(GMT-0800) America/Los_Angeles'), (b'America/Metlakatla', b'(GMT-0800) America/Metlakatla'), (b'America/Santa_Isabel', b'(GMT-0800) America/Santa_Isabel'), (b'America/Tijuana', b'(GMT-0800) America/Tijuana'), (b'America/Vancouver', b'(GMT-0800) America/Vancouver'), (b'America/Whitehorse', b'(GMT-0800) America/Whitehorse'), (b'Canada/Pacific', b'(GMT-0800) Canada/Pacific'), (b'Pacific/Pitcairn', b'(GMT-0800) Pacific/Pitcairn'), (b'US/Pacific', b'(GMT-0800) US/Pacific'), (b'America/Boise', b'(GMT-0700) America/Boise'), (b'America/Cambridge_Bay', b'(GMT-0700) America/Cambridge_Bay'), (b'America/Chihuahua', b'(GMT-0700) America/Chihuahua'), (b'America/Creston', b'(GMT-0700) America/Creston'), (b'America/Dawson_Creek', b'(GMT-0700) America/Dawson_Creek'), (b'America/Denver', b'(GMT-0700) America/Denver'), (b'America/Edmonton', b'(GMT-0700) America/Edmonton'), (b'America/Hermosillo', b'(GMT-0700) America/Hermosillo'), (b'America/Inuvik', b'(GMT-0700) America/Inuvik'), (b'America/Mazatlan', b'(GMT-0700) America/Mazatlan'), (b'America/Ojinaga', b'(GMT-0700) America/Ojinaga'), (b'America/Phoenix', b'(GMT-0700) America/Phoenix'), (b'America/Yellowknife', b'(GMT-0700) America/Yellowknife'), (b'Canada/Mountain', b'(GMT-0700) Canada/Mountain'), (b'US/Arizona', b'(GMT-0700) US/Arizona'), (b'US/Mountain', b'(GMT-0700) US/Mountain'), (b'America/Bahia_Banderas', b'(GMT-0600) America/Bahia_Banderas'), (b'America/Belize', b'(GMT-0600) America/Belize'), (b'America/Cancun', b'(GMT-0600) America/Cancun'), (b'America/Chicago', b'(GMT-0600) America/Chicago'), (b'America/Costa_Rica', b'(GMT-0600) America/Costa_Rica'), (b'America/El_Salvador', b'(GMT-0600) America/El_Salvador'), (b'America/Guatemala', b'(GMT-0600) America/Guatemala'), (b'America/Indiana/Knox', b'(GMT-0600) America/Indiana/Knox'), (b'America/Indiana/Tell_City', b'(GMT-0600) America/Indiana/Tell_City'), (b'America/Managua', b'(GMT-0600) America/Managua'), (b'America/Matamoros', b'(GMT-0600) America/Matamoros'), (b'America/Menominee', b'(GMT-0600) America/Menominee'), (b'America/Merida', b'(GMT-0600) America/Merida'), (b'America/Mexico_City', b'(GMT-0600) America/Mexico_City'), (b'America/Monterrey', b'(GMT-0600) America/Monterrey'), (b'America/North_Dakota/Beulah', b'(GMT-0600) America/North_Dakota/Beulah'), (b'America/North_Dakota/Center', b'(GMT-0600) America/North_Dakota/Center'), (b'America/North_Dakota/New_Salem', b'(GMT-0600) America/North_Dakota/New_Salem'), (b'America/Rainy_River', b'(GMT-0600) America/Rainy_River'), (b'America/Rankin_Inlet', b'(GMT-0600) America/Rankin_Inlet'), (b'America/Regina', b'(GMT-0600) America/Regina'), (b'America/Resolute', b'(GMT-0600) America/Resolute'), (b'America/Swift_Current', b'(GMT-0600) America/Swift_Current'), (b'America/Tegucigalpa', b'(GMT-0600) America/Tegucigalpa'), (b'America/Winnipeg', b'(GMT-0600) America/Winnipeg'), (b'Canada/Central', b'(GMT-0600) Canada/Central'), (b'Pacific/Galapagos', b'(GMT-0600) Pacific/Galapagos'), (b'US/Central', b'(GMT-0600) US/Central'), (b'America/Atikokan', b'(GMT-0500) America/Atikokan'), (b'America/Bogota', b'(GMT-0500) America/Bogota'), (b'America/Cayman', b'(GMT-0500) America/Cayman'), (b'America/Detroit', b'(GMT-0500) America/Detroit'), (b'America/Eirunepe', b'(GMT-0500) America/Eirunepe'), (b'America/Guayaquil', b'(GMT-0500) America/Guayaquil'), (b'America/Havana', b'(GMT-0500) America/Havana'), (b'America/Indiana/Indianapolis', b'(GMT-0500) America/Indiana/Indianapolis'), (b'America/Indiana/Marengo', b'(GMT-0500) America/Indiana/Marengo'), (b'America/Indiana/Petersburg', b'(GMT-0500) America/Indiana/Petersburg'), (b'America/Indiana/Vevay', b'(GMT-0500) America/Indiana/Vevay'), (b'America/Indiana/Vincennes', b'(GMT-0500) America/Indiana/Vincennes'), (b'America/Indiana/Winamac', b'(GMT-0500) America/Indiana/Winamac'), (b'America/Iqaluit', b'(GMT-0500) America/Iqaluit'), (b'America/Jamaica', b'(GMT-0500) America/Jamaica'), (b'America/Kentucky/Louisville', b'(GMT-0500) America/Kentucky/Louisville'), (b'America/Kentucky/Monticello', b'(GMT-0500) America/Kentucky/Monticello'), (b'America/Lima', b'(GMT-0500) America/Lima'), (b'America/Montreal', b'(GMT-0500) America/Montreal'), (b'America/Nassau', b'(GMT-0500) America/Nassau'), (b'America/New_York', b'(GMT-0500) America/New_York'), (b'America/Nipigon', b'(GMT-0500) America/Nipigon'), (b'America/Panama', b'(GMT-0500) America/Panama'), (b'America/Pangnirtung', b'(GMT-0500) America/Pangnirtung'), (b'America/Port-au-Prince', b'(GMT-0500) America/Port-au-Prince'), (b'America/Rio_Branco', b'(GMT-0500) America/Rio_Branco'), (b'America/Thunder_Bay', b'(GMT-0500) America/Thunder_Bay'), (b'America/Toronto', b'(GMT-0500) America/Toronto'), (b'Canada/Eastern', b'(GMT-0500) Canada/Eastern'), (b'Pacific/Easter', b'(GMT-0500) Pacific/Easter'), (b'US/Eastern', b'(GMT-0500) US/Eastern'), (b'America/Caracas', b'(GMT-0430) America/Caracas'), (b'America/Anguilla', b'(GMT-0400) America/Anguilla'), (b'America/Antigua', b'(GMT-0400) America/Antigua'), (b'America/Aruba', b'(GMT-0400) America/Aruba'), (b'America/Barbados', b'(GMT-0400) America/Barbados'), (b'America/Blanc-Sablon', b'(GMT-0400) America/Blanc-Sablon'), (b'America/Boa_Vista', b'(GMT-0400) America/Boa_Vista'), (b'America/Curacao', b'(GMT-0400) America/Curacao'), (b'America/Dominica', b'(GMT-0400) America/Dominica'), (b'America/Glace_Bay', b'(GMT-0400) America/Glace_Bay'), (b'America/Goose_Bay', b'(GMT-0400) America/Goose_Bay'), (b'America/Grand_Turk', b'(GMT-0400) America/Grand_Turk'), (b'America/Grenada', b'(GMT-0400) America/Grenada'), (b'America/Guadeloupe', b'(GMT-0400) America/Guadeloupe'), (b'America/Guyana', b'(GMT-0400) America/Guyana'), (b'America/Halifax', b'(GMT-0400) America/Halifax'), (b'America/Kralendijk', b'(GMT-0400) America/Kralendijk'), (b'America/La_Paz', b'(GMT-0400) America/La_Paz'), (b'America/Lower_Princes', b'(GMT-0400) America/Lower_Princes'), (b'America/Manaus', b'(GMT-0400) America/Manaus'), (b'America/Marigot', b'(GMT-0400) America/Marigot'), (b'America/Martinique', b'(GMT-0400) America/Martinique'), (b'America/Moncton', b'(GMT-0400) America/Moncton'), (b'America/Montserrat', b'(GMT-0400) America/Montserrat'), (b'America/Port_of_Spain', b'(GMT-0400) America/Port_of_Spain'), (b'America/Porto_Velho', b'(GMT-0400) America/Porto_Velho'), (b'America/Puerto_Rico', b'(GMT-0400) America/Puerto_Rico'), (b'America/Santo_Domingo', b'(GMT-0400) America/Santo_Domingo'), (b'America/St_Barthelemy', b'(GMT-0400) America/St_Barthelemy'), (b'America/St_Kitts', b'(GMT-0400) America/St_Kitts'), (b'America/St_Lucia', b'(GMT-0400) America/St_Lucia'), (b'America/St_Thomas', b'(GMT-0400) America/St_Thomas'), (b'America/St_Vincent', b'(GMT-0400) America/St_Vincent'), (b'America/Thule', b'(GMT-0400) America/Thule'), (b'America/Tortola', b'(GMT-0400) America/Tortola'), (b'Atlantic/Bermuda', b'(GMT-0400) Atlantic/Bermuda'), (b'Canada/Atlantic', b'(GMT-0400) Canada/Atlantic'), (b'America/St_Johns', b'(GMT-0330) America/St_Johns'), (b'Canada/Newfoundland', b'(GMT-0330) Canada/Newfoundland'), (b'America/Araguaina', b'(GMT-0300) America/Araguaina'), (b'America/Argentina/Buenos_Aires', b'(GMT-0300) America/Argentina/Buenos_Aires'), (b'America/Argentina/Catamarca', b'(GMT-0300) America/Argentina/Catamarca'), (b'America/Argentina/Cordoba', b'(GMT-0300) America/Argentina/Cordoba'), (b'America/Argentina/Jujuy', b'(GMT-0300) America/Argentina/Jujuy'), (b'America/Argentina/La_Rioja', b'(GMT-0300) America/Argentina/La_Rioja'), (b'America/Argentina/Mendoza', b'(GMT-0300) America/Argentina/Mendoza'), (b'America/Argentina/Rio_Gallegos', b'(GMT-0300) America/Argentina/Rio_Gallegos'), (b'America/Argentina/Salta', b'(GMT-0300) America/Argentina/Salta'), (b'America/Argentina/San_Juan', b'(GMT-0300) America/Argentina/San_Juan'), (b'America/Argentina/San_Luis', b'(GMT-0300) America/Argentina/San_Luis'), (b'America/Argentina/Tucuman', b'(GMT-0300) America/Argentina/Tucuman'), (b'America/Argentina/Ushuaia', b'(GMT-0300) America/Argentina/Ushuaia'), (b'America/Asuncion', b'(GMT-0300) America/Asuncion'), (b'America/Bahia', b'(GMT-0300) America/Bahia'), (b'America/Belem', b'(GMT-0300) America/Belem'), (b'America/Campo_Grande', b'(GMT-0300) America/Campo_Grande'), (b'America/Cayenne', b'(GMT-0300) America/Cayenne'), (b'America/Cuiaba', b'(GMT-0300) America/Cuiaba'), (b'America/Fortaleza', b'(GMT-0300) America/Fortaleza'), (b'America/Godthab', b'(GMT-0300) America/Godthab'), (b'America/Maceio', b'(GMT-0300) America/Maceio'), (b'America/Miquelon', b'(GMT-0300) America/Miquelon'), (b'America/Paramaribo', b'(GMT-0300) America/Paramaribo'), (b'America/Recife', b'(GMT-0300) America/Recife'), (b'America/Santarem', b'(GMT-0300) America/Santarem'), (b'America/Santiago', b'(GMT-0300) America/Santiago'), (b'Antarctica/Palmer', b'(GMT-0300) Antarctica/Palmer'), (b'Antarctica/Rothera', b'(GMT-0300) Antarctica/Rothera'), (b'Atlantic/Stanley', b'(GMT-0300) Atlantic/Stanley'), (b'America/Montevideo', b'(GMT-0200) America/Montevideo'), (b'America/Noronha', b'(GMT-0200) America/Noronha'), (b'America/Sao_Paulo', b'(GMT-0200) America/Sao_Paulo'), (b'Atlantic/South_Georgia', b'(GMT-0200) Atlantic/South_Georgia'), (b'America/Scoresbysund', b'(GMT-0100) America/Scoresbysund'), (b'Atlantic/Azores', b'(GMT-0100) Atlantic/Azores'), (b'Atlantic/Cape_Verde', b'(GMT-0100) Atlantic/Cape_Verde'), (b'Africa/Abidjan', b'(GMT+0000) Africa/Abidjan'), (b'Africa/Accra', b'(GMT+0000) Africa/Accra'), (b'Africa/Bamako', b'(GMT+0000) Africa/Bamako'), (b'Africa/Banjul', b'(GMT+0000) Africa/Banjul'), (b'Africa/Bissau', b'(GMT+0000) Africa/Bissau'), (b'Africa/Casablanca', b'(GMT+0000) Africa/Casablanca'), (b'Africa/Conakry', b'(GMT+0000) Africa/Conakry'), (b'Africa/Dakar', b'(GMT+0000) Africa/Dakar'), (b'Africa/El_Aaiun', b'(GMT+0000) Africa/El_Aaiun'), (b'Africa/Freetown', b'(GMT+0000) Africa/Freetown'), (b'Africa/Lome', b'(GMT+0000) Africa/Lome'), (b'Africa/Monrovia', b'(GMT+0000) Africa/Monrovia'), (b'Africa/Nouakchott', b'(GMT+0000) Africa/Nouakchott'), (b'Africa/Ouagadougou', b'(GMT+0000) Africa/Ouagadougou'), (b'Africa/Sao_Tome', b'(GMT+0000) Africa/Sao_Tome'), (b'America/Danmarkshavn', b'(GMT+0000) America/Danmarkshavn'), (b'Antarctica/Troll', b'(GMT+0000) Antarctica/Troll'), (b'Atlantic/Canary', b'(GMT+0000) Atlantic/Canary'), (b'Atlantic/Faroe', b'(GMT+0000) Atlantic/Faroe'), (b'Atlantic/Madeira', b'(GMT+0000) Atlantic/Madeira'), (b'Atlantic/Reykjavik', b'(GMT+0000) Atlantic/Reykjavik'), (b'Atlantic/St_Helena', b'(GMT+0000) Atlantic/St_Helena'), (b'Europe/Dublin', b'(GMT+0000) Europe/Dublin'), (b'Europe/Guernsey', b'(GMT+0000) Europe/Guernsey'), (b'Europe/Isle_of_Man', b'(GMT+0000) Europe/Isle_of_Man'), (b'Europe/Jersey', b'(GMT+0000) Europe/Jersey'), (b'Europe/Lisbon', b'(GMT+0000) Europe/Lisbon'), (b'Europe/London', b'(GMT+0000) Europe/London'), (b'GMT', b'(GMT+0000) GMT'), (b'UTC', b'(GMT+0000) UTC'), (b'Africa/Algiers', b'(GMT+0100) Africa/Algiers'), (b'Africa/Bangui', b'(GMT+0100) Africa/Bangui'), (b'Africa/Brazzaville', b'(GMT+0100) Africa/Brazzaville'), (b'Africa/Ceuta', b'(GMT+0100) Africa/Ceuta'), (b'Africa/Douala', b'(GMT+0100) Africa/Douala'), (b'Africa/Kinshasa', b'(GMT+0100) Africa/Kinshasa'), (b'Africa/Lagos', b'(GMT+0100) Africa/Lagos'), (b'Africa/Libreville', b'(GMT+0100) Africa/Libreville'), (b'Africa/Luanda', b'(GMT+0100) Africa/Luanda'), (b'Africa/Malabo', b'(GMT+0100) Africa/Malabo'), (b'Africa/Ndjamena', b'(GMT+0100) Africa/Ndjamena'), (b'Africa/Niamey', b'(GMT+0100) Africa/Niamey'), (b'Africa/Porto-Novo', b'(GMT+0100) Africa/Porto-Novo'), (b'Africa/Tunis', b'(GMT+0100) Africa/Tunis'), (b'Arctic/Longyearbyen', b'(GMT+0100) Arctic/Longyearbyen'), (b'Europe/Amsterdam', b'(GMT+0100) Europe/Amsterdam'), (b'Europe/Andorra', b'(GMT+0100) Europe/Andorra'), (b'Europe/Belgrade', b'(GMT+0100) Europe/Belgrade'), (b'Europe/Berlin', b'(GMT+0100) Europe/Berlin'), (b'Europe/Bratislava', b'(GMT+0100) Europe/Bratislava'), (b'Europe/Brussels', b'(GMT+0100) Europe/Brussels'), (b'Europe/Budapest', b'(GMT+0100) Europe/Budapest'), (b'Europe/Busingen', b'(GMT+0100) Europe/Busingen'), (b'Europe/Copenhagen', b'(GMT+0100) Europe/Copenhagen'), (b'Europe/Gibraltar', b'(GMT+0100) Europe/Gibraltar'), (b'Europe/Ljubljana', b'(GMT+0100) Europe/Ljubljana'), (b'Europe/Luxembourg', b'(GMT+0100) Europe/Luxembourg'), (b'Europe/Madrid', b'(GMT+0100) Europe/Madrid'), (b'Europe/Malta', b'(GMT+0100) Europe/Malta'), (b'Europe/Monaco', b'(GMT+0100) Europe/Monaco'), (b'Europe/Oslo', b'(GMT+0100) Europe/Oslo'), (b'Europe/Paris', b'(GMT+0100) Europe/Paris'), (b'Europe/Podgorica', b'(GMT+0100) Europe/Podgorica'), (b'Europe/Prague', b'(GMT+0100) Europe/Prague'), (b'Europe/Rome', b'(GMT+0100) Europe/Rome'), (b'Europe/San_Marino', b'(GMT+0100) Europe/San_Marino'), (b'Europe/Sarajevo', b'(GMT+0100) Europe/Sarajevo'), (b'Europe/Skopje', b'(GMT+0100) Europe/Skopje'), (b'Europe/Stockholm', b'(GMT+0100) Europe/Stockholm'), (b'Europe/Tirane', b'(GMT+0100) Europe/Tirane'), (b'Europe/Vaduz', b'(GMT+0100) Europe/Vaduz'), (b'Europe/Vatican', b'(GMT+0100) Europe/Vatican'), (b'Europe/Vienna', b'(GMT+0100) Europe/Vienna'), (b'Europe/Warsaw', b'(GMT+0100) Europe/Warsaw'), (b'Europe/Zagreb', b'(GMT+0100) Europe/Zagreb'), (b'Europe/Zurich', b'(GMT+0100) Europe/Zurich'), (b'Africa/Blantyre', b'(GMT+0200) Africa/Blantyre'), (b'Africa/Bujumbura', b'(GMT+0200) Africa/Bujumbura'), (b'Africa/Cairo', b'(GMT+0200) Africa/Cairo'), (b'Africa/Gaborone', b'(GMT+0200) Africa/Gaborone'), (b'Africa/Harare', b'(GMT+0200) Africa/Harare'), (b'Africa/Johannesburg', b'(GMT+0200) Africa/Johannesburg'), (b'Africa/Kigali', b'(GMT+0200) Africa/Kigali'), (b'Africa/Lubumbashi', b'(GMT+0200) Africa/Lubumbashi'), (b'Africa/Lusaka', b'(GMT+0200) Africa/Lusaka'), (b'Africa/Maputo', b'(GMT+0200) Africa/Maputo'), (b'Africa/Maseru', b'(GMT+0200) Africa/Maseru'), (b'Africa/Mbabane', b'(GMT+0200) Africa/Mbabane'), (b'Africa/Tripoli', b'(GMT+0200) Africa/Tripoli'), (b'Africa/Windhoek', b'(GMT+0200) Africa/Windhoek'), (b'Asia/Amman', b'(GMT+0200) Asia/Amman'), (b'Asia/Beirut', b'(GMT+0200) Asia/Beirut'), (b'Asia/Damascus', b'(GMT+0200) Asia/Damascus'), (b'Asia/Gaza', b'(GMT+0200) Asia/Gaza'), (b'Asia/Hebron', b'(GMT+0200) Asia/Hebron'), (b'Asia/Jerusalem', b'(GMT+0200) Asia/Jerusalem'), (b'Asia/Nicosia', b'(GMT+0200) Asia/Nicosia'), (b'Europe/Athens', b'(GMT+0200) Europe/Athens'), (b'Europe/Bucharest', b'(GMT+0200) Europe/Bucharest'), (b'Europe/Chisinau', b'(GMT+0200) Europe/Chisinau'), (b'Europe/Helsinki', b'(GMT+0200) Europe/Helsinki'), (b'Europe/Istanbul', b'(GMT+0200) Europe/Istanbul'), (b'Europe/Kaliningrad', b'(GMT+0200) Europe/Kaliningrad'), (b'Europe/Kiev', b'(GMT+0200) Europe/Kiev'), (b'Europe/Mariehamn', b'(GMT+0200) Europe/Mariehamn'), (b'Europe/Riga', b'(GMT+0200) Europe/Riga'), (b'Europe/Sofia', b'(GMT+0200) Europe/Sofia'), (b'Europe/Tallinn', b'(GMT+0200) Europe/Tallinn'), (b'Europe/Uzhgorod', b'(GMT+0200) Europe/Uzhgorod'), (b'Europe/Vilnius', b'(GMT+0200) Europe/Vilnius'), (b'Europe/Zaporozhye', b'(GMT+0200) Europe/Zaporozhye'), (b'Africa/Addis_Ababa', b'(GMT+0300) Africa/Addis_Ababa'), (b'Africa/Asmara', b'(GMT+0300) Africa/Asmara'), (b'Africa/Dar_es_Salaam', b'(GMT+0300) Africa/Dar_es_Salaam'), (b'Africa/Djibouti', b'(GMT+0300) Africa/Djibouti'), (b'Africa/Juba', b'(GMT+0300) Africa/Juba'), (b'Africa/Kampala', b'(GMT+0300) Africa/Kampala'), (b'Africa/Khartoum', b'(GMT+0300) Africa/Khartoum'), (b'Africa/Mogadishu', b'(GMT+0300) Africa/Mogadishu'), (b'Africa/Nairobi', b'(GMT+0300) Africa/Nairobi'), (b'Antarctica/Syowa', b'(GMT+0300) Antarctica/Syowa'), (b'Asia/Aden', b'(GMT+0300) Asia/Aden'), (b'Asia/Baghdad', b'(GMT+0300) Asia/Baghdad'), (b'Asia/Bahrain', b'(GMT+0300) Asia/Bahrain'), (b'Asia/Kuwait', b'(GMT+0300) Asia/Kuwait'), (b'Asia/Qatar', b'(GMT+0300) Asia/Qatar'), (b'Asia/Riyadh', b'(GMT+0300) Asia/Riyadh'), (b'Europe/Minsk', b'(GMT+0300) Europe/Minsk'), (b'Europe/Moscow', b'(GMT+0300) Europe/Moscow'), (b'Europe/Simferopol', b'(GMT+0300) Europe/Simferopol'), (b'Europe/Volgograd', b'(GMT+0300) Europe/Volgograd'), (b'Indian/Antananarivo', b'(GMT+0300) Indian/Antananarivo'), (b'Indian/Comoro', b'(GMT+0300) Indian/Comoro'), (b'Indian/Mayotte', b'(GMT+0300) Indian/Mayotte'), (b'Asia/Tehran', b'(GMT+0330) Asia/Tehran'), (b'Asia/Baku', b'(GMT+0400) Asia/Baku'), (b'Asia/Dubai', b'(GMT+0400) Asia/Dubai'), (b'Asia/Muscat', b'(GMT+0400) Asia/Muscat'), (b'Asia/Tbilisi', b'(GMT+0400) Asia/Tbilisi'), (b'Asia/Yerevan', b'(GMT+0400) Asia/Yerevan'), (b'Europe/Samara', b'(GMT+0400) Europe/Samara'), (b'Indian/Mahe', b'(GMT+0400) Indian/Mahe'), (b'Indian/Mauritius', b'(GMT+0400) Indian/Mauritius'), (b'Indian/Reunion', b'(GMT+0400) Indian/Reunion'), (b'Asia/Kabul', b'(GMT+0430) Asia/Kabul'), (b'Antarctica/Mawson', b'(GMT+0500) Antarctica/Mawson'), (b'Asia/Aqtau', b'(GMT+0500) Asia/Aqtau'), (b'Asia/Aqtobe', b'(GMT+0500) Asia/Aqtobe'), (b'Asia/Ashgabat', b'(GMT+0500) Asia/Ashgabat'), (b'Asia/Dushanbe', b'(GMT+0500) Asia/Dushanbe'), (b'Asia/Karachi', b'(GMT+0500) Asia/Karachi'), (b'Asia/Oral', b'(GMT+0500) Asia/Oral'), (b'Asia/Samarkand', b'(GMT+0500) Asia/Samarkand'), (b'Asia/Tashkent', b'(GMT+0500) Asia/Tashkent'), (b'Asia/Yekaterinburg', b'(GMT+0500) Asia/Yekaterinburg'), (b'Indian/Kerguelen', b'(GMT+0500) Indian/Kerguelen'), (b'Indian/Maldives', b'(GMT+0500) Indian/Maldives'), (b'Asia/Colombo', b'(GMT+0530) Asia/Colombo'), (b'Asia/Kolkata', b'(GMT+0530) Asia/Kolkata'), (b'Asia/Kathmandu', b'(GMT+0545) Asia/Kathmandu'), (b'Antarctica/Vostok', b'(GMT+0600) Antarctica/Vostok'), (b'Asia/Almaty', b'(GMT+0600) Asia/Almaty'), (b'Asia/Bishkek', b'(GMT+0600) Asia/Bishkek'), (b'Asia/Dhaka', b'(GMT+0600) Asia/Dhaka'), (b'Asia/Novosibirsk', b'(GMT+0600) Asia/Novosibirsk'), (b'Asia/Omsk', b'(GMT+0600) Asia/Omsk'), (b'Asia/Qyzylorda', b'(GMT+0600) Asia/Qyzylorda'), (b'Asia/Thimphu', b'(GMT+0600) Asia/Thimphu'), (b'Asia/Urumqi', b'(GMT+0600) Asia/Urumqi'), (b'Indian/Chagos', b'(GMT+0600) Indian/Chagos'), (b'Asia/Rangoon', b'(GMT+0630) Asia/Rangoon'), (b'Indian/Cocos', b'(GMT+0630) Indian/Cocos'), (b'Antarctica/Davis', b'(GMT+0700) Antarctica/Davis'), (b'Asia/Bangkok', b'(GMT+0700) Asia/Bangkok'), (b'Asia/Ho_Chi_Minh', b'(GMT+0700) Asia/Ho_Chi_Minh'), (b'Asia/Hovd', b'(GMT+0700) Asia/Hovd'), (b'Asia/Jakarta', b'(GMT+0700) Asia/Jakarta'), (b'Asia/Krasnoyarsk', b'(GMT+0700) Asia/Krasnoyarsk'), (b'Asia/Novokuznetsk', b'(GMT+0700) Asia/Novokuznetsk'), (b'Asia/Phnom_Penh', b'(GMT+0700) Asia/Phnom_Penh'), (b'Asia/Pontianak', b'(GMT+0700) Asia/Pontianak'), (b'Asia/Vientiane', b'(GMT+0700) Asia/Vientiane'), (b'Indian/Christmas', b'(GMT+0700) Indian/Christmas'), (b'Antarctica/Casey', b'(GMT+0800) Antarctica/Casey'), (b'Asia/Brunei', b'(GMT+0800) Asia/Brunei'), (b'Asia/Chita', b'(GMT+0800) Asia/Chita'), (b'Asia/Choibalsan', b'(GMT+0800) Asia/Choibalsan'), (b'Asia/Hong_Kong', b'(GMT+0800) Asia/Hong_Kong'), (b'Asia/Irkutsk', b'(GMT+0800) Asia/Irkutsk'), (b'Asia/Kuala_Lumpur', b'(GMT+0800) Asia/Kuala_Lumpur'), (b'Asia/Kuching', b'(GMT+0800) Asia/Kuching'), (b'Asia/Macau', b'(GMT+0800) Asia/Macau'), (b'Asia/Makassar', b'(GMT+0800) Asia/Makassar'), (b'Asia/Manila', b'(GMT+0800) Asia/Manila'), (b'Asia/Shanghai', b'(GMT+0800) Asia/Shanghai'), (b'Asia/Singapore', b'(GMT+0800) Asia/Singapore'), (b'Asia/Taipei', b'(GMT+0800) Asia/Taipei'), (b'Asia/Ulaanbaatar', b'(GMT+0800) Asia/Ulaanbaatar'), (b'Australia/Perth', b'(GMT+0800) Australia/Perth'), (b'Australia/Eucla', b'(GMT+0845) Australia/Eucla'), (b'Asia/Dili', b'(GMT+0900) Asia/Dili'), (b'Asia/Jayapura', b'(GMT+0900) Asia/Jayapura'), (b'Asia/Khandyga', b'(GMT+0900) Asia/Khandyga'), (b'Asia/Pyongyang', b'(GMT+0900) Asia/Pyongyang'), (b'Asia/Seoul', b'(GMT+0900) Asia/Seoul'), (b'Asia/Tokyo', b'(GMT+0900) Asia/Tokyo'), (b'Asia/Yakutsk', b'(GMT+0900) Asia/Yakutsk'), (b'Pacific/Palau', b'(GMT+0900) Pacific/Palau'), (b'Australia/Darwin', b'(GMT+0930) Australia/Darwin'), (b'Antarctica/DumontDUrville', b'(GMT+1000) Antarctica/DumontDUrville'), (b'Asia/Magadan', b'(GMT+1000) Asia/Magadan'), (b'Asia/Sakhalin', b'(GMT+1000) Asia/Sakhalin'), (b'Asia/Ust-Nera', b'(GMT+1000) Asia/Ust-Nera'), (b'Asia/Vladivostok', b'(GMT+1000) Asia/Vladivostok'), (b'Australia/Brisbane', b'(GMT+1000) Australia/Brisbane'), (b'Australia/Lindeman', b'(GMT+1000) Australia/Lindeman'), (b'Pacific/Chuuk', b'(GMT+1000) Pacific/Chuuk'), (b'Pacific/Guam', b'(GMT+1000) Pacific/Guam'), (b'Pacific/Port_Moresby', b'(GMT+1000) Pacific/Port_Moresby'), (b'Pacific/Saipan', b'(GMT+1000) Pacific/Saipan'), (b'Australia/Adelaide', b'(GMT+1030) Australia/Adelaide'), (b'Australia/Broken_Hill', b'(GMT+1030) Australia/Broken_Hill'), (b'Antarctica/Macquarie', b'(GMT+1100) Antarctica/Macquarie'), (b'Asia/Srednekolymsk', b'(GMT+1100) Asia/Srednekolymsk'), (b'Australia/Currie', b'(GMT+1100) Australia/Currie'), (b'Australia/Hobart', b'(GMT+1100) Australia/Hobart'), (b'Australia/Lord_Howe', b'(GMT+1100) Australia/Lord_Howe'), (b'Australia/Melbourne', b'(GMT+1100) Australia/Melbourne'), (b'Australia/Sydney', b'(GMT+1100) Australia/Sydney'), (b'Pacific/Efate', b'(GMT+1100) Pacific/Efate'), (b'Pacific/Guadalcanal', b'(GMT+1100) Pacific/Guadalcanal'), (b'Pacific/Kosrae', b'(GMT+1100) Pacific/Kosrae'), (b'Pacific/Noumea', b'(GMT+1100) Pacific/Noumea'), (b'Pacific/Pohnpei', b'(GMT+1100) Pacific/Pohnpei'), (b'Pacific/Norfolk', b'(GMT+1130) Pacific/Norfolk'), (b'Asia/Anadyr', b'(GMT+1200) Asia/Anadyr'), (b'Asia/Kamchatka', b'(GMT+1200) Asia/Kamchatka'), (b'Pacific/Funafuti', b'(GMT+1200) Pacific/Funafuti'), (b'Pacific/Kwajalein', b'(GMT+1200) Pacific/Kwajalein'), (b'Pacific/Majuro', b'(GMT+1200) Pacific/Majuro'), (b'Pacific/Nauru', b'(GMT+1200) Pacific/Nauru'), (b'Pacific/Tarawa', b'(GMT+1200) Pacific/Tarawa'), (b'Pacific/Wake', b'(GMT+1200) Pacific/Wake'), (b'Pacific/Wallis', b'(GMT+1200) Pacific/Wallis'), (b'Antarctica/McMurdo', b'(GMT+1300) Antarctica/McMurdo'), (b'Pacific/Auckland', b'(GMT+1300) Pacific/Auckland'), (b'Pacific/Enderbury', b'(GMT+1300) Pacific/Enderbury'), (b'Pacific/Fakaofo', b'(GMT+1300) Pacific/Fakaofo'), (b'Pacific/Fiji', b'(GMT+1300) Pacific/Fiji'), (b'Pacific/Tongatapu', b'(GMT+1300) Pacific/Tongatapu'), (b'Pacific/Chatham', b'(GMT+1345) Pacific/Chatham'), (b'Pacific/Apia', b'(GMT+1400) Pacific/Apia'), (b'Pacific/Kiritimati', b'(GMT+1400) Pacific/Kiritimati')])),
+                ('timezone', timezones.fields.TimeZoneField(default=b'America/New_York', max_length=100, choices=[(b'Pacific/Midway', b'(GMT-1100) Pacific/Midway'), (b'Pacific/Niue', b'(GMT-1100) Pacific/Niue'), (b'Pacific/Pago_Pago', b'(GMT-1100) Pacific/Pago_Pago'), (b'America/Adak', b'(GMT-1000) America/Adak'), (b'Pacific/Honolulu', b'(GMT-1000) Pacific/Honolulu'), (b'Pacific/Johnston', b'(GMT-1000) Pacific/Johnston'), (b'Pacific/Rarotonga', b'(GMT-1000) Pacific/Rarotonga'), (b'Pacific/Tahiti', b'(GMT-1000) Pacific/Tahiti'), (b'US/Hawaii', b'(GMT-1000) US/Hawaii'), (b'Pacific/Marquesas', b'(GMT-0930) Pacific/Marquesas'), (b'America/Anchorage', b'(GMT-0900) America/Anchorage'), (b'America/Juneau', b'(GMT-0900) America/Juneau'), (b'America/Nome', b'(GMT-0900) America/Nome'), (b'America/Sitka', b'(GMT-0900) America/Sitka'), (b'America/Yakutat', b'(GMT-0900) America/Yakutat'), (b'Pacific/Gambier', b'(GMT-0900) Pacific/Gambier'), (b'US/Alaska', b'(GMT-0900) US/Alaska'), (b'America/Dawson', b'(GMT-0800) America/Dawson'), (b'America/Los_Angeles', b'(GMT-0800) America/Los_Angeles'), (b'America/Metlakatla', b'(GMT-0800) America/Metlakatla'), (b'America/Santa_Isabel', b'(GMT-0800) America/Santa_Isabel'), (b'America/Tijuana', b'(GMT-0800) America/Tijuana'), (b'America/Vancouver', b'(GMT-0800) America/Vancouver'), (b'America/Whitehorse', b'(GMT-0800) America/Whitehorse'), (b'Canada/Pacific', b'(GMT-0800) Canada/Pacific'), (b'Pacific/Pitcairn', b'(GMT-0800) Pacific/Pitcairn'), (b'US/Pacific', b'(GMT-0800) US/Pacific'), (b'America/Boise', b'(GMT-0700) America/Boise'), (b'America/Cambridge_Bay', b'(GMT-0700) America/Cambridge_Bay'), (b'America/Chihuahua', b'(GMT-0700) America/Chihuahua'), (b'America/Creston', b'(GMT-0700) America/Creston'), (b'America/Dawson_Creek', b'(GMT-0700) America/Dawson_Creek'), (b'America/Denver', b'(GMT-0700) America/Denver'), (b'America/Edmonton', b'(GMT-0700) America/Edmonton'), (b'America/Hermosillo', b'(GMT-0700) America/Hermosillo'), (b'America/Inuvik', b'(GMT-0700) America/Inuvik'), (b'America/Mazatlan', b'(GMT-0700) America/Mazatlan'), (b'America/Ojinaga', b'(GMT-0700) America/Ojinaga'), (b'America/Phoenix', b'(GMT-0700) America/Phoenix'), (b'America/Shiprock', b'(GMT-0700) America/Shiprock'), (b'America/Yellowknife', b'(GMT-0700) America/Yellowknife'), (b'Canada/Mountain', b'(GMT-0700) Canada/Mountain'), (b'US/Arizona', b'(GMT-0700) US/Arizona'), (b'US/Mountain', b'(GMT-0700) US/Mountain'), (b'America/Bahia_Banderas', b'(GMT-0600) America/Bahia_Banderas'), (b'America/Belize', b'(GMT-0600) America/Belize'), (b'America/Cancun', b'(GMT-0600) America/Cancun'), (b'America/Chicago', b'(GMT-0600) America/Chicago'), (b'America/Costa_Rica', b'(GMT-0600) America/Costa_Rica'), (b'America/El_Salvador', b'(GMT-0600) America/El_Salvador'), (b'America/Guatemala', b'(GMT-0600) America/Guatemala'), (b'America/Indiana/Knox', b'(GMT-0600) America/Indiana/Knox'), (b'America/Indiana/Tell_City', b'(GMT-0600) America/Indiana/Tell_City'), (b'America/Managua', b'(GMT-0600) America/Managua'), (b'America/Matamoros', b'(GMT-0600) America/Matamoros'), (b'America/Menominee', b'(GMT-0600) America/Menominee'), (b'America/Merida', b'(GMT-0600) America/Merida'), (b'America/Mexico_City', b'(GMT-0600) America/Mexico_City'), (b'America/Monterrey', b'(GMT-0600) America/Monterrey'), (b'America/North_Dakota/Beulah', b'(GMT-0600) America/North_Dakota/Beulah'), (b'America/North_Dakota/Center', b'(GMT-0600) America/North_Dakota/Center'), (b'America/North_Dakota/New_Salem', b'(GMT-0600) America/North_Dakota/New_Salem'), (b'America/Rainy_River', b'(GMT-0600) America/Rainy_River'), (b'America/Rankin_Inlet', b'(GMT-0600) America/Rankin_Inlet'), (b'America/Regina', b'(GMT-0600) America/Regina'), (b'America/Resolute', b'(GMT-0600) America/Resolute'), (b'America/Swift_Current', b'(GMT-0600) America/Swift_Current'), (b'America/Tegucigalpa', b'(GMT-0600) America/Tegucigalpa'), (b'America/Winnipeg', b'(GMT-0600) America/Winnipeg'), (b'Canada/Central', b'(GMT-0600) Canada/Central'), (b'Pacific/Galapagos', b'(GMT-0600) Pacific/Galapagos'), (b'US/Central', b'(GMT-0600) US/Central'), (b'America/Atikokan', b'(GMT-0500) America/Atikokan'), (b'America/Bogota', b'(GMT-0500) America/Bogota'), (b'America/Cayman', b'(GMT-0500) America/Cayman'), (b'America/Detroit', b'(GMT-0500) America/Detroit'), (b'America/Eirunepe', b'(GMT-0500) America/Eirunepe'), (b'America/Grand_Turk', b'(GMT-0500) America/Grand_Turk'), (b'America/Guayaquil', b'(GMT-0500) America/Guayaquil'), (b'America/Havana', b'(GMT-0500) America/Havana'), (b'America/Indiana/Indianapolis', b'(GMT-0500) America/Indiana/Indianapolis'), (b'America/Indiana/Marengo', b'(GMT-0500) America/Indiana/Marengo'), (b'America/Indiana/Petersburg', b'(GMT-0500) America/Indiana/Petersburg'), (b'America/Indiana/Vevay', b'(GMT-0500) America/Indiana/Vevay'), (b'America/Indiana/Vincennes', b'(GMT-0500) America/Indiana/Vincennes'), (b'America/Indiana/Winamac', b'(GMT-0500) America/Indiana/Winamac'), (b'America/Iqaluit', b'(GMT-0500) America/Iqaluit'), (b'America/Jamaica', b'(GMT-0500) America/Jamaica'), (b'America/Kentucky/Louisville', b'(GMT-0500) America/Kentucky/Louisville'), (b'America/Kentucky/Monticello', b'(GMT-0500) America/Kentucky/Monticello'), (b'America/Lima', b'(GMT-0500) America/Lima'), (b'America/Montreal', b'(GMT-0500) America/Montreal'), (b'America/Nassau', b'(GMT-0500) America/Nassau'), (b'America/New_York', b'(GMT-0500) America/New_York'), (b'America/Nipigon', b'(GMT-0500) America/Nipigon'), (b'America/Panama', b'(GMT-0500) America/Panama'), (b'America/Pangnirtung', b'(GMT-0500) America/Pangnirtung'), (b'America/Port-au-Prince', b'(GMT-0500) America/Port-au-Prince'), (b'America/Rio_Branco', b'(GMT-0500) America/Rio_Branco'), (b'America/Thunder_Bay', b'(GMT-0500) America/Thunder_Bay'), (b'America/Toronto', b'(GMT-0500) America/Toronto'), (b'Canada/Eastern', b'(GMT-0500) Canada/Eastern'), (b'Pacific/Easter', b'(GMT-0500) Pacific/Easter'), (b'US/Eastern', b'(GMT-0500) US/Eastern'), (b'America/Caracas', b'(GMT-0430) America/Caracas'), (b'America/Anguilla', b'(GMT-0400) America/Anguilla'), (b'America/Antigua', b'(GMT-0400) America/Antigua'), (b'America/Aruba', b'(GMT-0400) America/Aruba'), (b'America/Barbados', b'(GMT-0400) America/Barbados'), (b'America/Blanc-Sablon', b'(GMT-0400) America/Blanc-Sablon'), (b'America/Boa_Vista', b'(GMT-0400) America/Boa_Vista'), (b'America/Curacao', b'(GMT-0400) America/Curacao'), (b'America/Dominica', b'(GMT-0400) America/Dominica'), (b'America/Glace_Bay', b'(GMT-0400) America/Glace_Bay'), (b'America/Goose_Bay', b'(GMT-0400) America/Goose_Bay'), (b'America/Grenada', b'(GMT-0400) America/Grenada'), (b'America/Guadeloupe', b'(GMT-0400) America/Guadeloupe'), (b'America/Guyana', b'(GMT-0400) America/Guyana'), (b'America/Halifax', b'(GMT-0400) America/Halifax'), (b'America/Kralendijk', b'(GMT-0400) America/Kralendijk'), (b'America/La_Paz', b'(GMT-0400) America/La_Paz'), (b'America/Lower_Princes', b'(GMT-0400) America/Lower_Princes'), (b'America/Manaus', b'(GMT-0400) America/Manaus'), (b'America/Marigot', b'(GMT-0400) America/Marigot'), (b'America/Martinique', b'(GMT-0400) America/Martinique'), (b'America/Moncton', b'(GMT-0400) America/Moncton'), (b'America/Montserrat', b'(GMT-0400) America/Montserrat'), (b'America/Port_of_Spain', b'(GMT-0400) America/Port_of_Spain'), (b'America/Porto_Velho', b'(GMT-0400) America/Porto_Velho'), (b'America/Puerto_Rico', b'(GMT-0400) America/Puerto_Rico'), (b'America/Santo_Domingo', b'(GMT-0400) America/Santo_Domingo'), (b'America/St_Barthelemy', b'(GMT-0400) America/St_Barthelemy'), (b'America/St_Kitts', b'(GMT-0400) America/St_Kitts'), (b'America/St_Lucia', b'(GMT-0400) America/St_Lucia'), (b'America/St_Thomas', b'(GMT-0400) America/St_Thomas'), (b'America/St_Vincent', b'(GMT-0400) America/St_Vincent'), (b'America/Thule', b'(GMT-0400) America/Thule'), (b'America/Tortola', b'(GMT-0400) America/Tortola'), (b'Atlantic/Bermuda', b'(GMT-0400) Atlantic/Bermuda'), (b'Canada/Atlantic', b'(GMT-0400) Canada/Atlantic'), (b'America/St_Johns', b'(GMT-0330) America/St_Johns'), (b'Canada/Newfoundland', b'(GMT-0330) Canada/Newfoundland'), (b'America/Araguaina', b'(GMT-0300) America/Araguaina'), (b'America/Argentina/Buenos_Aires', b'(GMT-0300) America/Argentina/Buenos_Aires'), (b'America/Argentina/Catamarca', b'(GMT-0300) America/Argentina/Catamarca'), (b'America/Argentina/Cordoba', b'(GMT-0300) America/Argentina/Cordoba'), (b'America/Argentina/Jujuy', b'(GMT-0300) America/Argentina/Jujuy'), (b'America/Argentina/La_Rioja', b'(GMT-0300) America/Argentina/La_Rioja'), (b'America/Argentina/Mendoza', b'(GMT-0300) America/Argentina/Mendoza'), (b'America/Argentina/Rio_Gallegos', b'(GMT-0300) America/Argentina/Rio_Gallegos'), (b'America/Argentina/Salta', b'(GMT-0300) America/Argentina/Salta'), (b'America/Argentina/San_Juan', b'(GMT-0300) America/Argentina/San_Juan'), (b'America/Argentina/San_Luis', b'(GMT-0300) America/Argentina/San_Luis'), (b'America/Argentina/Tucuman', b'(GMT-0300) America/Argentina/Tucuman'), (b'America/Argentina/Ushuaia', b'(GMT-0300) America/Argentina/Ushuaia'), (b'America/Asuncion', b'(GMT-0300) America/Asuncion'), (b'America/Bahia', b'(GMT-0300) America/Bahia'), (b'America/Belem', b'(GMT-0300) America/Belem'), (b'America/Campo_Grande', b'(GMT-0300) America/Campo_Grande'), (b'America/Cayenne', b'(GMT-0300) America/Cayenne'), (b'America/Cuiaba', b'(GMT-0300) America/Cuiaba'), (b'America/Fortaleza', b'(GMT-0300) America/Fortaleza'), (b'America/Godthab', b'(GMT-0300) America/Godthab'), (b'America/Maceio', b'(GMT-0300) America/Maceio'), (b'America/Miquelon', b'(GMT-0300) America/Miquelon'), (b'America/Paramaribo', b'(GMT-0300) America/Paramaribo'), (b'America/Recife', b'(GMT-0300) America/Recife'), (b'America/Santarem', b'(GMT-0300) America/Santarem'), (b'America/Santiago', b'(GMT-0300) America/Santiago'), (b'Antarctica/Palmer', b'(GMT-0300) Antarctica/Palmer'), (b'Antarctica/Rothera', b'(GMT-0300) Antarctica/Rothera'), (b'Atlantic/Stanley', b'(GMT-0300) Atlantic/Stanley'), (b'America/Montevideo', b'(GMT-0200) America/Montevideo'), (b'America/Noronha', b'(GMT-0200) America/Noronha'), (b'America/Sao_Paulo', b'(GMT-0200) America/Sao_Paulo'), (b'Atlantic/South_Georgia', b'(GMT-0200) Atlantic/South_Georgia'), (b'America/Scoresbysund', b'(GMT-0100) America/Scoresbysund'), (b'Atlantic/Azores', b'(GMT-0100) Atlantic/Azores'), (b'Atlantic/Cape_Verde', b'(GMT-0100) Atlantic/Cape_Verde'), (b'Africa/Abidjan', b'(GMT+0000) Africa/Abidjan'), (b'Africa/Accra', b'(GMT+0000) Africa/Accra'), (b'Africa/Bamako', b'(GMT+0000) Africa/Bamako'), (b'Africa/Banjul', b'(GMT+0000) Africa/Banjul'), (b'Africa/Bissau', b'(GMT+0000) Africa/Bissau'), (b'Africa/Casablanca', b'(GMT+0000) Africa/Casablanca'), (b'Africa/Conakry', b'(GMT+0000) Africa/Conakry'), (b'Africa/Dakar', b'(GMT+0000) Africa/Dakar'), (b'Africa/El_Aaiun', b'(GMT+0000) Africa/El_Aaiun'), (b'Africa/Freetown', b'(GMT+0000) Africa/Freetown'), (b'Africa/Lome', b'(GMT+0000) Africa/Lome'), (b'Africa/Monrovia', b'(GMT+0000) Africa/Monrovia'), (b'Africa/Nouakchott', b'(GMT+0000) Africa/Nouakchott'), (b'Africa/Ouagadougou', b'(GMT+0000) Africa/Ouagadougou'), (b'Africa/Sao_Tome', b'(GMT+0000) Africa/Sao_Tome'), (b'America/Danmarkshavn', b'(GMT+0000) America/Danmarkshavn'), (b'Atlantic/Canary', b'(GMT+0000) Atlantic/Canary'), (b'Atlantic/Faroe', b'(GMT+0000) Atlantic/Faroe'), (b'Atlantic/Madeira', b'(GMT+0000) Atlantic/Madeira'), (b'Atlantic/Reykjavik', b'(GMT+0000) Atlantic/Reykjavik'), (b'Atlantic/St_Helena', b'(GMT+0000) Atlantic/St_Helena'), (b'Europe/Dublin', b'(GMT+0000) Europe/Dublin'), (b'Europe/Guernsey', b'(GMT+0000) Europe/Guernsey'), (b'Europe/Isle_of_Man', b'(GMT+0000) Europe/Isle_of_Man'), (b'Europe/Jersey', b'(GMT+0000) Europe/Jersey'), (b'Europe/Lisbon', b'(GMT+0000) Europe/Lisbon'), (b'Europe/London', b'(GMT+0000) Europe/London'), (b'GMT', b'(GMT+0000) GMT'), (b'UTC', b'(GMT+0000) UTC'), (b'Africa/Algiers', b'(GMT+0100) Africa/Algiers'), (b'Africa/Bangui', b'(GMT+0100) Africa/Bangui'), (b'Africa/Brazzaville', b'(GMT+0100) Africa/Brazzaville'), (b'Africa/Ceuta', b'(GMT+0100) Africa/Ceuta'), (b'Africa/Douala', b'(GMT+0100) Africa/Douala'), (b'Africa/Kinshasa', b'(GMT+0100) Africa/Kinshasa'), (b'Africa/Lagos', b'(GMT+0100) Africa/Lagos'), (b'Africa/Libreville', b'(GMT+0100) Africa/Libreville'), (b'Africa/Luanda', b'(GMT+0100) Africa/Luanda'), (b'Africa/Malabo', b'(GMT+0100) Africa/Malabo'), (b'Africa/Ndjamena', b'(GMT+0100) Africa/Ndjamena'), (b'Africa/Niamey', b'(GMT+0100) Africa/Niamey'), (b'Africa/Porto-Novo', b'(GMT+0100) Africa/Porto-Novo'), (b'Africa/Tunis', b'(GMT+0100) Africa/Tunis'), (b'Arctic/Longyearbyen', b'(GMT+0100) Arctic/Longyearbyen'), (b'Europe/Amsterdam', b'(GMT+0100) Europe/Amsterdam'), (b'Europe/Andorra', b'(GMT+0100) Europe/Andorra'), (b'Europe/Belgrade', b'(GMT+0100) Europe/Belgrade'), (b'Europe/Berlin', b'(GMT+0100) Europe/Berlin'), (b'Europe/Bratislava', b'(GMT+0100) Europe/Bratislava'), (b'Europe/Brussels', b'(GMT+0100) Europe/Brussels'), (b'Europe/Budapest', b'(GMT+0100) Europe/Budapest'), (b'Europe/Copenhagen', b'(GMT+0100) Europe/Copenhagen'), (b'Europe/Gibraltar', b'(GMT+0100) Europe/Gibraltar'), (b'Europe/Ljubljana', b'(GMT+0100) Europe/Ljubljana'), (b'Europe/Luxembourg', b'(GMT+0100) Europe/Luxembourg'), (b'Europe/Madrid', b'(GMT+0100) Europe/Madrid'), (b'Europe/Malta', b'(GMT+0100) Europe/Malta'), (b'Europe/Monaco', b'(GMT+0100) Europe/Monaco'), (b'Europe/Oslo', b'(GMT+0100) Europe/Oslo'), (b'Europe/Paris', b'(GMT+0100) Europe/Paris'), (b'Europe/Podgorica', b'(GMT+0100) Europe/Podgorica'), (b'Europe/Prague', b'(GMT+0100) Europe/Prague'), (b'Europe/Rome', b'(GMT+0100) Europe/Rome'), (b'Europe/San_Marino', b'(GMT+0100) Europe/San_Marino'), (b'Europe/Sarajevo', b'(GMT+0100) Europe/Sarajevo'), (b'Europe/Skopje', b'(GMT+0100) Europe/Skopje'), (b'Europe/Stockholm', b'(GMT+0100) Europe/Stockholm'), (b'Europe/Tirane', b'(GMT+0100) Europe/Tirane'), (b'Europe/Vaduz', b'(GMT+0100) Europe/Vaduz'), (b'Europe/Vatican', b'(GMT+0100) Europe/Vatican'), (b'Europe/Vienna', b'(GMT+0100) Europe/Vienna'), (b'Europe/Warsaw', b'(GMT+0100) Europe/Warsaw'), (b'Europe/Zagreb', b'(GMT+0100) Europe/Zagreb'), (b'Europe/Zurich', b'(GMT+0100) Europe/Zurich'), (b'Africa/Blantyre', b'(GMT+0200) Africa/Blantyre'), (b'Africa/Bujumbura', b'(GMT+0200) Africa/Bujumbura'), (b'Africa/Cairo', b'(GMT+0200) Africa/Cairo'), (b'Africa/Gaborone', b'(GMT+0200) Africa/Gaborone'), (b'Africa/Harare', b'(GMT+0200) Africa/Harare'), (b'Africa/Johannesburg', b'(GMT+0200) Africa/Johannesburg'), (b'Africa/Kigali', b'(GMT+0200) Africa/Kigali'), (b'Africa/Lubumbashi', b'(GMT+0200) Africa/Lubumbashi'), (b'Africa/Lusaka', b'(GMT+0200) Africa/Lusaka'), (b'Africa/Maputo', b'(GMT+0200) Africa/Maputo'), (b'Africa/Maseru', b'(GMT+0200) Africa/Maseru'), (b'Africa/Mbabane', b'(GMT+0200) Africa/Mbabane'), (b'Africa/Tripoli', b'(GMT+0200) Africa/Tripoli'), (b'Africa/Windhoek', b'(GMT+0200) Africa/Windhoek'), (b'Asia/Amman', b'(GMT+0200) Asia/Amman'), (b'Asia/Beirut', b'(GMT+0200) Asia/Beirut'), (b'Asia/Damascus', b'(GMT+0200) Asia/Damascus'), (b'Asia/Gaza', b'(GMT+0200) Asia/Gaza'), (b'Asia/Hebron', b'(GMT+0200) Asia/Hebron'), (b'Asia/Jerusalem', b'(GMT+0200) Asia/Jerusalem'), (b'Asia/Nicosia', b'(GMT+0200) Asia/Nicosia'), (b'Europe/Athens', b'(GMT+0200) Europe/Athens'), (b'Europe/Bucharest', b'(GMT+0200) Europe/Bucharest'), (b'Europe/Chisinau', b'(GMT+0200) Europe/Chisinau'), (b'Europe/Helsinki', b'(GMT+0200) Europe/Helsinki'), (b'Europe/Istanbul', b'(GMT+0200) Europe/Istanbul'), (b'Europe/Kiev', b'(GMT+0200) Europe/Kiev'), (b'Europe/Mariehamn', b'(GMT+0200) Europe/Mariehamn'), (b'Europe/Riga', b'(GMT+0200) Europe/Riga'), (b'Europe/Sofia', b'(GMT+0200) Europe/Sofia'), (b'Europe/Tallinn', b'(GMT+0200) Europe/Tallinn'), (b'Europe/Uzhgorod', b'(GMT+0200) Europe/Uzhgorod'), (b'Europe/Vilnius', b'(GMT+0200) Europe/Vilnius'), (b'Europe/Zaporozhye', b'(GMT+0200) Europe/Zaporozhye'), (b'Africa/Addis_Ababa', b'(GMT+0300) Africa/Addis_Ababa'), (b'Africa/Asmara', b'(GMT+0300) Africa/Asmara'), (b'Africa/Dar_es_Salaam', b'(GMT+0300) Africa/Dar_es_Salaam'), (b'Africa/Djibouti', b'(GMT+0300) Africa/Djibouti'), (b'Africa/Juba', b'(GMT+0300) Africa/Juba'), (b'Africa/Kampala', b'(GMT+0300) Africa/Kampala'), (b'Africa/Khartoum', b'(GMT+0300) Africa/Khartoum'), (b'Africa/Mogadishu', b'(GMT+0300) Africa/Mogadishu'), (b'Africa/Nairobi', b'(GMT+0300) Africa/Nairobi'), (b'Antarctica/Syowa', b'(GMT+0300) Antarctica/Syowa'), (b'Asia/Aden', b'(GMT+0300) Asia/Aden'), (b'Asia/Baghdad', b'(GMT+0300) Asia/Baghdad'), (b'Asia/Bahrain', b'(GMT+0300) Asia/Bahrain'), (b'Asia/Kuwait', b'(GMT+0300) Asia/Kuwait'), (b'Asia/Qatar', b'(GMT+0300) Asia/Qatar'), (b'Asia/Riyadh', b'(GMT+0300) Asia/Riyadh'), (b'Europe/Kaliningrad', b'(GMT+0300) Europe/Kaliningrad'), (b'Europe/Minsk', b'(GMT+0300) Europe/Minsk'), (b'Indian/Antananarivo', b'(GMT+0300) Indian/Antananarivo'), (b'Indian/Comoro', b'(GMT+0300) Indian/Comoro'), (b'Indian/Mayotte', b'(GMT+0300) Indian/Mayotte'), (b'Asia/Tehran', b'(GMT+0330) Asia/Tehran'), (b'Asia/Baku', b'(GMT+0400) Asia/Baku'), (b'Asia/Dubai', b'(GMT+0400) Asia/Dubai'), (b'Asia/Muscat', b'(GMT+0400) Asia/Muscat'), (b'Asia/Tbilisi', b'(GMT+0400) Asia/Tbilisi'), (b'Asia/Yerevan', b'(GMT+0400) Asia/Yerevan'), (b'Europe/Moscow', b'(GMT+0400) Europe/Moscow'), (b'Europe/Samara', b'(GMT+0400) Europe/Samara'), (b'Europe/Simferopol', b'(GMT+0400) Europe/Simferopol'), (b'Europe/Volgograd', b'(GMT+0400) Europe/Volgograd'), (b'Indian/Mahe', b'(GMT+0400) Indian/Mahe'), (b'Indian/Mauritius', b'(GMT+0400) Indian/Mauritius'), (b'Indian/Reunion', b'(GMT+0400) Indian/Reunion'), (b'Asia/Kabul', b'(GMT+0430) Asia/Kabul'), (b'Antarctica/Mawson', b'(GMT+0500) Antarctica/Mawson'), (b'Asia/Aqtau', b'(GMT+0500) Asia/Aqtau'), (b'Asia/Aqtobe', b'(GMT+0500) Asia/Aqtobe'), (b'Asia/Ashgabat', b'(GMT+0500) Asia/Ashgabat'), (b'Asia/Dushanbe', b'(GMT+0500) Asia/Dushanbe'), (b'Asia/Karachi', b'(GMT+0500) Asia/Karachi'), (b'Asia/Oral', b'(GMT+0500) Asia/Oral'), (b'Asia/Samarkand', b'(GMT+0500) Asia/Samarkand'), (b'Asia/Tashkent', b'(GMT+0500) Asia/Tashkent'), (b'Indian/Kerguelen', b'(GMT+0500) Indian/Kerguelen'), (b'Indian/Maldives', b'(GMT+0500) Indian/Maldives'), (b'Asia/Colombo', b'(GMT+0530) Asia/Colombo'), (b'Asia/Kolkata', b'(GMT+0530) Asia/Kolkata'), (b'Asia/Kathmandu', b'(GMT+0545) Asia/Kathmandu'), (b'Antarctica/Vostok', b'(GMT+0600) Antarctica/Vostok'), (b'Asia/Almaty', b'(GMT+0600) Asia/Almaty'), (b'Asia/Bishkek', b'(GMT+0600) Asia/Bishkek'), (b'Asia/Dhaka', b'(GMT+0600) Asia/Dhaka'), (b'Asia/Qyzylorda', b'(GMT+0600) Asia/Qyzylorda'), (b'Asia/Thimphu', b'(GMT+0600) Asia/Thimphu'), (b'Asia/Yekaterinburg', b'(GMT+0600) Asia/Yekaterinburg'), (b'Indian/Chagos', b'(GMT+0600) Indian/Chagos'), (b'Asia/Rangoon', b'(GMT+0630) Asia/Rangoon'), (b'Indian/Cocos', b'(GMT+0630) Indian/Cocos'), (b'Antarctica/Davis', b'(GMT+0700) Antarctica/Davis'), (b'Asia/Bangkok', b'(GMT+0700) Asia/Bangkok'), (b'Asia/Ho_Chi_Minh', b'(GMT+0700) Asia/Ho_Chi_Minh'), (b'Asia/Hovd', b'(GMT+0700) Asia/Hovd'), (b'Asia/Jakarta', b'(GMT+0700) Asia/Jakarta'), (b'Asia/Novokuznetsk', b'(GMT+0700) Asia/Novokuznetsk'), (b'Asia/Novosibirsk', b'(GMT+0700) Asia/Novosibirsk'), (b'Asia/Omsk', b'(GMT+0700) Asia/Omsk'), (b'Asia/Phnom_Penh', b'(GMT+0700) Asia/Phnom_Penh'), (b'Asia/Pontianak', b'(GMT+0700) Asia/Pontianak'), (b'Asia/Vientiane', b'(GMT+0700) Asia/Vientiane'), (b'Indian/Christmas', b'(GMT+0700) Indian/Christmas'), (b'Antarctica/Casey', b'(GMT+0800) Antarctica/Casey'), (b'Asia/Brunei', b'(GMT+0800) Asia/Brunei'), (b'Asia/Choibalsan', b'(GMT+0800) Asia/Choibalsan'), (b'Asia/Chongqing', b'(GMT+0800) Asia/Chongqing'), (b'Asia/Harbin', b'(GMT+0800) Asia/Harbin'), (b'Asia/Hong_Kong', b'(GMT+0800) Asia/Hong_Kong'), (b'Asia/Kashgar', b'(GMT+0800) Asia/Kashgar'), (b'Asia/Krasnoyarsk', b'(GMT+0800) Asia/Krasnoyarsk'), (b'Asia/Kuala_Lumpur', b'(GMT+0800) Asia/Kuala_Lumpur'), (b'Asia/Kuching', b'(GMT+0800) Asia/Kuching'), (b'Asia/Macau', b'(GMT+0800) Asia/Macau'), (b'Asia/Makassar', b'(GMT+0800) Asia/Makassar'), (b'Asia/Manila', b'(GMT+0800) Asia/Manila'), (b'Asia/Shanghai', b'(GMT+0800) Asia/Shanghai'), (b'Asia/Singapore', b'(GMT+0800) Asia/Singapore'), (b'Asia/Taipei', b'(GMT+0800) Asia/Taipei'), (b'Asia/Ulaanbaatar', b'(GMT+0800) Asia/Ulaanbaatar'), (b'Asia/Urumqi', b'(GMT+0800) Asia/Urumqi'), (b'Australia/Perth', b'(GMT+0800) Australia/Perth'), (b'Australia/Eucla', b'(GMT+0845) Australia/Eucla'), (b'Asia/Dili', b'(GMT+0900) Asia/Dili'), (b'Asia/Irkutsk', b'(GMT+0900) Asia/Irkutsk'), (b'Asia/Jayapura', b'(GMT+0900) Asia/Jayapura'), (b'Asia/Pyongyang', b'(GMT+0900) Asia/Pyongyang'), (b'Asia/Seoul', b'(GMT+0900) Asia/Seoul'), (b'Asia/Tokyo', b'(GMT+0900) Asia/Tokyo'), (b'Pacific/Palau', b'(GMT+0900) Pacific/Palau'), (b'Australia/Darwin', b'(GMT+0930) Australia/Darwin'), (b'Antarctica/DumontDUrville', b'(GMT+1000) Antarctica/DumontDUrville'), (b'Asia/Yakutsk', b'(GMT+1000) Asia/Yakutsk'), (b'Australia/Brisbane', b'(GMT+1000) Australia/Brisbane'), (b'Australia/Lindeman', b'(GMT+1000) Australia/Lindeman'), (b'Pacific/Chuuk', b'(GMT+1000) Pacific/Chuuk'), (b'Pacific/Guam', b'(GMT+1000) Pacific/Guam'), (b'Pacific/Port_Moresby', b'(GMT+1000) Pacific/Port_Moresby'), (b'Pacific/Saipan', b'(GMT+1000) Pacific/Saipan'), (b'Australia/Adelaide', b'(GMT+1030) Australia/Adelaide'), (b'Australia/Broken_Hill', b'(GMT+1030) Australia/Broken_Hill'), (b'Antarctica/Macquarie', b'(GMT+1100) Antarctica/Macquarie'), (b'Asia/Sakhalin', b'(GMT+1100) Asia/Sakhalin'), (b'Asia/Vladivostok', b'(GMT+1100) Asia/Vladivostok'), (b'Australia/Currie', b'(GMT+1100) Australia/Currie'), (b'Australia/Hobart', b'(GMT+1100) Australia/Hobart'), (b'Australia/Lord_Howe', b'(GMT+1100) Australia/Lord_Howe'), (b'Australia/Melbourne', b'(GMT+1100) Australia/Melbourne'), (b'Australia/Sydney', b'(GMT+1100) Australia/Sydney'), (b'Pacific/Efate', b'(GMT+1100) Pacific/Efate'), (b'Pacific/Guadalcanal', b'(GMT+1100) Pacific/Guadalcanal'), (b'Pacific/Kosrae', b'(GMT+1100) Pacific/Kosrae'), (b'Pacific/Noumea', b'(GMT+1100) Pacific/Noumea'), (b'Pacific/Pohnpei', b'(GMT+1100) Pacific/Pohnpei'), (b'Pacific/Norfolk', b'(GMT+1130) Pacific/Norfolk'), (b'Asia/Anadyr', b'(GMT+1200) Asia/Anadyr'), (b'Asia/Kamchatka', b'(GMT+1200) Asia/Kamchatka'), (b'Asia/Magadan', b'(GMT+1200) Asia/Magadan'), (b'Pacific/Funafuti', b'(GMT+1200) Pacific/Funafuti'), (b'Pacific/Kwajalein', b'(GMT+1200) Pacific/Kwajalein'), (b'Pacific/Majuro', b'(GMT+1200) Pacific/Majuro'), (b'Pacific/Nauru', b'(GMT+1200) Pacific/Nauru'), (b'Pacific/Tarawa', b'(GMT+1200) Pacific/Tarawa'), (b'Pacific/Wake', b'(GMT+1200) Pacific/Wake'), (b'Pacific/Wallis', b'(GMT+1200) Pacific/Wallis'), (b'Antarctica/McMurdo', b'(GMT+1300) Antarctica/McMurdo'), (b'Antarctica/South_Pole', b'(GMT+1300) Antarctica/South_Pole'), (b'Pacific/Auckland', b'(GMT+1300) Pacific/Auckland'), (b'Pacific/Enderbury', b'(GMT+1300) Pacific/Enderbury'), (b'Pacific/Fakaofo', b'(GMT+1300) Pacific/Fakaofo'), (b'Pacific/Fiji', b'(GMT+1300) Pacific/Fiji'), (b'Pacific/Tongatapu', b'(GMT+1300) Pacific/Tongatapu'), (b'Pacific/Chatham', b'(GMT+1345) Pacific/Chatham'), (b'Pacific/Apia', b'(GMT+1400) Pacific/Apia'), (b'Pacific/Kiritimati', b'(GMT+1400) Pacific/Kiritimati')])),
             ],
             options={
             },
@@ -159,7 +159,7 @@
             bases=(models.Model,),
         ),
         migrations.CreateModel(
-            name='ControllerNetworks',
+            name='ControllerNetwork',
             fields=[
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
@@ -211,7 +211,24 @@
             bases=(models.Model,),
         ),
         migrations.CreateModel(
-            name='ControllerSlices',
+            name='ControllerSite',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
+                ('updated', models.DateTimeField(default=django.utils.timezone.now, auto_now=True)),
+                ('enacted', models.DateTimeField(default=None, null=True, blank=True)),
+                ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
+                ('deleted', models.BooleanField(default=False)),
+                ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, db_index=True, blank=True)),
+                ('controller', models.ForeignKey(related_name=b'controllersite', blank=True, to='core.Controller', null=True)),
+            ],
+            options={
+                'abstract': False,
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='ControllerSlice',
             fields=[
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
@@ -220,7 +237,7 @@
                 ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
                 ('deleted', models.BooleanField(default=False)),
                 ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, blank=True)),
-                ('controller', models.ForeignKey(related_name=b'controllerslices', to='core.Controller')),
+                ('controller', models.ForeignKey(related_name=b'controllerslice', to='core.Controller')),
             ],
             options={
                 'abstract': False,
@@ -228,7 +245,7 @@
             bases=(models.Model,),
         ),
         migrations.CreateModel(
-            name='ControllerUsers',
+            name='ControllerUser',
             fields=[
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
@@ -399,11 +416,11 @@
                 ('subnet', models.CharField(max_length=32, blank=True)),
                 ('ports', models.CharField(blank=True, max_length=1024, null=True, validators=[core.models.network.ValidateNatList])),
                 ('labels', models.CharField(max_length=1024, null=True, blank=True)),
-                ('guaranteedBandwidth', models.IntegerField(default=0)),
-                ('permitAllSlices', models.BooleanField(default=False)),
-                ('topologyParameters', models.TextField(null=True, blank=True)),
-                ('controllerUrl', models.CharField(max_length=1024, null=True, blank=True)),
-                ('controllerParameters', models.TextField(null=True, blank=True)),
+                ('guaranteed_bandwidth', models.IntegerField(default=0)),
+                ('permit_all_slices', models.BooleanField(default=False)),
+                ('topology_parameters', models.TextField(null=True, blank=True)),
+                ('controller_url', models.CharField(max_length=1024, null=True, blank=True)),
+                ('controller_parameters', models.TextField(null=True, blank=True)),
                 ('network_id', models.CharField(help_text=b'Quantum network', max_length=256, null=True, blank=True)),
                 ('router_id', models.CharField(help_text=b'Quantum router id', max_length=256, null=True, blank=True)),
                 ('subnet_id', models.CharField(help_text=b'Quantum subnet id', max_length=256, null=True, blank=True)),
@@ -493,13 +510,13 @@
                 ('deleted', models.BooleanField(default=False)),
                 ('name', models.CharField(max_length=32)),
                 ('description', models.CharField(max_length=1024, null=True, blank=True)),
-                ('guaranteedBandwidth', models.IntegerField(default=0)),
+                ('guaranteed_bandwidth', models.IntegerField(default=0)),
                 ('visibility', models.CharField(default=b'private', max_length=30, choices=[(b'public', b'public'), (b'private', b'private')])),
                 ('translation', models.CharField(default=b'none', max_length=30, choices=[(b'none', b'none'), (b'NAT', b'NAT')])),
-                ('sharedNetworkName', models.CharField(max_length=30, null=True, blank=True)),
-                ('sharedNetworkId', models.CharField(help_text=b'Quantum network', max_length=256, null=True, blank=True)),
-                ('topologyKind', models.CharField(default=b'BigSwitch', max_length=30, choices=[(b'bigswitch', b'BigSwitch'), (b'physical', b'Physical'), (b'custom', b'Custom')])),
-                ('controllerKind', models.CharField(default=None, max_length=30, null=True, blank=True, choices=[(None, b'None'), (b'onos', b'ONOS'), (b'custom', b'Custom')])),
+                ('shared_network_name', models.CharField(max_length=30, null=True, blank=True)),
+                ('shared_network_id', models.CharField(help_text=b'Quantum network', max_length=256, null=True, blank=True)),
+                ('topology_kind', models.CharField(default=b'BigSwitch', max_length=30, choices=[(b'bigswitch', b'BigSwitch'), (b'physical', b'Physical'), (b'custom', b'Custom')])),
+                ('controller_kind', models.CharField(default=None, max_length=30, null=True, blank=True, choices=[(None, b'None'), (b'onos', b'ONOS'), (b'custom', b'Custom')])),
             ],
             options={
                 'abstract': False,
@@ -804,7 +821,7 @@
             bases=(models.Model,),
         ),
         migrations.CreateModel(
-            name='SiteDeployments',
+            name='SiteDeployment',
             fields=[
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
@@ -812,11 +829,10 @@
                 ('enacted', models.DateTimeField(default=None, null=True, blank=True)),
                 ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
                 ('deleted', models.BooleanField(default=False)),
-                ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, blank=True)),
                 ('availability_zone', models.CharField(help_text=b'OpenStack availability zone', max_length=200, null=True, blank=True)),
-                ('controller', models.ForeignKey(related_name=b'sitedeployments', blank=True, to='core.Controller', null=True)),
-                ('deployment', models.ForeignKey(related_name=b'sitedeployments', to='core.Deployment')),
-                ('site', models.ForeignKey(related_name=b'sitedeployments', to='core.Site')),
+                ('controller', models.ForeignKey(related_name=b'sitedeployment', blank=True, to='core.Controller', null=True)),
+                ('deployment', models.ForeignKey(related_name=b'sitedeployment', to='core.Deployment')),
+                ('site', models.ForeignKey(related_name=b'sitedeployment', to='core.Site')),
             ],
             options={
                 'abstract': False,
@@ -869,9 +885,9 @@
                 ('description', models.TextField(help_text=b'High level description of the slice and expected activities', max_length=1024, blank=True)),
                 ('slice_url', models.URLField(max_length=512, blank=True)),
                 ('max_slivers', models.IntegerField(default=10)),
-                ('imagePreference', models.CharField(default=b'Ubuntu 12.04 LTS', max_length=256, null=True, blank=True)),
                 ('network', models.CharField(default=b'Private Only', max_length=256, null=True, blank=True)),
-                ('mountDataSets', models.CharField(default=b'GenBank', max_length=256, null=True, blank=True)),
+                ('image_preference', models.CharField(default=b'Ubuntu 12.04 LTS', max_length=256, null=True, blank=True)),
+                ('mount_data_sets', models.CharField(default=b'GenBank', max_length=256, null=True, blank=True)),
                 ('creator', models.ForeignKey(related_name=b'slices', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
                 ('service', models.ForeignKey(related_name=b'service', blank=True, to='core.Service', null=True)),
                 ('serviceClass', models.ForeignKey(related_name=b'slices', default=core.models.serviceclass.get_default_serviceclass, to='core.ServiceClass', null=True)),
@@ -1089,7 +1105,7 @@
         migrations.AddField(
             model_name='site',
             name='deployments',
-            field=models.ManyToManyField(help_text=b'Select which sites are allowed to host nodes in this deployment', related_name=b'sites', through='core.SiteDeployments', to='core.Deployment', blank=True),
+            field=models.ManyToManyField(help_text=b'Select which sites are allowed to host nodes in this deployment', related_name=b'sites', through='core.SiteDeployment', to='core.Deployment', blank=True),
             preserve_default=True,
         ),
         migrations.AddField(
@@ -1137,7 +1153,7 @@
         migrations.AddField(
             model_name='node',
             name='site_deployment',
-            field=models.ForeignKey(related_name=b'nodes', to='core.SiteDeployments'),
+            field=models.ForeignKey(related_name=b'nodes', to='core.SiteDeployment'),
             preserve_default=True,
         ),
         migrations.AddField(
@@ -1166,7 +1182,7 @@
         ),
         migrations.AddField(
             model_name='network',
-            name='permittedSlices',
+            name='permitted_slices',
             field=models.ManyToManyField(related_name=b'availableNetworks', to='core.Slice', blank=True),
             preserve_default=True,
         ),
@@ -1207,15 +1223,15 @@
             preserve_default=True,
         ),
         migrations.AddField(
-            model_name='controllerslices',
+            model_name='controllerslice',
             name='slice',
-            field=models.ForeignKey(related_name=b'controllerslices', to='core.Slice'),
+            field=models.ForeignKey(related_name=b'controllerslice', to='core.Slice'),
             preserve_default=True,
         ),
         migrations.AddField(
-            model_name='controllersitedeployments',
-            name='site_deployment',
-            field=models.ForeignKey(related_name=b'controllersitedeployments', to='core.SiteDeployments'),
+            model_name='controllersite',
+            name='site',
+            field=models.ForeignKey(related_name=b'controllersite', to='core.Site'),
             preserve_default=True,
         ),
         migrations.AddField(
@@ -1231,7 +1247,7 @@
             preserve_default=True,
         ),
         migrations.AddField(
-            model_name='controllernetworks',
+            model_name='controllernetwork',
             name='network',
             field=models.ForeignKey(related_name=b'controllernetworks', to='core.Network'),
             preserve_default=True,
diff --git a/planetstack/core/migrations/0002_network_field_case.py b/planetstack/core/migrations/0002_network_field_case.py
deleted file mode 100644
index aa94338..0000000
--- a/planetstack/core/migrations/0002_network_field_case.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import timezones.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('core', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.RenameField(
-            model_name='networktemplate',
-            old_name='controllerKind',
-            new_name='controller_kind',
-        ),
-        migrations.RenameField(
-            model_name='networktemplate',
-            old_name='guaranteedBandwidth',
-            new_name='guaranteed_bandwidth',
-        ),
-        migrations.RenameField(
-            model_name='networktemplate',
-            old_name='sharedNetworkId',
-            new_name='shared_network_id',
-        ),
-        migrations.RenameField(
-            model_name='networktemplate',
-            old_name='sharedNetworkName',
-            new_name='shared_network_name',
-        ),
-        migrations.RenameField(
-            model_name='networktemplate',
-            old_name='topologyKind',
-            new_name='topology_kind',
-        ),
-    ]
diff --git a/planetstack/core/migrations/0003_network_field_case.py b/planetstack/core/migrations/0003_network_field_case.py
deleted file mode 100644
index d063363..0000000
--- a/planetstack/core/migrations/0003_network_field_case.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import timezones.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('core', '0002_network_field_case'),
-    ]
-
-    operations = [
-        migrations.RenameField(
-            model_name='network',
-            old_name='controllerParameters',
-            new_name='controller_parameters',
-        ),
-        migrations.RenameField(
-            model_name='network',
-            old_name='controllerUrl',
-            new_name='controller_url',
-        ),
-        migrations.RenameField(
-            model_name='network',
-            old_name='guaranteedBandwidth',
-            new_name='guaranteed_bandwidth',
-        ),
-        migrations.RenameField(
-            model_name='network',
-            old_name='permitAllSlices',
-            new_name='permit_all_slices',
-        ),
-        migrations.RenameField(
-            model_name='network',
-            old_name='permittedSlices',
-            new_name='permitted_slices',
-        ),
-        migrations.RenameField(
-            model_name='network',
-            old_name='topologyParameters',
-            new_name='topology_parameters',
-        ),
-    ]
diff --git a/planetstack/core/migrations/0004_slice_field_case.py b/planetstack/core/migrations/0004_slice_field_case.py
deleted file mode 100644
index 0b911b3..0000000
--- a/planetstack/core/migrations/0004_slice_field_case.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import timezones.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('core', '0003_network_field_case'),
-    ]
-
-    operations = [
-        migrations.RenameField(
-            model_name='slice',
-            old_name='imagePreference',
-            new_name='image_preference',
-        ),
-        migrations.RenameField(
-            model_name='slice',
-            old_name='mountDataSets',
-            new_name='mount_data_sets',
-        ),
-    ]
diff --git a/planetstack/core/models/__init__.py b/planetstack/core/models/__init__.py
index 3a63602..79c6611 100644
--- a/planetstack/core/models/__init__.py
+++ b/planetstack/core/models/__init__.py
@@ -5,13 +5,13 @@
 from .service import ServiceAttribute
 from .tag import Tag
 from .role import Role
-from .site import Site, Deployment, DeploymentRole, DeploymentPrivilege, Controller, ControllerRole, ControllerPrivilege, SiteDeployments
+from .site import Site, Deployment, DeploymentRole, DeploymentPrivilege, Controller, ControllerRole, ControllerPrivilege, ControllerSite, SiteDeployment
 from .dashboard import DashboardView, ControllerDashboardView
 from .user import User, UserDashboardView
 from .serviceclass import ServiceClass
 from .site import ControllerManager, ControllerDeletionManager, ControllerLinkManager,ControllerLinkDeletionManager
-from .slice import Slice, ControllerSlices
-from .controllerusers import ControllerUsers
+from .slice import Slice, ControllerSlice
+from .controlleruser import ControllerUser
 from .image import Image, ImageDeployments, ControllerImages
 from .node import Node
 from .serviceresource import ServiceResource
@@ -26,6 +26,6 @@
 from .sliver import Sliver
 from .reservation import ReservedResource
 from .reservation import Reservation
-from .network import Network, NetworkParameterType, NetworkParameter, NetworkSliver, NetworkTemplate, Router, NetworkSlice, ControllerNetworks
+from .network import Network, NetworkParameterType, NetworkParameter, NetworkSliver, NetworkTemplate, Router, NetworkSlice, ControllerNetwork
 from .billing import Account, Invoice, Charge, UsableObject, Payment
 
diff --git a/planetstack/core/models/controllerusers.py b/planetstack/core/models/controlleruser.py
similarity index 84%
rename from planetstack/core/models/controllerusers.py
rename to planetstack/core/models/controlleruser.py
index 5a3568a..d0fda11 100644
--- a/planetstack/core/models/controllerusers.py
+++ b/planetstack/core/models/controlleruser.py
@@ -6,7 +6,7 @@
 from core.models import PlCoreBase,User,Controller
 from core.models import Controller,ControllerLinkManager,ControllerLinkDeletionManager
 
-class ControllerUsers(PlCoreBase):
+class ControllerUser(PlCoreBase):
     objects = ControllerLinkManager()
     deleted_objects = ControllerLinkDeletionManager()
 
@@ -19,8 +19,8 @@
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
-            qs = ControllerUsers.objects.all()
+            qs = ControllerUser.objects.all()
         else:
             users = Users.select_by_user(user)
-            qs = ControllerUsers.objects.filter(user__in=users)
+            qs = ControllerUser.objects.filter(user__in=users)
         return qs
diff --git a/planetstack/core/models/network.py b/planetstack/core/models/network.py
index 554bbf5..cfaffc3 100644
--- a/planetstack/core/models/network.py
+++ b/planetstack/core/models/network.py
@@ -143,7 +143,7 @@
             qs = Network.objects.filter(owner__in=slices)
         return qs
 
-class ControllerNetworks(PlCoreBase):
+class ControllerNetwork(PlCoreBase):
     objects = ControllerLinkManager()
     deleted_objects = ControllerLinkDeletionManager()
 
diff --git a/planetstack/core/models/node.py b/planetstack/core/models/node.py
index 2ff503e..0884ec1 100644
--- a/planetstack/core/models/node.py
+++ b/planetstack/core/models/node.py
@@ -1,7 +1,7 @@
 import os
 from django.db import models
 from core.models import PlCoreBase
-from core.models import SiteDeployments
+from core.models import SiteDeployment
 from core.models import Tag
 from django.contrib.contenttypes import generic
 
@@ -9,7 +9,7 @@
 
 class Node(PlCoreBase):
     name = models.CharField(max_length=200, unique=True, help_text="Name of the Node")
-    site_deployment = models.ForeignKey(SiteDeployments, related_name='nodes')
+    site_deployment = models.ForeignKey(SiteDeployment, related_name='nodes')
     tags = generic.GenericRelation(Tag)
 
     def __unicode__(self):  return u'%s' % (self.name)
diff --git a/planetstack/core/models/site.py b/planetstack/core/models/site.py
index 69863eb..6b1f3df 100644
--- a/planetstack/core/models/site.py
+++ b/planetstack/core/models/site.py
@@ -105,7 +105,7 @@
     abbreviated_name = models.CharField(max_length=80)
 
     #deployments = models.ManyToManyField('Deployment', blank=True, related_name='sites')
-    deployments = models.ManyToManyField('Deployment', through='SiteDeployments', blank=True, help_text="Select which sites are allowed to host nodes in this deployment", related_name='sites')
+    deployments = models.ManyToManyField('Deployment', through='SiteDeployment', blank=True, help_text="Select which sites are allowed to host nodes in this deployment", related_name='sites')
     tags = generic.GenericRelation(Tag)
 
     def __unicode__(self):  return u'%s' % (self.name)
@@ -308,14 +308,19 @@
 
     def __unicode__(self):  return u'%s %s %s' % (self.name, self.backend_type, self.version)
 
-class SiteDeployments(PlCoreBase):
+class SiteDeployment(PlCoreBase):
     objects = ControllerLinkManager()
     deleted_objects = ControllerLinkDeletionManager()
 
-    site = models.ForeignKey(Site,related_name='sitedeployments')
-    deployment = models.ForeignKey(Deployment,related_name='sitedeployments')
-    controller = models.ForeignKey(Controller, null=True, blank=True, related_name='sitedeployments')
+    site = models.ForeignKey(Site,related_name='sitedeployment')
+    deployment = models.ForeignKey(Deployment,related_name='sitedeployment')
+    controller = models.ForeignKey(Controller, null=True, blank=True, related_name='sitedeployment')
     availability_zone = models.CharField(max_length=200, null=True, blank=True, help_text="OpenStack availability zone")
-    tenant_id = models.CharField(null=True, blank=True, max_length=200, db_index=True, help_text="Keystone tenant id")
 
     def __unicode__(self):  return u'%s %s' % (self.deployment, self.site)
+    
+class ControllerSite(PlCoreBase):
+     
+    site = models.ForeignKey(Site,related_name='controllersite')
+    controller = models.ForeignKey(Controller, null=True, blank=True, related_name='controllersite')
+    tenant_id = models.CharField(null=True, blank=True, max_length=200, db_index=True, help_text="Keystone tenant id")
diff --git a/planetstack/core/models/slice.py b/planetstack/core/models/slice.py
index 52a5dd6..e182388 100644
--- a/planetstack/core/models/slice.py
+++ b/planetstack/core/models/slice.py
@@ -94,7 +94,7 @@
         nets = Network.objects.filter(slices=self)
         nets.delete() 
         # delete slice controllers
-        slice_controllers = ControllerSlices.objects.filter(slice=self)
+        slice_controllers = ControllerSlice.objects.filter(slice=self)
         slice_controllers.delete()
         # delete slice privilege
         slice_privileges = SlicePrivilege.objects.filter(slice=self)
@@ -129,7 +129,7 @@
             qs = SlicePrivilege.objects.filter(id__in=sp_ids)
         return qs
 
-class ControllerSlices(PlCoreBase):
+class ControllerSlice(PlCoreBase):
     objects = ControllerLinkManager()
     deleted_objects = ControllerLinkDeletionManager()
 
@@ -142,10 +142,10 @@
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
-            qs = ControllerSlices.objects.all()
+            qs = ControllerSlice.objects.all()
         else:
             slices = Slice.select_by_user(user)
-            qs = ControllerSlices.objects.filter(slice__in=slices)
+            qs = ControllerSlice.objects.filter(slice__in=slices)
         return qs    
 
     def get_cpu_stats(self):
diff --git a/planetstack/core/static/dashboardStatic.PNG b/planetstack/core/static/dashboardStatic.PNG
old mode 100755
new mode 100644
Binary files differ
diff --git a/planetstack/core/static/logo_opague_circles.png b/planetstack/core/static/logo_opague_circles.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/planetstack/core/static/open-cloud-themed1.png b/planetstack/core/static/open-cloud-themed1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/planetstack/core/static/opencloudApp.png b/planetstack/core/static/opencloudApp.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js b/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
index 952dfb4..28fd72b 100644
--- a/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
+++ b/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
@@ -500,7 +500,7 @@
                             });
 
         define_model(this, {urlRoot: SITEDEPLOYMENT_API,
-                            relatedCollections: {"controllerSiteDeployments": "site_deployment"},
+                            relatedCollections: {"controllerSiteDeployment": "site_deployment"},
                             foreignCollections: ["sites", "deployments", "controllers"],
                             foreignFields: {"site": "sites", "deployment": "deployments", "controller": "controllers"},
                             modelName: "siteDeployment",
diff --git a/planetstack/core/xoslib/up.sh b/planetstack/core/xoslib/up.sh
old mode 100755
new mode 100644
diff --git a/planetstack/dependency_walker.py b/planetstack/dependency_walker.py
old mode 100755
new mode 100644
index bc75b0c..e8d9e9a
--- a/planetstack/dependency_walker.py
+++ b/planetstack/dependency_walker.py
@@ -68,6 +68,7 @@
 			except AttributeError:
 				if not missing_links.has_key(model+'.'+link):
 					print "Model %s missing link for dependency %s"%(model, link)
+                                        logger.log_exc("Model %s missing link for dependency %s"%(model, link))
 					missing_links[model+'.'+link]=True
 
 		if (peer):
diff --git a/planetstack/dmdot b/planetstack/dmdot
old mode 100755
new mode 100644
diff --git a/planetstack/ec2_observer/deleters/__init__.py b/planetstack/ec2_observer/deleters/__init__.py
old mode 100755
new mode 100644
diff --git a/planetstack/ec2_observer/deleters/site_deleter.py b/planetstack/ec2_observer/deleters/site_deleter.py
index b8ca6a1..88a4008 100644
--- a/planetstack/ec2_observer/deleters/site_deleter.py
+++ b/planetstack/ec2_observer/deleters/site_deleter.py
@@ -1,14 +1,14 @@
-from core.models import Site, SiteDeployments
+from core.models import Site, SiteDeployment
 from observer.deleter import Deleter
-from observer.deleters.site_deployment_deleter import SiteDeploymentsDeleter
+from observer.deleters.site_deployment_deleter import SiteDeploymentDeleter
 
 class SiteDeleter(Deleter):
     model='Site'
     
     def call(self, pk):
         site = Site.objects.get(pk=pk)
-        site_deployments = SiteDeployments.objects.filter(site=site)
-        site_deployment_deleter = SiteDeploymentsDeleter()
+        site_deployments = SiteDeployment.objects.filter(site=site)
+        site_deployment_deleter = SiteDeploymentDeleter()
         for site_deployment in site_deployments:
             site_deployment_deleter(site_deployment.id)
         site.delete() 
diff --git a/planetstack/ec2_observer/deleters/site_deployment_deleter.py b/planetstack/ec2_observer/deleters/site_deployment_deleter.py
index cc71d43..db344cd 100644
--- a/planetstack/ec2_observer/deleters/site_deployment_deleter.py
+++ b/planetstack/ec2_observer/deleters/site_deployment_deleter.py
@@ -1,11 +1,11 @@
-from core.models import Site, SiteDeployments
+from core.models import Site, SiteDeployment
 from observer.deleter import Deleter
 
-class SiteDeploymentsDeleter(Deleter):
-    model='SiteDeployments'
+class SiteDeploymentDeleter(Deleter):
+    model='SiteDeployment'
 
     def call(self, pk):
-        site_deployment = SiteDeployments.objects.get(pk=pk)
+        site_deployment = SiteDeployment.objects.get(pk=pk)
         if site_deployment.tenant_id:
             driver = self.driver.admin_driver(deployment=site_deployment.deployment.name)
             driver.delete_tenant(site_deployment.tenant_id)
diff --git a/planetstack/ec2_observer/dmdot b/planetstack/ec2_observer/dmdot
old mode 100755
new mode 100644
diff --git a/planetstack/ec2_observer/event_loop.py b/planetstack/ec2_observer/event_loop.py
index 1f15a8e..1319fec 100644
--- a/planetstack/ec2_observer/event_loop.py
+++ b/planetstack/ec2_observer/event_loop.py
@@ -49,7 +49,7 @@
 	return ig
 
 class PlanetStackObserver:
-	#sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivileges,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
+	#sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivilege,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
 	sync_steps = []
 
 	
diff --git a/planetstack/ec2_observer/start.sh b/planetstack/ec2_observer/start.sh
old mode 100755
new mode 100644
diff --git a/planetstack/ec2_observer/steps/__init__.py b/planetstack/ec2_observer/steps/__init__.py
index e56c4b1..ed44fdb 100644
--- a/planetstack/ec2_observer/steps/__init__.py
+++ b/planetstack/ec2_observer/steps/__init__.py
@@ -2,7 +2,7 @@
 #from .sync_network_slivers import SyncNetworkSlivers
 #from .sync_networks import SyncNetworks
 #from .sync_network_deployments import SyncNetworkDeployments
-#from .sync_site_privileges import SyncSitePrivileges
+#from .sync_site_privileges import SyncSitePrivilege
 #from .sync_slice_memberships import SyncSliceMemberships
 #from .sync_slices import SyncSlices
 #from .sync_sliver_ips import SyncSliverIps
diff --git a/planetstack/ec2_observer/steps/sync_nodes.py b/planetstack/ec2_observer/steps/sync_nodes.py
index 9f032ed..0fa8b61 100644
--- a/planetstack/ec2_observer/steps/sync_nodes.py
+++ b/planetstack/ec2_observer/steps/sync_nodes.py
@@ -20,7 +20,7 @@
             return []
 
         deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
-        current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
+        current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
 
         zone_ret = aws_run('ec2 describe-availability-zones')
         zones = zone_ret['AvailabilityZones']
diff --git a/planetstack/ec2_observer/steps/sync_site_deployments.py b/planetstack/ec2_observer/steps/sync_site_deployments.py
index 7c24f68..5adccb7 100644
--- a/planetstack/ec2_observer/steps/sync_site_deployments.py
+++ b/planetstack/ec2_observer/steps/sync_site_deployments.py
@@ -7,9 +7,9 @@
 from ec2_observer.awslib import *
 import pdb
 
-class SyncSiteDeployments(SyncStep):
+class SyncSiteDeployment(SyncStep):
     requested_interval=86400
-    provides=[SiteDeployments]
+    provides=[SiteDeployment]
 
     def fetch_pending(self, deletion):
         if (deletion):
@@ -29,7 +29,7 @@
         # The syncstep should catch it
         # At any rate, we should not run if there are no deployments
         deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
-        current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
+        current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
         site_dict = {}
 
         for sd in current_site_deployments:
@@ -40,7 +40,7 @@
             try:
                 site_record = site_dict[site]
             except KeyError:
-                sd = SiteDeployments(site=site,deployment=deployment,tenant_id=base64.urlsafe_b64encode(os.urandom(12)))
+                sd = SiteDeployment(site=site,deployment=deployment,tenant_id=base64.urlsafe_b64encode(os.urandom(12)))
                 updated_site_deployments.append(sd)
 
         return updated_site_deployments
diff --git a/planetstack/ec2_observer/steps/sync_sites.py b/planetstack/ec2_observer/steps/sync_sites.py
index 0c1c7cf..0959c71 100644
--- a/planetstack/ec2_observer/steps/sync_sites.py
+++ b/planetstack/ec2_observer/steps/sync_sites.py
@@ -16,7 +16,7 @@
             return []
 
         deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
-        current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
+        current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
 
         zone_ret = aws_run('ec2 describe-availability-zones')
         zones = zone_ret['AvailabilityZones']
diff --git a/planetstack/genapi.py b/planetstack/genapi.py
index 00a5c94..c7b189b 100644
--- a/planetstack/genapi.py
+++ b/planetstack/genapi.py
@@ -89,8 +89,8 @@
         url(r'plstackapi/serviceclasses/$', ServiceClassList.as_view(), name='serviceclass-list'),
         url(r'plstackapi/serviceclasses/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceClassDetail.as_view(), name ='serviceclass-detail'),
     
-        url(r'plstackapi/controllernetworks/$', ControllerNetworksList.as_view(), name='controllernetworks-list'),
-        url(r'plstackapi/controllernetworks/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerNetworksDetail.as_view(), name ='controllernetworks-detail'),
+        url(r'plstackapi/controllernetworks/$', ControllerNetworkList.as_view(), name='controllernetworks-list'),
+        url(r'plstackapi/controllernetworks/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerNetworkDetail.as_view(), name ='controllernetworks-detail'),
     
         url(r'plstackapi/charges/$', ChargeList.as_view(), name='charge-list'),
         url(r'plstackapi/charges/(?P<pk>[a-zA-Z0-9\-]+)/$', ChargeDetail.as_view(), name ='charge-detail'),
@@ -170,8 +170,8 @@
         url(r'plstackapi/deploymentprivileges/$', DeploymentPrivilegeList.as_view(), name='deploymentprivilege-list'),
         url(r'plstackapi/deploymentprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentPrivilegeDetail.as_view(), name ='deploymentprivilege-detail'),
     
-        url(r'plstackapi/controllerusers/$', ControllerUsersList.as_view(), name='controllerusers-list'),
-        url(r'plstackapi/controllerusers/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerUsersDetail.as_view(), name ='controllerusers-detail'),
+        url(r'plstackapi/controllerusers/$', ControllerUserList.as_view(), name='controllerusers-list'),
+        url(r'plstackapi/controllerusers/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerUserDetail.as_view(), name ='controllerusers-detail'),
     
         url(r'plstackapi/deploymentroles/$', DeploymentRoleList.as_view(), name='deploymentrole-list'),
         url(r'plstackapi/deploymentroles/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentRoleDetail.as_view(), name ='deploymentrole-detail'),
@@ -179,8 +179,8 @@
         url(r'plstackapi/usercredentials/$', UserCredentialList.as_view(), name='usercredential-list'),
         url(r'plstackapi/usercredentials/(?P<pk>[a-zA-Z0-9\-]+)/$', UserCredentialDetail.as_view(), name ='usercredential-detail'),
     
-        url(r'plstackapi/sitedeployments/$', SiteDeploymentsList.as_view(), name='sitedeployments-list'),
-        url(r'plstackapi/sitedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDeploymentsDetail.as_view(), name ='sitedeployments-detail'),
+        url(r'plstackapi/sitedeployments/$', SiteDeploymentList.as_view(), name='sitedeployments-list'),
+        url(r'plstackapi/sitedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDeploymentDetail.as_view(), name ='sitedeployments-detail'),
     
         url(r'plstackapi/slicetags/$', SliceTagList.as_view(), name='slicetag-list'),
         url(r'plstackapi/slicetags/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceTagDetail.as_view(), name ='slicetag-detail'),
@@ -194,8 +194,8 @@
         url(r'plstackapi/serviceresources/$', ServiceResourceList.as_view(), name='serviceresource-list'),
         url(r'plstackapi/serviceresources/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceResourceDetail.as_view(), name ='serviceresource-detail'),
     
-        url(r'plstackapi/controllerslices/$', ControllerSlicesList.as_view(), name='controllerslices-list'),
-        url(r'plstackapi/controllerslices/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerSlicesDetail.as_view(), name ='controllerslices-detail'),
+        url(r'plstackapi/controllerslices/$', ControllerSliceList.as_view(), name='controllerslices-list'),
+        url(r'plstackapi/controllerslices/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerSliceDetail.as_view(), name ='controllerslices-detail'),
     
     )
 
@@ -1026,7 +1026,7 @@
 
 
 
-class ControllerNetworksSerializer(serializers.HyperlinkedModelSerializer):
+class ControllerNetworkSerializer(serializers.HyperlinkedModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -1039,10 +1039,10 @@
         except:
             return None
     class Meta:
-        model = ControllerNetworks
+        model = ControllerNetwork
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
 
-class ControllerNetworksIdSerializer(XOSModelSerializer):
+class ControllerNetworkIdSerializer(XOSModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -1055,7 +1055,7 @@
         except:
             return None
     class Meta:
-        model = ControllerNetworks
+        model = ControllerNetwork
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
 
 
@@ -2016,7 +2016,7 @@
 
 
 
-class ControllerUsersSerializer(serializers.HyperlinkedModelSerializer):
+class ControllerUserSerializer(serializers.HyperlinkedModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -2029,10 +2029,10 @@
         except:
             return None
     class Meta:
-        model = ControllerUsers
+        model = ControllerUser
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','user','controller','kuser_id',)
 
-class ControllerUsersIdSerializer(XOSModelSerializer):
+class ControllerUserIdSerializer(XOSModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -2045,7 +2045,7 @@
         except:
             return None
     class Meta:
-        model = ControllerUsers
+        model = ControllerUser
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','user','controller','kuser_id',)
 
 
@@ -2121,7 +2121,7 @@
 
 
 
-class SiteDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
+class SiteDeploymentSerializer(serializers.HyperlinkedModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -2134,10 +2134,10 @@
         except:
             return None
     class Meta:
-        model = SiteDeployments
+        model = SiteDeployment
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','site','deployment','controller','availability_zone',)
 
-class SiteDeploymentsIdSerializer(XOSModelSerializer):
+class SiteDeploymentIdSerializer(XOSModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -2150,7 +2150,7 @@
         except:
             return None
     class Meta:
-        model = SiteDeployments
+        model = SiteDeployment
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','site','deployment','controller','availability_zone',)
 
 
@@ -2312,7 +2312,7 @@
 
 
 
-class ControllerSlicesSerializer(serializers.HyperlinkedModelSerializer):
+class ControllerSliceSerializer(serializers.HyperlinkedModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -2325,10 +2325,10 @@
         except:
             return None
     class Meta:
-        model = ControllerSlices
+        model = ControllerSlice
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','controller','slice','tenant_id',)
 
-class ControllerSlicesIdSerializer(XOSModelSerializer):
+class ControllerSliceIdSerializer(XOSModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -2341,7 +2341,7 @@
         except:
             return None
     class Meta:
-        model = ControllerSlices
+        model = ControllerSlice
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','controller','slice','tenant_id',)
 
 
@@ -2385,7 +2385,7 @@
 
                  ServiceClass: ServiceClassSerializer,
 
-                 ControllerNetworks: ControllerNetworksSerializer,
+                 ControllerNetwork: ControllerNetworkSerializer,
 
                  Charge: ChargeSerializer,
 
@@ -2439,13 +2439,13 @@
 
                  DeploymentPrivilege: DeploymentPrivilegeSerializer,
 
-                 ControllerUsers: ControllerUsersSerializer,
+                 ControllerUser: ControllerUserSerializer,
 
                  DeploymentRole: DeploymentRoleSerializer,
 
                  UserCredential: UserCredentialSerializer,
 
-                 SiteDeployments: SiteDeploymentsSerializer,
+                 SiteDeployment: SiteDeploymentSerializer,
 
                  SliceTag: SliceTagSerializer,
 
@@ -2455,7 +2455,7 @@
 
                  ServiceResource: ServiceResourceSerializer,
 
-                 ControllerSlices: ControllerSlicesSerializer,
+                 ControllerSlice: ControllerSliceSerializer,
 
                  None: None,
                 }
@@ -3574,10 +3574,10 @@
 
 
 
-class ControllerNetworksList(generics.ListCreateAPIView):
-    queryset = ControllerNetworks.objects.select_related().all()
-    serializer_class = ControllerNetworksSerializer
-    id_serializer_class = ControllerNetworksIdSerializer
+class ControllerNetworkList(generics.ListCreateAPIView):
+    queryset = ControllerNetwork.objects.select_related().all()
+    serializer_class = ControllerNetworkSerializer
+    id_serializer_class = ControllerNetworkIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
     filter_fields = ('id','created','updated','enacted','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
 
@@ -3589,7 +3589,7 @@
             return self.serializer_class
 
     def get_queryset(self):
-        return ControllerNetworks.select_by_user(self.request.user)
+        return ControllerNetwork.select_by_user(self.request.user)
 
     def create(self, request, *args, **kwargs):
         serializer = self.get_serializer(data=request.DATA, files=request.FILES)
@@ -3601,21 +3601,21 @@
         obj = serializer.object
         obj.caller = request.user
         if obj.can_update(request.user):
-            return super(ControllerNetworksList, self).create(request, *args, **kwargs)
+            return super(ControllerNetworkList, self).create(request, *args, **kwargs)
         else:
             raise Exception("failed obj.can_update")
 
-        ret = super(ControllerNetworksList, self).create(request, *args, **kwargs)
+        ret = super(ControllerNetworkList, self).create(request, *args, **kwargs)
         if (ret.status_code%100 != 200):
             raise Exception(ret.data)
 
         return ret
 
 
-class ControllerNetworksDetail(PlanetStackRetrieveUpdateDestroyAPIView):
-    queryset = ControllerNetworks.objects.select_related().all()
-    serializer_class = ControllerNetworksSerializer
-    id_serializer_class = ControllerNetworksIdSerializer
+class ControllerNetworkDetail(PlanetStackRetrieveUpdateDestroyAPIView):
+    queryset = ControllerNetwork.objects.select_related().all()
+    serializer_class = ControllerNetworkSerializer
+    id_serializer_class = ControllerNetworkIdSerializer
 
     def get_serializer_class(self):
         no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
@@ -3625,7 +3625,7 @@
             return self.serializer_class
     
     def get_queryset(self):
-        return ControllerNetworks.select_by_user(self.request.user)
+        return ControllerNetwork.select_by_user(self.request.user)
 
     # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
 
@@ -5166,10 +5166,10 @@
 
 
 
-class ControllerUsersList(generics.ListCreateAPIView):
-    queryset = ControllerUsers.objects.select_related().all()
-    serializer_class = ControllerUsersSerializer
-    id_serializer_class = ControllerUsersIdSerializer
+class ControllerUserList(generics.ListCreateAPIView):
+    queryset = ControllerUser.objects.select_related().all()
+    serializer_class = ControllerUserSerializer
+    id_serializer_class = ControllerUserIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
     filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','controller','kuser_id',)
 
@@ -5181,7 +5181,7 @@
             return self.serializer_class
 
     def get_queryset(self):
-        return ControllerUsers.select_by_user(self.request.user)
+        return ControllerUser.select_by_user(self.request.user)
 
     def create(self, request, *args, **kwargs):
         serializer = self.get_serializer(data=request.DATA, files=request.FILES)
@@ -5193,21 +5193,21 @@
         obj = serializer.object
         obj.caller = request.user
         if obj.can_update(request.user):
-            return super(ControllerUsersList, self).create(request, *args, **kwargs)
+            return super(ControllerUserList, self).create(request, *args, **kwargs)
         else:
             raise Exception("failed obj.can_update")
 
-        ret = super(ControllerUsersList, self).create(request, *args, **kwargs)
+        ret = super(ControllerUserList, self).create(request, *args, **kwargs)
         if (ret.status_code%100 != 200):
             raise Exception(ret.data)
 
         return ret
 
 
-class ControllerUsersDetail(PlanetStackRetrieveUpdateDestroyAPIView):
-    queryset = ControllerUsers.objects.select_related().all()
-    serializer_class = ControllerUsersSerializer
-    id_serializer_class = ControllerUsersIdSerializer
+class ControllerUserDetail(PlanetStackRetrieveUpdateDestroyAPIView):
+    queryset = ControllerUser.objects.select_related().all()
+    serializer_class = ControllerUserSerializer
+    id_serializer_class = ControllerUserIdSerializer
 
     def get_serializer_class(self):
         no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
@@ -5217,7 +5217,7 @@
             return self.serializer_class
     
     def get_queryset(self):
-        return ControllerUsers.select_by_user(self.request.user)
+        return ControllerUser.select_by_user(self.request.user)
 
     # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
 
@@ -5343,10 +5343,10 @@
 
 
 
-class SiteDeploymentsList(generics.ListCreateAPIView):
-    queryset = SiteDeployments.objects.select_related().all()
-    serializer_class = SiteDeploymentsSerializer
-    id_serializer_class = SiteDeploymentsIdSerializer
+class SiteDeploymentList(generics.ListCreateAPIView):
+    queryset = SiteDeployment.objects.select_related().all()
+    serializer_class = SiteDeploymentSerializer
+    id_serializer_class = SiteDeploymentIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
     filter_fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','controller','availability_zone',)
 
@@ -5358,7 +5358,7 @@
             return self.serializer_class
 
     def get_queryset(self):
-        return SiteDeployments.select_by_user(self.request.user)
+        return SiteDeployment.select_by_user(self.request.user)
 
     def create(self, request, *args, **kwargs):
         serializer = self.get_serializer(data=request.DATA, files=request.FILES)
@@ -5370,21 +5370,21 @@
         obj = serializer.object
         obj.caller = request.user
         if obj.can_update(request.user):
-            return super(SiteDeploymentsList, self).create(request, *args, **kwargs)
+            return super(SiteDeploymentList, self).create(request, *args, **kwargs)
         else:
             raise Exception("failed obj.can_update")
 
-        ret = super(SiteDeploymentsList, self).create(request, *args, **kwargs)
+        ret = super(SiteDeploymentList, self).create(request, *args, **kwargs)
         if (ret.status_code%100 != 200):
             raise Exception(ret.data)
 
         return ret
 
 
-class SiteDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView):
-    queryset = SiteDeployments.objects.select_related().all()
-    serializer_class = SiteDeploymentsSerializer
-    id_serializer_class = SiteDeploymentsIdSerializer
+class SiteDeploymentDetail(PlanetStackRetrieveUpdateDestroyAPIView):
+    queryset = SiteDeployment.objects.select_related().all()
+    serializer_class = SiteDeploymentSerializer
+    id_serializer_class = SiteDeploymentIdSerializer
 
     def get_serializer_class(self):
         no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
@@ -5394,7 +5394,7 @@
             return self.serializer_class
     
     def get_queryset(self):
-        return SiteDeployments.select_by_user(self.request.user)
+        return SiteDeployment.select_by_user(self.request.user)
 
     # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
 
@@ -5638,10 +5638,10 @@
 
 
 
-class ControllerSlicesList(generics.ListCreateAPIView):
-    queryset = ControllerSlices.objects.select_related().all()
-    serializer_class = ControllerSlicesSerializer
-    id_serializer_class = ControllerSlicesIdSerializer
+class ControllerSliceList(generics.ListCreateAPIView):
+    queryset = ControllerSlice.objects.select_related().all()
+    serializer_class = ControllerSliceSerializer
+    id_serializer_class = ControllerSliceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
     filter_fields = ('id','created','updated','enacted','backend_status','deleted','controller','slice','tenant_id',)
 
@@ -5653,7 +5653,7 @@
             return self.serializer_class
 
     def get_queryset(self):
-        return ControllerSlices.select_by_user(self.request.user)
+        return ControllerSlice.select_by_user(self.request.user)
 
     def create(self, request, *args, **kwargs):
         serializer = self.get_serializer(data=request.DATA, files=request.FILES)
@@ -5665,21 +5665,21 @@
         obj = serializer.object
         obj.caller = request.user
         if obj.can_update(request.user):
-            return super(ControllerSlicesList, self).create(request, *args, **kwargs)
+            return super(ControllerSliceList, self).create(request, *args, **kwargs)
         else:
             raise Exception("failed obj.can_update")
 
-        ret = super(ControllerSlicesList, self).create(request, *args, **kwargs)
+        ret = super(ControllerSliceList, self).create(request, *args, **kwargs)
         if (ret.status_code%100 != 200):
             raise Exception(ret.data)
 
         return ret
 
 
-class ControllerSlicesDetail(PlanetStackRetrieveUpdateDestroyAPIView):
-    queryset = ControllerSlices.objects.select_related().all()
-    serializer_class = ControllerSlicesSerializer
-    id_serializer_class = ControllerSlicesIdSerializer
+class ControllerSliceDetail(PlanetStackRetrieveUpdateDestroyAPIView):
+    queryset = ControllerSlice.objects.select_related().all()
+    serializer_class = ControllerSliceSerializer
+    id_serializer_class = ControllerSliceIdSerializer
 
     def get_serializer_class(self):
         no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
@@ -5689,7 +5689,7 @@
             return self.serializer_class
     
     def get_queryset(self):
-        return ControllerSlices.select_by_user(self.request.user)
+        return ControllerSlice.select_by_user(self.request.user)
 
     # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
 
diff --git a/planetstack/hpc_observer/run.sh b/planetstack/hpc_observer/run.sh
old mode 100755
new mode 100644
diff --git a/planetstack/hpc_observer/start.sh b/planetstack/hpc_observer/start.sh
old mode 100755
new mode 100644
diff --git a/planetstack/hpc_observer/stop.sh b/planetstack/hpc_observer/stop.sh
old mode 100755
new mode 100644
diff --git a/planetstack/hpc_observer/upload.sh b/planetstack/hpc_observer/upload.sh
old mode 100755
new mode 100644
diff --git a/planetstack/model-deps b/planetstack/model-deps
index 33cb695..6647031 100644
--- a/planetstack/model-deps
+++ b/planetstack/model-deps
@@ -35,7 +35,7 @@
         "Node", 
         "Flavor"
     ], 
-    "ControllerNetworks": [
+    "ControllerNetwork": [
         "Network", 
         "Controller"
     ], 
@@ -70,7 +70,7 @@
     "ServiceAttribute": [
         "Service"
     ], 
-    "ControllerSiteDeployments": [
+    "ControllerSites": [
         "Controller"
     ], 
     "SlicePrivilege": [
@@ -87,17 +87,17 @@
         "Site", 
         "Role"
     ], 
-    "ControllerUsers": [
+    "ControllerUser": [
         "User", 
         "Controller"
     ], 
     "SiteCredential": [
         "Site"
     ], 
-    "ControllerSlices": [
+    "ControllerSlice": [
         "Controller", 
         "Slice",
-        "ControllerUsers"
+        "ControllerUser"
     ], 
     "SiteDeployments": [
         "Site", 
diff --git a/planetstack/model_policies/__init__.py b/planetstack/model_policies/__init__.py
index 8671d6a..ac395a1 100644
--- a/planetstack/model_policies/__init__.py
+++ b/planetstack/model_policies/__init__.py
@@ -1,3 +1,4 @@
 from .model_policy_Slice import *
 from .model_policy_User import *
 from .model_policy_Network import *
+from .model_policy_Site import *
diff --git a/planetstack/model_policies/model_policy_Network.py b/planetstack/model_policies/model_policy_Network.py
index d9d138d..f822bf2 100644
--- a/planetstack/model_policies/model_policy_Network.py
+++ b/planetstack/model_policies/model_policy_Network.py
@@ -1,16 +1,16 @@
 from core.models import *
 
 def handle(network):
-	from core.models import ControllerSlices,ControllerNetworks
+	from core.models import ControllerSlice,ControllerNetwork
 	from collections import defaultdict
 	# network controllers are not visible to users. We must ensure
 	# networks are deployed at all deploymets available to their slices.
-	slice_controllers = ControllerSlices.objects.all()
+	slice_controllers = ControllerSlice.objects.all()
 	slice_deploy_lookup = defaultdict(list)
 	for slice_controller in slice_controllers:
 		slice_deploy_lookup[slice_controller.slice].append(slice_controller.controller)
 
-	network_controllers = ControllerNetworks.objects.all()
+	network_controllers = ControllerNetwork.objects.all()
 	network_deploy_lookup = defaultdict(list)
 	for network_controller in network_controllers:
 		network_deploy_lookup[network_controller.network].append(network_controller.controller)
@@ -19,5 +19,5 @@
 	for expected_controller in expected_controllers:
 		if network not in network_deploy_lookup or \
 		  expected_controller not in network_deploy_lookup[network]:
-			nd = ControllerNetworks(network=network, controller=expected_controller)
+			nd = ControllerNetwork(network=network, controller=expected_controller)
 			nd.save()
diff --git a/planetstack/model_policies/model_policy_Site.py b/planetstack/model_policies/model_policy_Site.py
new file mode 100644
index 0000000..a49c868
--- /dev/null
+++ b/planetstack/model_policies/model_policy_Site.py
@@ -0,0 +1,12 @@
+from core.models import *
+
+def handle(site):
+    # make sure site has a ControllerSite record for each controller
+    ctrl_sites = ControllerSite.objects.filter(site=site)
+    existing_controllers = [cs.controller for cs in ctrl_sites]
+
+    all_controllers = Controller.objects.all()
+    for ctrl in all_controllers:
+        if ctrl not in existing_controllers:
+            ctrl_site = ControllerSite(controller=ctrl, site=site)
+            ctrl_site.save() 
diff --git a/planetstack/model_policies/model_policy_Slice.py b/planetstack/model_policies/model_policy_Slice.py
index 0d83d68..37129a3 100644
--- a/planetstack/model_policies/model_policy_Slice.py
+++ b/planetstack/model_policies/model_policy_Slice.py
@@ -1,64 +1,59 @@
 
 def handle(slice):
-	from core.models import Controller,ControllerSlices,Controller,Network,NetworkSlice,NetworkTemplate
-	from collections import defaultdict
-	ctrl_site_deployments = SiteDeployments.objects.all()
-	
-	slice_controllers = ControllerSlices.objects.all()
-	slice_deploy_lookup = defaultdict(list)
-	for slice_controller in slice_controllers:
-		slice_deploy_lookup[slice_controller.slice].append(slice_controller)
-	
-        all_controllers = Controller.objects.all() 
-	for expected_controller in all_controllers:
-		if slice not in slice_deploy_lookup or \
-		   expected_controller not in slice_deploy_lookup[slice]:
-			sd = ControllerSlices(slice=slice, controller=expected_controller)
-			sd.save()
+    from core.models import Controller, ControllerSlice, SiteDeployment, Network, NetworkSlice,NetworkTemplate
+    from collections import defaultdict
+    controller_slices = ControllerSlice.objects.filter(slice=slice)
+    existing_controllers = [cs.controller for cs in controller_slices] 
+    
+    all_controllers = Controller.objects.all() 
+    for controller in all_controllers:
+        if controller not in existing_controllers:
+            sd = ControllerSlice(slice=slice, controller=controller_controller)
+            sd.save()
 
-	# make sure slice has at least 1 public and 1 private networkd
-	public_nets = []
-	private_net = None
-	networks = Network.objects.filter(owner=slice)
-	for network in networks:
-		if network.template.name == 'Public dedicated IPv4':
-			public_nets.append(network)
-		elif network.template.name == 'Public shared IPv4':
-			public_nets.append(network)
-		elif network.template.name == 'Private':
-			private_net = network
-	if not public_nets:
+    # make sure slice has at least 1 public and 1 private networkd
+    public_nets = []
+    private_net = None
+    networks = Network.objects.filter(owner=slice)
+    for network in networks:
+        if network.template.name == 'Public dedicated IPv4':
+            public_nets.append(network)
+        elif network.template.name == 'Public shared IPv4':
+            public_nets.append(network)
+        elif network.template.name == 'Private':
+            private_net = network
+    if not public_nets:
                 # ensure there is at least one public network, and default it to dedicated
-		nat_net = Network(
-          	    name = slice.name+'-nat',
-             	    template = NetworkTemplate.objects.get(name='Public shared IPv4'),
-          	    owner = slice
-      		    )
-		nat_net.save()
-                public_nets.append(nat_net)
+        nat_net = Network(
+                name = slice.name+'-nat',
+                    template = NetworkTemplate.objects.get(name='Public shared IPv4'),
+                owner = slice
+                )
+        nat_net.save()
+        public_nets.append(nat_net)
 
-	if not private_net:
-        	private_net = Network(
-          	name = slice.name+'-private',
-          	template = NetworkTemplate.objects.get(name='Private'),
-          	owner = slice
-      		)
-      		private_net.save()
-	# create slice networks
-	public_net_slice = None
-	private_net_slice = None
-	net_slices = NetworkSlice.objects.filter(slice=slice, network__in=[private_net]+public_nets)
-	for net_slice in net_slices:
-		if net_slice.network in public_nets:
-			public_net_slice = net_slice
-		elif net_slice.network == private_net:
-			private_net_slice = net_slice
-	if not public_net_slice:
-		public_net_slice = NetworkSlice(slice=slice, network=public_nets[0])
-		public_net_slice.save()
-	if not private_net_slice:
-		private_net_slice = NetworkSlice(slice=slice, network=private_net)
-		private_net_slice.save()
+    if not private_net:
+        private_net = Network(
+        name = slice.name+'-private',
+        template = NetworkTemplate.objects.get(name='Private'),
+        owner = slice
+        )
+        private_net.save()
+    # create slice networks
+    public_net_slice = None
+    private_net_slice = None
+    net_slices = NetworkSlice.objects.filter(slice=slice, network__in=[private_net]+public_nets)
+    for net_slice in net_slices:
+        if net_slice.network in public_nets:
+            public_net_slice = net_slice
+        elif net_slice.network == private_net:
+            private_net_slice = net_slice
+    if not public_net_slice:
+        public_net_slice = NetworkSlice(slice=slice, network=public_nets[0])
+        public_net_slice.save()
+    if not private_net_slice:
+        private_net_slice = NetworkSlice(slice=slice, network=private_net)
+        private_net_slice.save()
 
 
 
diff --git a/planetstack/model_policies/model_policy_User.py b/planetstack/model_policies/model_policy_User.py
index 703b28c..5e2adad 100644
--- a/planetstack/model_policies/model_policy_User.py
+++ b/planetstack/model_policies/model_policy_User.py
@@ -1,15 +1,15 @@
 from core.models import *
 
 def handle(user):
-	from core.models import Controller, ControllerSiteDeployments, ControllerUsers
+	from core.models import Controller, ControllerSite, ControllerUser
 	from collections import defaultdict
-	ctrl_site_deployments = ControllerSiteDeployments.objects.all()
+	ctrl_site_deployments = ControllerSite.objects.all()
 	controller_lookup = defaultdict(list)
 	for ctrl_site_deployment in ctrl_site_deployments:
 		controller_site_lookup[ctrl_site_deployment.site_deployment].append(ctrl_site_deployment)
 
 	controller_user_lookup = defaultdict(list)
-	for controller_user in ControllerUsers.objects.all():
+	for controller_user in ControllerUser.objects.all():
 		controller_user_lookup[controller_user.user].append(controller_user.controller)
    
 	if user.is_admin:
@@ -25,6 +25,6 @@
 		if not user in controller_user_lookup or \
 		  expected_controller not in controller_user_lookup[user]: 
 			# add new record
-			ud = ControllerUsers(user=user, controller=expected_controller)
+			ud = ControllerUser(user=user, controller=expected_controller)
 			ud.save()    
 
diff --git a/planetstack/model_policy.py b/planetstack/model_policy.py
index de6f73d..e12b15c 100644
--- a/planetstack/model_policy.py
+++ b/planetstack/model_policy.py
@@ -4,6 +4,7 @@
 from core.models import *
 from dependency_walker import *
 import model_policies
+from util.logger import logger
 
 modelPolicyEnabled = True
 
@@ -41,7 +42,7 @@
 			if policy_handler is not None:
 				policy_handler.handle(instance)
 		except:
-			pass
+			logger.log_exc("Model Policy Error:") 
 	elif 'deleted' in kwargs['update_fields']:
 		walk_inv_deps(delete_if_inactive, instance)
 	
diff --git a/planetstack/openstack_observer/ansible.py b/planetstack/openstack_observer/ansible.py
old mode 100755
new mode 100644
diff --git a/planetstack/openstack_observer/event_loop.py b/planetstack/openstack_observer/event_loop.py
index 500c0e0..cdd94a2 100644
--- a/planetstack/openstack_observer/event_loop.py
+++ b/planetstack/openstack_observer/event_loop.py
@@ -50,7 +50,7 @@
 	return ig
 
 class PlanetStackObserver:
-	#sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivileges,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
+	#sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivilege,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
 	sync_steps = []
 
 	
diff --git a/planetstack/openstack_observer/run_ansible b/planetstack/openstack_observer/run_ansible
old mode 100755
new mode 100644
diff --git a/planetstack/openstack_observer/steps/__init__.py b/planetstack/openstack_observer/steps/__init__.py
index 3f8dca4..92cc7f2 100644
--- a/planetstack/openstack_observer/steps/__init__.py
+++ b/planetstack/openstack_observer/steps/__init__.py
@@ -1,14 +1 @@
-from .sync_controller_site_deployments import SyncControllerSiteDeployments
-from .sync_network_slivers import SyncNetworkSlivers
-from .sync_networks import SyncNetworks
-from .sync_controller_networks import SyncControllerNetworks
-from .sync_site_privileges import SyncSitePrivileges
-from .sync_sites import SyncSites
-from .sync_slice_memberships import SyncSliceMemberships
-from .sync_slices import SyncSlices
-from .sync_slivers import SyncSlivers
-from .sync_users import SyncUsers
-from .sync_roles import SyncRoles
-from .sync_nodes import SyncNodes
-from .sync_images import SyncImages
-from .sync_controller_images import SyncControllerImages
+from .sync_controller_sites import SyncControllerSite
diff --git a/planetstack/openstack_observer/steps/sync_controller_networks.py b/planetstack/openstack_observer/steps/sync_controller_networks.py
index 3cff7c2..fa1f439 100644
--- a/planetstack/openstack_observer/steps/sync_controller_networks.py
+++ b/planetstack/openstack_observer/steps/sync_controller_networks.py
@@ -13,9 +13,9 @@
 
 logger = Logger(level=logging.INFO)
 
-class SyncControllerNetworks(OpenStackSyncStep):
+class SyncControllerNetwork(OpenStackSyncStep):
     requested_interval = 0
-    provides=[Network, ControllerNetworks, Sliver]
+    provides=[Network, ControllerNetwork, Sliver]
 
     def alloc_subnet(self, uuid):
         a = 10
@@ -29,9 +29,9 @@
 
     def fetch_pending(self, deleted):
         if (deleted):
-            return ControllerNetworks.deleted_objects.all()
+            return ControllerNetwork.deleted_objects.all()
         else:
-            return ControllerNetworks.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+            return ControllerNetwork.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
 
 
     def save_controller_network(self, controller_network):
diff --git a/planetstack/openstack_observer/steps/sync_controller_site_deployments.py b/planetstack/openstack_observer/steps/sync_controller_site_deployments.py
deleted file mode 100644
index 907325a..0000000
--- a/planetstack/openstack_observer/steps/sync_controller_site_deployments.py
+++ /dev/null
@@ -1,63 +0,0 @@
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.site import *
-from observer.ansible import *
-
-class SyncControllerSiteDeployments(OpenStackSyncStep):
-    requested_interval=0
-    provides=[SiteDeployments]
-
-    def fetch_pending(self, deleted=False):
-        pending = super(OpenStackSyncStep, self).fetch_pending(deleted)
-        return pending.filter(controller__isnull=False)
-
-    def sync_record(self, site_deployment):
-
-	template = os_template_env.get_template('sync_controller_site_deployments.yaml')
-	tenant_fields = {'endpoint':site_deployment.controller.auth_url,
-		         'admin_user': site_deployment.controller.admin_user,
-		         'admin_password': site_deployment.controller.admin_password,
-		         'admin_tenant': site_deployment.controller.admin_tenant,
-	                 'ansible_tag': '%s@%s'%(site_deployment.site.login_base,site_deployment.deployment.name), # name of ansible playbook
-		         'tenant': site_deployment.site.login_base,
-		         'tenant_description': site_deployment.site.name}
-
-	rendered = template.render(tenant_fields)
-	res = run_template('sync_controller_site_deployments.yaml', tenant_fields, path='controller_site_deployments')
-
-	if (len(res)==1):
-		site_deployment.tenant_id = res[0]['id']
-        	site_deployment.save()
-	elif (len(res)):
-		raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
-	else:
-		raise Exception('Could not create or update user %s'%tenant_fields['tenant'])
-            
-    def delete_record(self, site_deployment):
-	if site_deployment.tenant_id:
-            driver = self.driver.admin_driver(controller=site_deployment.controller)
-            driver.delete_tenant(site_deployment.tenant_id)
-
-	"""
-        Ansible does not support tenant deletion yet
-
-	import pdb
-	pdb.set_trace()
-        template = os_template_env.get_template('delete_site_deployments.yaml')
-	tenant_fields = {'endpoint':site_deployment.controller.auth_url,
-		         'admin_user': site_deployment.controller.admin_user,
-		         'admin_password': site_deployment.controller.admin_password,
-		         'admin_tenant': 'admin',
-	                 'ansible_tag': 'site_deployments/%s@%s'%(site_deployment.site_deployment.site.login_base,site_deployment.site_deployment.deployment.name), # name of ansible playbook
-		         'tenant': site_deployment.site_deployment.site.login_base,
-		         'delete': True}
-
-	rendered = template.render(tenant_fields)
-	res = run_template('sync_site_deployments.yaml', tenant_fields)
-
-	if (len(res)!=1):
-		raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
-	"""
diff --git a/planetstack/openstack_observer/steps/sync_controller_sites.py b/planetstack/openstack_observer/steps/sync_controller_sites.py
new file mode 100644
index 0000000..f6425ae
--- /dev/null
+++ b/planetstack/openstack_observer/steps/sync_controller_sites.py
@@ -0,0 +1,63 @@
+import os
+import base64
+from django.db.models import F, Q
+from planetstack.config import Config
+from observer.openstacksyncstep import OpenStackSyncStep
+from core.models.site import *
+from observer.ansible import *
+
+class SyncControllerSite(OpenStackSyncStep):
+    requested_interval=0
+    provides=[ControllerSite]
+
+    def fetch_pending(self, deleted=False):
+        pending = super(OpenStackSyncStep, self).fetch_pending(deleted)
+        return pending.filter(controller__isnull=False)
+
+    def sync_record(self, controller_site):
+
+	template = os_template_env.get_template('sync_controller_sites.yaml')
+	tenant_fields = {'endpoint':controller_site.controller.auth_url,
+		         'admin_user': controller_site.controller.admin_user,
+		         'admin_password': controller_site.controller.admin_password,
+		         'admin_tenant': controller_site.controller.admin_tenant,
+	                 'ansible_tag': '%s@%s'%(controller_site.site.login_base,controller_site.deployment.name), # name of ansible playbook
+		         'tenant': controller_site.site.login_base,
+		         'tenant_description': controller_site.site.name}
+
+	rendered = template.render(tenant_fields)
+	res = run_template('sync_controller_sites.yaml', tenant_fields, path='controller_sites')
+
+	if (len(res)==1):
+		controller_site.tenant_id = res[0]['id']
+        	controller_site.save()
+	elif (len(res)):
+		raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
+	else:
+		raise Exception('Could not create or update user %s'%tenant_fields['tenant'])
+            
+    def delete_record(self, controller_site):
+	if controller_site.tenant_id:
+            driver = self.driver.admin_driver(controller=controller_site.controller)
+            driver.delete_tenant(controller_site.tenant_id)
+
+	"""
+        Ansible does not support tenant deletion yet
+
+	import pdb
+	pdb.set_trace()
+        template = os_template_env.get_template('delete_controller_sites.yaml')
+	tenant_fields = {'endpoint':controller_site.controller.auth_url,
+		         'admin_user': controller_site.controller.admin_user,
+		         'admin_password': controller_site.controller.admin_password,
+		         'admin_tenant': 'admin',
+	                 'ansible_tag': 'controller_sites/%s@%s'%(controller_site.controller_site.site.login_base,controller_site.controller_site.deployment.name), # name of ansible playbook
+		         'tenant': controller_site.controller_site.site.login_base,
+		         'delete': True}
+
+	rendered = template.render(tenant_fields)
+	res = run_template('sync_controller_sites.yaml', tenant_fields)
+
+	if (len(res)!=1):
+		raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
+	"""
diff --git a/planetstack/openstack_observer/steps/sync_controller_site_deployments.yaml b/planetstack/openstack_observer/steps/sync_controller_sites.yaml
similarity index 100%
rename from planetstack/openstack_observer/steps/sync_controller_site_deployments.yaml
rename to planetstack/openstack_observer/steps/sync_controller_sites.yaml
diff --git a/planetstack/openstack_observer/steps/sync_controller_slices.py b/planetstack/openstack_observer/steps/sync_controller_slices.py
index b1a1f55..24453e3 100644
--- a/planetstack/openstack_observer/steps/sync_controller_slices.py
+++ b/planetstack/openstack_observer/steps/sync_controller_slices.py
@@ -5,22 +5,22 @@
 from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import Slice, ControllerSlices
-from core.models.controllerusers import ControllerUsers
+from core.models.slice import Slice, ControllerSlice
+from core.models.controllerusers import ControllerUser
 from util.logger import Logger, logging
 from observer.ansible import *
 
 logger = Logger(level=logging.INFO)
 
-class SyncControllerSlices(OpenStackSyncStep):
-    provides=[ControllerSlices]
+class SyncControllerSlice(OpenStackSyncStep):
+    provides=[ControllerSlice]
     requested_interval=0
 
     def fetch_pending(self, deleted):
         if (deleted):
-            return ControllerSlices.deleted_objects.all()
+            return ControllerSlice.deleted_objects.all()
         else:
-            return ControllerSlices.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+            return ControllerSlice.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
 
     def sync_record(self, controller_slice):
         logger.info("sync'ing slice controller %s" % controller_slice)
@@ -29,7 +29,7 @@
             logger.info("controller %r has no admin_user, skipping" % controller_slice.controller)
             return
 
-        controller_users = ControllerUsers.objects.filter(user=controller_slice.slice.creator,
+        controller_users = ControllerUser.objects.filter(user=controller_slice.slice.creator,
                                                              controller=controller_slice.controller)
         if not controller_users:
             raise Exception("slice createor %s has not accout at controller %s" % (controller_slice.slice.creator, controller_slice.controller.name))
diff --git a/planetstack/openstack_observer/steps/sync_controller_user_site_privileges.py b/planetstack/openstack_observer/steps/sync_controller_user_site_privileges.py
new file mode 100644
index 0000000..6a62104
--- /dev/null
+++ b/planetstack/openstack_observer/steps/sync_controller_user_site_privileges.py
@@ -0,0 +1,86 @@
+import os
+import base64
+from collections import defaultdict
+from django.db.models import F, Q
+from planetstack.config import Config
+from observer.openstacksyncstep import OpenStackSyncStep
+from core.models.site import Controller, SitePrivilege 
+from core.models.user import User
+from core.models.controlleruser import ControllerUser
+from util.logger import Logger, logging
+
+from observer.ansible import *
+
+logger = Logger(level=logging.INFO)
+
+class SyncControllerUser(OpenStackSyncStep):
+    provides=[SitePrivilege]
+    requested_interval=0
+
+    def fetch_pending(self, deleted):
+
+        if (deleted):
+            return SitePrivilege.deleted_objects.all()
+        else:
+            return ControllerUser.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) 
+
+    def sync_record(self, controller_user):
+        logger.info("sync'ing user %s at controller %s" % (controller_user.user, controller_user.controller))
+
+        if not controller_user.controller.admin_user:
+            logger.info("controller %r has no admin_user, skipping" % controller_user.controller)
+            return
+
+	template = os_template_env.get_template('sync_controller_users.yaml')
+
+        # All users will have at least the 'user' role at their home site/tenant.
+        # We must also check if the user should have the admin role 		 		
+	roles = ['user']
+        if controller_user.user.is_admin:
+            roles.append('admin')
+   
+	# setup user home site roles at controller 
+        if not controller_user.user.site:
+            raise Exception('Siteless user %s'%controller_user.user.email)
+        else:
+            # look up tenant id for the user's site at the controller
+            #ctrl_site_deployments = SiteDeployment.objects.filter(
+            #  site_deployment__site=controller_user.user.site,
+            #  controller=controller_user.controller)
+
+            #if ctrl_site_deployments:
+            #    # need the correct tenant id for site at the controller
+            #    tenant_id = ctrl_site_deployments[0].tenant_id  
+            #    tenant_name = ctrl_site_deployments[0].site_deployment.site.login_base
+            user_fields = {
+                       'endpoint':controller_user.controller.auth_url,
+		       'name': controller_user.user.email,
+                       'email': controller_user.user.email,
+                       'password': controller_user.user.remote_password,
+                       'admin_user': controller_user.controller.admin_user,
+		       'admin_password': controller_user.controller.admin_password,
+	               'ansible_tag':'%s@%s'%(controller_user.user.email.replace('@','-at-'),controller_user.controller.name),
+		       'admin_tenant': controller_user.controller.admin_tenant,
+		       'roles':roles,
+		       'tenant':controller_user.user.site.login_base}    
+	
+	    rendered = template.render(user_fields)
+	    res = run_template('sync_controller_users.yaml', user_fields,path='controller_users')
+
+	    # results is an array in which each element corresponds to an 
+	    # "ok" string received per operation. If we get as many oks as
+	    # the number of operations we issued, that means a grand success.
+	    # Otherwise, the number of oks tell us which operation failed.
+	    expected_length = len(roles) + 1
+	    if (len(res)==expected_length):
+                controller_user.kuser_id = res[0]['id']
+                controller_user.save()
+	    elif (len(res)):
+	        raise Exception('Could not assign roles for user %s'%user_fields['name'])
+	    else:
+	        raise Exception('Could not create or update user %s'%user_fields['name'])
+
+    def delete_record(self, controller_user):
+        if controller_user.kuser_id:
+            driver = self.driver.admin_driver(controller=controller_user.controller)
+            driver.delete_user(controller_user.kuser_id)
diff --git a/planetstack/openstack_observer/steps/sync_controller_user_slice_privileges.py b/planetstack/openstack_observer/steps/sync_controller_user_slice_privileges.py
new file mode 100644
index 0000000..4c68a40
--- /dev/null
+++ b/planetstack/openstack_observer/steps/sync_controller_user_slice_privileges.py
@@ -0,0 +1,86 @@
+import os
+import base64
+from collections import defaultdict
+from django.db.models import F, Q
+from planetstack.config import Config
+from observer.openstacksyncstep import OpenStackSyncStep
+from core.models.site import Controller, SiteDeployment
+from core.models.user import User
+from core.models.controllerusers import ControllerUser
+from util.logger import Logger, logging
+
+from observer.ansible import *
+
+logger = Logger(level=logging.INFO)
+
+class SyncControllerUser(OpenStackSyncStep):
+    provides=[ControllerUser, User]
+    requested_interval=0
+
+    def fetch_pending(self, deleted):
+
+        if (deleted):
+            return ControllerUser.deleted_objects.all()
+        else:
+            return ControllerUser.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) 
+
+    def sync_record(self, controller_user):
+        logger.info("sync'ing user %s at controller %s" % (controller_user.user, controller_user.controller))
+
+        if not controller_user.controller.admin_user:
+            logger.info("controller %r has no admin_user, skipping" % controller_user.controller)
+            return
+
+	template = os_template_env.get_template('sync_controller_users.yaml')
+
+        # All users will have at least the 'user' role at their home site/tenant.
+        # We must also check if the user should have the admin role 		 		
+	roles = ['user']
+        if controller_user.user.is_admin:
+            roles.append('admin')
+   
+	# setup user home site roles at controller 
+        if not controller_user.user.site:
+            raise Exception('Siteless user %s'%controller_user.user.email)
+        else:
+            # look up tenant id for the user's site at the controller
+            #ctrl_site_deployments = SiteDeployment.objects.filter(
+            #  site_deployment__site=controller_user.user.site,
+            #  controller=controller_user.controller)
+
+            #if ctrl_site_deployments:
+            #    # need the correct tenant id for site at the controller
+            #    tenant_id = ctrl_site_deployments[0].tenant_id  
+            #    tenant_name = ctrl_site_deployments[0].site_deployment.site.login_base
+            user_fields = {
+                       'endpoint':controller_user.controller.auth_url,
+		       'name': controller_user.user.email,
+                       'email': controller_user.user.email,
+                       'password': controller_user.user.remote_password,
+                       'admin_user': controller_user.controller.admin_user,
+		       'admin_password': controller_user.controller.admin_password,
+	               'ansible_tag':'%s@%s'%(controller_user.user.email.replace('@','-at-'),controller_user.controller.name),
+		       'admin_tenant': controller_user.controller.admin_tenant,
+		       'roles':roles,
+		       'tenant':controller_user.user.site.login_base}    
+	
+	    rendered = template.render(user_fields)
+	    res = run_template('sync_controller_users.yaml', user_fields,path='controller_users')
+
+	    # results is an array in which each element corresponds to an 
+	    # "ok" string received per operation. If we get as many oks as
+	    # the number of operations we issued, that means a grand success.
+	    # Otherwise, the number of oks tell us which operation failed.
+	    expected_length = len(roles) + 1
+	    if (len(res)==expected_length):
+                controller_user.kuser_id = res[0]['id']
+                controller_user.save()
+	    elif (len(res)):
+	        raise Exception('Could not assign roles for user %s'%user_fields['name'])
+	    else:
+	        raise Exception('Could not create or update user %s'%user_fields['name'])
+
+    def delete_record(self, controller_user):
+        if controller_user.kuser_id:
+            driver = self.driver.admin_driver(controller=controller_user.controller)
+            driver.delete_user(controller_user.kuser_id)
diff --git a/planetstack/openstack_observer/steps/sync_controller_users.py b/planetstack/openstack_observer/steps/sync_controller_users.py
index 1b57b81..1ace6db 100644
--- a/planetstack/openstack_observer/steps/sync_controller_users.py
+++ b/planetstack/openstack_observer/steps/sync_controller_users.py
@@ -4,25 +4,25 @@
 from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.site import Controller, SiteDeployments, SiteDeployments
+from core.models.site import Controller, SiteDeployment, SiteDeployment
 from core.models.user import User
-from core.models.controllerusers import ControllerUsers
+from core.models.controllerusers import ControllerUser
 from util.logger import Logger, logging
 
 from observer.ansible import *
 
 logger = Logger(level=logging.INFO)
 
-class SyncControllerUsers(OpenStackSyncStep):
-    provides=[ControllerUsers, User]
+class SyncControllerUser(OpenStackSyncStep):
+    provides=[ControllerUser, User]
     requested_interval=0
 
     def fetch_pending(self, deleted):
 
         if (deleted):
-            return ControllerUsers.deleted_objects.all()
+            return ControllerUser.deleted_objects.all()
         else:
-            return ControllerUsers.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) 
+            return ControllerUser.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) 
 
     def sync_record(self, controller_user):
         logger.info("sync'ing user %s at controller %s" % (controller_user.user, controller_user.controller))
@@ -44,7 +44,7 @@
             raise Exception('Siteless user %s'%controller_user.user.email)
         else:
             # look up tenant id for the user's site at the controller
-            #ctrl_site_deployments = SiteDeployments.objects.filter(
+            #ctrl_site_deployments = SiteDeployment.objects.filter(
             #  site_deployment__site=controller_user.user.site,
             #  controller=controller_user.controller)
 
diff --git a/planetstack/openstack_observer/steps/sync_networks.py b/planetstack/openstack_observer/steps/sync_networks.py
index a4e9552..9f36ed5 100644
--- a/planetstack/openstack_observer/steps/sync_networks.py
+++ b/planetstack/openstack_observer/steps/sync_networks.py
@@ -17,8 +17,8 @@
         network.save()
 
     def delete_record(self, network):
-        controller_networks_deleter = SyncControllerNetworks().delete_record
-        for controller_network in ControllerNetworks.objects.filter(network=network):
+        controller_networks_deleter = SyncControllerNetwork().delete_record
+        for controller_network in ControllerNetwork.objects.filter(network=network):
             try:
                 controller_network_deleter(controller_network)    
             except Exception,e:
diff --git a/planetstack/openstack_observer/steps/sync_nodes.py b/planetstack/openstack_observer/steps/sync_nodes.py
index 9d51073..e2c63bc 100644
--- a/planetstack/openstack_observer/steps/sync_nodes.py
+++ b/planetstack/openstack_observer/steps/sync_nodes.py
@@ -6,7 +6,7 @@
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.node import Node
-from core.models.site import SiteDeployments, Controller, SiteDeployments
+from core.models.site import SiteDeployment, Controller
 from util.logger import Logger, logging
 
 logger = Logger(level=logging.INFO)
@@ -30,7 +30,7 @@
         new_nodes = []
         for controller in controllers:
             try:
-            	controller_site_deployments = SiteDeployments.objects.filter(controller=controller)[0]
+            	controller_site_deployments = SiteDeployment.objects.filter(controller=controller)[0]
 	    except IndexError:
                 raise Exception("Controller %s not bound to any site deployments"%controller.name)
 
diff --git a/planetstack/openstack_observer/steps/sync_site_privileges.py b/planetstack/openstack_observer/steps/sync_site_privileges.py
index 6354d1f..bfc04b3 100644
--- a/planetstack/openstack_observer/steps/sync_site_privileges.py
+++ b/planetstack/openstack_observer/steps/sync_site_privileges.py
@@ -3,9 +3,9 @@
 from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
-from core.models import User, ControllerUsers, SitePrivilege, SiteDeployments   
+from core.models import User, ControllerUser, SitePrivilege, SiteDeployment   
 
-class SyncSitePrivileges(OpenStackSyncStep):
+class SyncSitePrivilege(OpenStackSyncStep):
     requested_interval=0
     provides=[SitePrivilege]
 
@@ -18,9 +18,9 @@
 
     def sync_record(self, site_priv):
         # sync site privileges at all site controllers
-        ctrl_site_deployments = SiteDeployments.objects.filter(site_deployment__site=site_priv.site)
+        ctrl_site_deployments = SiteDeployment.objects.filter(site_deployment__site=site_priv.site)
         for ctrl_site_deployment in ctrl_site_deployments:
-            controller_users = ControllerUsers.objects.filter(controller=ctrl_site_deployment.controller,
+            controller_users = ControllerUser.objects.filter(controller=ctrl_site_deployment.controller,
                                                               user=site_priv.user)
             if controller_users:
                 kuser_id  = controller_users[0].kuser_id
diff --git a/planetstack/openstack_observer/steps/sync_sites.py b/planetstack/openstack_observer/steps/sync_sites.py
deleted file mode 100644
index ea7df7e..0000000
--- a/planetstack/openstack_observer/steps/sync_sites.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.site import Site, SiteDeployments, SiteDeployments 
-from observer.steps.sync_controller_site_deployments import *
-
-class SyncSites(OpenStackSyncStep):
-    provides=[Site]
-    requested_interval=0
-
-    def sync_record(self, site):
-        site.save()
-
-    def delete_record(self, site):
-        # delete associated controllers site deployments
-        site_deployments = SiteDeployments.objects.filter(site=site)
-        site_deploy_deleter = SyncControllerSiteDeployments().delete_record
-        for site_deployment in site_deployments:
-            site_deployment_deleter(site_deployment)
-
-         
-
-	
diff --git a/planetstack/openstack_observer/steps/sync_slice_memberships.py b/planetstack/openstack_observer/steps/sync_slice_memberships.py
index 600f012..e95c533 100644
--- a/planetstack/openstack_observer/steps/sync_slice_memberships.py
+++ b/planetstack/openstack_observer/steps/sync_slice_memberships.py
@@ -4,7 +4,7 @@
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.slice import *
-from core.models.controllerusers import ControllerUsers
+from core.models.controllerusers import ControllerUser
 from util.logger import Logger, logging
 
 logger = Logger(level=logging.INFO)
@@ -22,11 +22,11 @@
     def sync_record(self, slice_memb):
         # sync slice memberships at all slice controllers 
         logger.info("syncing slice privilege: %s %s" % (slice_memb.slice.name, slice_memb.user.email))
-        slice_controllers = ControllerSlices.objects.filter(slice=slice_memb.slice)
+        slice_controllers = ControllerSlice.objects.filter(slice=slice_memb.slice)
         for slice_controller in slice_controllers:
             if not slice_controller.tenant_id:
                 continue
-            controller_users = ControllerUsers.objects.filter(controller=slice_controller.controller,
+            controller_users = ControllerUser.objects.filter(controller=slice_controller.controller,
                                                               user=slice_memb.user)
             if controller_users:
                 kuser_id  = controller_users[0].kuser_id
diff --git a/planetstack/openstack_observer/steps/sync_slices.py b/planetstack/openstack_observer/steps/sync_slices.py
index a792b48..99ed44c 100644
--- a/planetstack/openstack_observer/steps/sync_slices.py
+++ b/planetstack/openstack_observer/steps/sync_slices.py
@@ -4,7 +4,7 @@
 from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import Slice, ControllerSlices
+from core.models.slice import Slice, ControllerSlice
 from util.logger import Logger, logging
 from observer.steps.sync_controller_slices import *
 
@@ -15,14 +15,14 @@
     requested_interval=0
 
     def sync_record(self, slice):
-        for controller_slice in ControllerSlices.objects.filter(slice=slice):
+        for controller_slice in ControllerSlice.objects.filter(slice=slice):
             # bump the 'updated' timestamp and trigger observer to update
             # slice across all controllers 
             controller_slice.save()    
 
     def delete_record(self, slice):
-        controller_slice_deleter = SyncControllerSlices().delete_record
-        for controller_slice in ControllerSlices.objects.filter(slice=slice):
+        controller_slice_deleter = SyncControllerSlice().delete_record
+        for controller_slice in ControllerSlice.objects.filter(slice=slice):
             try:
                 controller_slice_deleter(controller_slice)
             except Exception,e:
diff --git a/planetstack/openstack_observer/steps/sync_slivers.py b/planetstack/openstack_observer/steps/sync_slivers.py
index 94fd0d5..8adb50c 100644
--- a/planetstack/openstack_observer/steps/sync_slivers.py
+++ b/planetstack/openstack_observer/steps/sync_slivers.py
@@ -4,8 +4,8 @@
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.sliver import Sliver
-from core.models.slice import Slice, SlicePrivilege, ControllerSlices
-from core.models.network import Network, NetworkSlice, ControllerNetworks
+from core.models.slice import Slice, SlicePrivilege, ControllerSlice
+from core.models.network import Network, NetworkSlice, ControllerNetwork
 from util.logger import Logger, logging
 from observer.ansible import *
 
@@ -45,7 +45,7 @@
 
         nics = []
         networks = [ns.network for ns in NetworkSlice.objects.filter(slice=sliver.slice)]
-        controller_networks = ControllerNetworks.objects.filter(network__in=networks,
+        controller_networks = ControllerNetwork.objects.filter(network__in=networks,
                                                                 controller=sliver.node.site_deployment.controller)
 
         for controller_network in controller_networks:
diff --git a/planetstack/openstack_observer/steps/sync_users.py b/planetstack/openstack_observer/steps/sync_users.py
index 3c69cad..4cb1a26 100644
--- a/planetstack/openstack_observer/steps/sync_users.py
+++ b/planetstack/openstack_observer/steps/sync_users.py
@@ -5,20 +5,20 @@
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.user import User
-from core.models.controllerusers import  ControllerUsers
-from observer.steps.sync_controller_users import SyncControllerUsers
+from core.models.controllerusers import  ControllerUser
+from observer.steps.sync_controller_users import SyncControllerUser
 
 class SyncUsers(OpenStackSyncStep):
     provides=[User]
     requested_interval=0
 
     def sync_record(self, user):
-        for controller_user in ControllerUsers.objects.filter(user=user):
+        for controller_user in ControllerUser.objects.filter(user=user):
             # bump the 'updated' field so user account are updated across 
             # controllers.
             controller_user.save()
 
     def delete_record(self, user):
-        controller_user_deleter = SyncControllerUsers().delete_record
-        for controller_user in ControllerUsers.objects.filter(user=user):
+        controller_user_deleter = SyncControllerUser().delete_record
+        for controller_user in ControllerUser.objects.filter(user=user):
             controller_user_deleter(controller_user)
diff --git a/planetstack/planetstack-config.py b/planetstack/planetstack-config.py
old mode 100755
new mode 100644
diff --git a/planetstack/redhat/planetstack-backend.service b/planetstack/redhat/planetstack-backend.service
old mode 100755
new mode 100644
diff --git a/planetstack/scripts/opencloud b/planetstack/scripts/opencloud
old mode 100755
new mode 100644
diff --git a/planetstack/syndicate_observer/run.sh b/planetstack/syndicate_observer/run.sh
old mode 100755
new mode 100644
diff --git a/planetstack/syndicate_observer/start.sh b/planetstack/syndicate_observer/start.sh
old mode 100755
new mode 100644
diff --git a/planetstack/syndicate_observer/stop.sh b/planetstack/syndicate_observer/stop.sh
old mode 100755
new mode 100644
diff --git a/planetstack/syndicate_observer/syndicate-backend.py b/planetstack/syndicate_observer/syndicate-backend.py
old mode 100755
new mode 100644
diff --git a/planetstack/tools/diff-opencloud.py b/planetstack/tools/diff-opencloud.py
old mode 100755
new mode 100644
diff --git a/planetstack/tools/openstack-db-cleanup.sh b/planetstack/tools/openstack-db-cleanup.sh
old mode 100755
new mode 100644
diff --git a/planetstack/tools/openstack-healthcheck.py b/planetstack/tools/openstack-healthcheck.py
old mode 100755
new mode 100644
diff --git a/planetstack/tools/ssh-myslice b/planetstack/tools/ssh-myslice
old mode 100755
new mode 100644
