diff --git a/xos/backend-model-deps b/xos/backend-model-deps
index da9565f..9534f71 100644
--- a/xos/backend-model-deps
+++ b/xos/backend-model-deps
@@ -1,5 +1,5 @@
 {
-    "Sliver": [
+    "Instance": [
 	["SlicePrivilege","slice.sliceprivileges"],
 	["SitePrivilege","slice.site.siteprivileges"],
 	["ControllerImages","image.controllerimages"]
diff --git a/xos/ceilometer/admin.py b/xos/ceilometer/admin.py
index 8644ab7..987877c 100644
--- a/xos/ceilometer/admin.py
+++ b/xos/ceilometer/admin.py
@@ -75,9 +75,9 @@
     list_display_links = ('backend_status_icon', 'id')
     fieldsets = [ (None, {'fields': ['backend_status_text', 'kind', 'provider_service', 'service_specific_attribute',
                                      'ceilometer_url', 'tenant_list_str',
-                                     'sliver', 'creator'],
+                                     'instance', 'creator'],
                           'classes':['suit-tab suit-tab-general']})]
-    readonly_fields = ('backend_status_text', 'sliver', 'service_specific_attribute', 'ceilometer_url', 'tenant_list_str')
+    readonly_fields = ('backend_status_text', 'instance', 'service_specific_attribute', 'ceilometer_url', 'tenant_list_str')
     form = MonitoringChannelForm
 
     suit_form_tabs = (('general','Details'),)
diff --git a/xos/ceilometer/models.py b/xos/ceilometer/models.py
index ee5cbf9..50f921b 100644
--- a/xos/ceilometer/models.py
+++ b/xos/ceilometer/models.py
@@ -1,5 +1,5 @@
 from django.db import models
-from core.models import Service, PlCoreBase, Slice, Sliver, Tenant, TenantWithContainer, Node, Image, User, Flavor, Subscriber
+from core.models import Service, PlCoreBase, Slice, Instance, Tenant, TenantWithContainer, Node, Image, User, Flavor, Subscriber
 from core.models.plcorebase import StrippedCharField
 import os
 from django.db import models, transaction
@@ -52,11 +52,11 @@
 
     @property
     def addresses(self):
-        if not self.sliver:
+        if not self.instance:
             return {}
 
         addresses = {}
-        for ns in self.sliver.ports.all():
+        for ns in self.instance.ports.all():
             if "private" in ns.network.name.lower():
                 addresses["private"] = (ns.ip, ns.mac)
             elif "nat" in ns.network.name.lower():
diff --git a/xos/core/admin.py b/xos/core/admin.py
index d9f285b..d5ec4bd 100644
--- a/xos/core/admin.py
+++ b/xos/core/admin.py
@@ -1293,7 +1293,7 @@
 
     suit_form_tabs =(('general', 'Instance Details'), ('ports', 'Ports'))
 
-    inlines = [TagInline, SliverPortInline]
+    inlines = [TagInline, InstancePortInline]
 
     user_readonly_fields = ['slice', 'deployment', 'node', 'ip', 'instance_name', 'flavor', 'image']
 
diff --git a/xos/core/dashboard/views/cdn.unused b/xos/core/dashboard/views/cdn.unused
index 9fff1e5..0a71ffe 100644
--- a/xos/core/dashboard/views/cdn.unused
+++ b/xos/core/dashboard/views/cdn.unused
@@ -33,17 +33,17 @@
 
     slice = Slice.objects.filter(name=HPC_SLICE_NAME)
     if slice:
-        slice_slivers = list(slice[0].slivers.all())
+        slice_instances = list(slice[0].instances.all())
     else:
-        slice_slivers = []
+        slice_instances = []
 
     new_rows = {}
     for site in Site.objects.all():
-        # compute number of slivers allocated in the data model
-        allocated_slivers = 0
-        for sliver in slice_slivers:
-            if sliver.node.site == site:
-                allocated_slivers = allocated_slivers + 1
+        # compute number of instances allocated in the data model
+        allocated_instances = 0
+        for instance in slice_instances:
+            if instance.node.site == site:
+                allocated_instances = allocated_instances + 1
 
         stats_row = stats_rows.get(site.name,{})
 
@@ -63,20 +63,20 @@
                "long": long,
                "health": 0,
                #"numNodes": int(site.nodes.count()),
-               "activeHPCSlivers": int(stats_row.get("count_hostname", 0)),     # measured number of slivers, from bigquery statistics
-               "numHPCSlivers": allocated_slivers,                              # allocated number of slivers, from data model
+               "activeHPCInstances": int(stats_row.get("count_hostname", 0)),     # measured number of instances, from bigquery statistics
+               "numHPCInstances": allocated_instances,                              # allocated number of instances, from data model
                "siteUrl": str(site.site_url),
                "bandwidth": stats_row.get("sum_computed_bytes_sent_div_elapsed",0),
                "load": max_cpu,
                "hot": float(hotness)}
         new_rows[str(site.name)] = new_row
 
-    # get rid of sites with 0 slivers that overlap other sites with >0 slivers
+    # get rid of sites with 0 instances that overlap other sites with >0 instances
     for (k,v) in new_rows.items():
         bad=False
-        if v["numHPCSlivers"]==0:
+        if v["numHPCInstances"]==0:
             for v2 in new_rows.values():
-                if (v!=v2) and (v2["numHPCSlivers"]>=0):
+                if (v!=v2) and (v2["numHPCInstances"]>=0):
                     d = haversine(v["lat"],v["long"],v2["lat"],v2["long"])
                     if d<100:
                          bad=True
@@ -96,22 +96,22 @@
 
         sites = getCDNOperatorData().values()
 
-        sites = [site for site in sites if site["numHPCSlivers"]>0]
+        sites = [site for site in sites if site["numHPCInstances"]>0]
 
-        total_slivers = sum( [site["numHPCSlivers"] for site in sites] )
+        total_instances = sum( [site["numHPCInstances"] for site in sites] )
         total_bandwidth = sum( [site["bandwidth"] for site in sites] )
         average_cpu = int(avg( [site["load"] for site in sites] ))
 
-        result= {"total_slivers": total_slivers,
+        result= {"total_instances": total_instances,
                 "total_bandwidth": total_bandwidth,
                 "average_cpu": average_cpu}
 
         return HttpResponse(json.dumps(result), content_type='application/javascript')
 
-class DashboardAddOrRemoveSliverView(View):
-    # TODO: deprecate this view in favor of using TenantAddOrRemoveSliverView
+class DashboardAddOrRemoveInstanceView(View):
+    # TODO: deprecate this view in favor of using TenantAddOrRemoveInstanceView
 
-    url=r'^dashboardaddorremsliver/$'
+    url=r'^dashboardaddorreminstance/$'
 
     def post(self, request, *args, **kwargs):
         siteName = request.POST.get("site", None)
@@ -125,12 +125,12 @@
 
         if (actionToDo == "add"):
             user_ip = request.GET.get("ip", get_ip(request))
-            slice_increase_slivers(request.user, user_ip, siteList, slice, image.objects.all()[0], 1)
+            slice_increase_instances(request.user, user_ip, siteList, slice, image.objects.all()[0], 1)
         elif (actionToDo == "rem"):
-            slice_decrease_slivers(request.user, siteList, slice, 1)
+            slice_decrease_instances(request.user, siteList, slice, 1)
 
         print '*' * 50
-        print 'Ask for site: ' + siteName + ' to ' + actionToDo + ' another HPC Sliver'
+        print 'Ask for site: ' + siteName + ' to ' + actionToDo + ' another HPC Instance'
         return HttpResponse(json.dumps("Success"), content_type='application/javascript')
 
 class DashboardAjaxView(View):
diff --git a/xos/core/fixtures/demo_data.json b/xos/core/fixtures/demo_data.json
index 12ee426..1045378 100644
--- a/xos/core/fixtures/demo_data.json
+++ b/xos/core/fixtures/demo_data.json
@@ -1863,7 +1863,7 @@
         "site": 22, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
@@ -1887,7 +1887,7 @@
         "site": 10, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
@@ -1911,7 +1911,7 @@
         "site": 22, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 8, 
@@ -1935,7 +1935,7 @@
         "site": 22, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 8, 
@@ -1959,7 +1959,7 @@
         "site": 22, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
@@ -1983,7 +1983,7 @@
         "site": 24, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
@@ -2007,7 +2007,7 @@
         "site": 24, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
@@ -2031,7 +2031,7 @@
         "site": 22, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
@@ -2055,7 +2055,7 @@
         "site": 10, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
@@ -2079,7 +2079,7 @@
         "site": 10, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank", 
         "backend_status": "Provisioning in progress", 
         "creator": 1, 
@@ -2103,7 +2103,7 @@
         "site": 22, 
         "omf_friendly": false, 
         "network": "Private Only", 
-        "max_slivers": 10, 
+        "max_instances": 10, 
         "mount_data_sets": "GenBank-11-2013", 
         "backend_status": "Provisioning in progress", 
         "creator": 8, 
@@ -9785,7 +9785,7 @@
 },
 {
     "pk": 40, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 613, 
         "instance_name": "instance-000003e8", 
@@ -9807,7 +9807,7 @@
 },
 {
     "pk": 41, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 615, 
         "instance_name": "instance-000003e9", 
@@ -9829,7 +9829,7 @@
 },
 {
     "pk": 42, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 617, 
         "instance_name": "instance-000003ea", 
@@ -9851,7 +9851,7 @@
 },
 {
     "pk": 43, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 622, 
         "instance_name": "instance-000003eb", 
@@ -9873,7 +9873,7 @@
 },
 {
     "pk": 44, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 623, 
         "instance_name": "instance-000003ec", 
@@ -9895,7 +9895,7 @@
 },
 {
     "pk": 46, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 625, 
         "instance_name": "instance-000003ee", 
@@ -9917,7 +9917,7 @@
 },
 {
     "pk": 47, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 630, 
         "instance_name": "instance-000003ef", 
@@ -9939,7 +9939,7 @@
 },
 {
     "pk": 48, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 666, 
         "instance_name": "instance-000003f0", 
@@ -9961,7 +9961,7 @@
 },
 {
     "pk": 49, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 683, 
         "instance_name": "instance-000003f1", 
@@ -9983,7 +9983,7 @@
 },
 {
     "pk": 50, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 684, 
         "instance_name": "instance-000003f2", 
@@ -10005,7 +10005,7 @@
 },
 {
     "pk": 51, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 686, 
         "instance_name": "instance-000003f3", 
@@ -10027,7 +10027,7 @@
 },
 {
     "pk": 52, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 687, 
         "instance_name": "instance-000003f4", 
@@ -10049,7 +10049,7 @@
 },
 {
     "pk": 53, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 691, 
         "instance_name": "instance-000003f5", 
@@ -10071,7 +10071,7 @@
 },
 {
     "pk": 54, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 693, 
         "instance_name": "instance-000003f6", 
@@ -10093,7 +10093,7 @@
 },
 {
     "pk": 55, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 694, 
         "instance_name": "instance-000003f7", 
@@ -10115,7 +10115,7 @@
 },
 {
     "pk": 58, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 561, 
         "instance_name": "instance-000003fa", 
@@ -10137,7 +10137,7 @@
 },
 {
     "pk": 59, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 562, 
         "instance_name": "instance-000003fb", 
@@ -10159,7 +10159,7 @@
 },
 {
     "pk": 60, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 563, 
         "instance_name": "instance-000003fc", 
@@ -10181,7 +10181,7 @@
 },
 {
     "pk": 61, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 565, 
         "instance_name": "instance-000003fd", 
@@ -10203,7 +10203,7 @@
 },
 {
     "pk": 62, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 566, 
         "instance_name": "instance-000003fe", 
@@ -10225,7 +10225,7 @@
 },
 {
     "pk": 63, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 568, 
         "instance_name": "instance-000003ff", 
@@ -10247,7 +10247,7 @@
 },
 {
     "pk": 64, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 404, 
         "instance_name": "instance-00000400", 
@@ -10269,7 +10269,7 @@
 },
 {
     "pk": 65, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 405, 
         "instance_name": "instance-00000401", 
@@ -10291,7 +10291,7 @@
 },
 {
     "pk": 66, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 406, 
         "instance_name": "instance-00000402", 
@@ -10313,7 +10313,7 @@
 },
 {
     "pk": 67, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 407, 
         "instance_name": "instance-00000403", 
@@ -10335,7 +10335,7 @@
 },
 {
     "pk": 68, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 408, 
         "instance_name": "instance-00000404", 
@@ -10357,7 +10357,7 @@
 },
 {
     "pk": 69, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 409, 
         "instance_name": "instance-00000405", 
@@ -10379,7 +10379,7 @@
 },
 {
     "pk": 70, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 412, 
         "instance_name": "instance-00000406", 
@@ -10401,7 +10401,7 @@
 },
 {
     "pk": 71, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 413, 
         "instance_name": "instance-00000407", 
@@ -10423,7 +10423,7 @@
 },
 {
     "pk": 72, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 460, 
         "instance_name": "instance-00000408", 
@@ -10445,7 +10445,7 @@
 },
 {
     "pk": 73, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 467, 
         "instance_name": "instance-00000409", 
@@ -10467,7 +10467,7 @@
 },
 {
     "pk": 76, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 470, 
         "instance_name": "instance-0000040c", 
@@ -10489,7 +10489,7 @@
 },
 {
     "pk": 77, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 553, 
         "instance_name": "instance-0000040d", 
@@ -10511,7 +10511,7 @@
 },
 {
     "pk": 78, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 553, 
         "instance_name": "instance-0000040e", 
@@ -10533,7 +10533,7 @@
 },
 {
     "pk": 79, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 469, 
         "instance_name": null, 
@@ -10555,7 +10555,7 @@
 },
 {
     "pk": 80, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 438, 
         "instance_name": null, 
@@ -10577,7 +10577,7 @@
 },
 {
     "pk": 81, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 588, 
         "instance_name": null, 
@@ -10599,7 +10599,7 @@
 },
 {
     "pk": 82, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 589, 
         "instance_name": null, 
@@ -10621,7 +10621,7 @@
 },
 {
     "pk": 83, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 590, 
         "instance_name": null, 
@@ -10643,7 +10643,7 @@
 },
 {
     "pk": 84, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 384, 
         "instance_name": null, 
@@ -10665,7 +10665,7 @@
 },
 {
     "pk": 85, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 473, 
         "instance_name": null, 
@@ -10687,7 +10687,7 @@
 },
 {
     "pk": 86, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 535, 
         "instance_name": null, 
@@ -10709,7 +10709,7 @@
 },
 {
     "pk": 87, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 592, 
         "instance_name": null, 
@@ -10731,7 +10731,7 @@
 },
 {
     "pk": 88, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 593, 
         "instance_name": null, 
@@ -10753,7 +10753,7 @@
 },
 {
     "pk": 288, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 433, 
         "instance_name": "instance-000005dc", 
@@ -10775,7 +10775,7 @@
 },
 {
     "pk": 289, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 643, 
         "instance_name": "instance-000005dd", 
@@ -10797,7 +10797,7 @@
 },
 {
     "pk": 290, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 713, 
         "instance_name": "instance-000005de", 
@@ -10819,7 +10819,7 @@
 },
 {
     "pk": 291, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 503, 
         "instance_name": "instance-000005df", 
@@ -10841,7 +10841,7 @@
 },
 {
     "pk": 292, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 513, 
         "instance_name": "instance-000005e0", 
@@ -10863,7 +10863,7 @@
 },
 {
     "pk": 293, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 723, 
         "instance_name": "instance-000005e1", 
@@ -10885,7 +10885,7 @@
 },
 {
     "pk": 294, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 603, 
         "instance_name": "instance-000005e2", 
@@ -10907,7 +10907,7 @@
 },
 {
     "pk": 295, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 559, 
         "instance_name": "instance-000005e3", 
@@ -10929,7 +10929,7 @@
 },
 {
     "pk": 296, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 560, 
         "instance_name": "instance-000005e4", 
@@ -10951,7 +10951,7 @@
 },
 {
     "pk": 297, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 561, 
         "instance_name": "instance-000005e5", 
@@ -10973,7 +10973,7 @@
 },
 {
     "pk": 298, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 562, 
         "instance_name": "instance-000005e6", 
@@ -10995,7 +10995,7 @@
 },
 {
     "pk": 299, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 563, 
         "instance_name": "instance-000005e7", 
@@ -11017,7 +11017,7 @@
 },
 {
     "pk": 300, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 564, 
         "instance_name": "instance-000005e8", 
@@ -11039,7 +11039,7 @@
 },
 {
     "pk": 301, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 565, 
         "instance_name": "instance-000005e9", 
@@ -11061,7 +11061,7 @@
 },
 {
     "pk": 302, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 566, 
         "instance_name": "instance-000005ea", 
@@ -11083,7 +11083,7 @@
 },
 {
     "pk": 303, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 567, 
         "instance_name": "instance-000005eb", 
@@ -11105,7 +11105,7 @@
 },
 {
     "pk": 304, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 568, 
         "instance_name": "instance-000005ec", 
@@ -11127,7 +11127,7 @@
 },
 {
     "pk": 305, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 569, 
         "instance_name": "instance-000005ed", 
@@ -11149,7 +11149,7 @@
 },
 {
     "pk": 306, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 570, 
         "instance_name": "instance-000005ee", 
@@ -11171,7 +11171,7 @@
 },
 {
     "pk": 307, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 571, 
         "instance_name": "instance-000005ef", 
@@ -11193,7 +11193,7 @@
 },
 {
     "pk": 308, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 572, 
         "instance_name": "instance-000005f0", 
@@ -11215,7 +11215,7 @@
 },
 {
     "pk": 309, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 573, 
         "instance_name": "instance-000005f1", 
@@ -11237,7 +11237,7 @@
 },
 {
     "pk": 310, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 574, 
         "instance_name": "instance-000005f2", 
@@ -11259,7 +11259,7 @@
 },
 {
     "pk": 311, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 575, 
         "instance_name": "instance-000005f3", 
@@ -11281,7 +11281,7 @@
 },
 {
     "pk": 312, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 576, 
         "instance_name": "instance-000005f4", 
@@ -11303,7 +11303,7 @@
 },
 {
     "pk": 313, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 577, 
         "instance_name": "instance-000005f5", 
@@ -11325,7 +11325,7 @@
 },
 {
     "pk": 314, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 578, 
         "instance_name": "instance-000005f6", 
@@ -11347,7 +11347,7 @@
 },
 {
     "pk": 315, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 579, 
         "instance_name": "instance-000005f7", 
@@ -11369,7 +11369,7 @@
 },
 {
     "pk": 316, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 580, 
         "instance_name": "instance-000005f8", 
@@ -11391,7 +11391,7 @@
 },
 {
     "pk": 317, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 581, 
         "instance_name": "instance-000005f9", 
@@ -11413,7 +11413,7 @@
 },
 {
     "pk": 318, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 582, 
         "instance_name": "instance-000005fa", 
@@ -11435,7 +11435,7 @@
 },
 {
     "pk": 319, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 583, 
         "instance_name": "instance-000005fb", 
@@ -11457,7 +11457,7 @@
 },
 {
     "pk": 320, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 584, 
         "instance_name": "instance-000005fc", 
@@ -11479,7 +11479,7 @@
 },
 {
     "pk": 321, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 585, 
         "instance_name": "instance-000005fd", 
@@ -11501,7 +11501,7 @@
 },
 {
     "pk": 322, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 586, 
         "instance_name": "instance-000005fe", 
@@ -11523,7 +11523,7 @@
 },
 {
     "pk": 323, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 587, 
         "instance_name": "instance-000005ff", 
@@ -11545,7 +11545,7 @@
 },
 {
     "pk": 324, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 588, 
         "instance_name": "instance-00000600", 
@@ -11567,7 +11567,7 @@
 },
 {
     "pk": 325, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 589, 
         "instance_name": "instance-00000601", 
@@ -11589,7 +11589,7 @@
 },
 {
     "pk": 326, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 590, 
         "instance_name": "instance-00000602", 
@@ -11611,7 +11611,7 @@
 },
 {
     "pk": 327, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 591, 
         "instance_name": "instance-00000603", 
@@ -11633,7 +11633,7 @@
 },
 {
     "pk": 328, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 592, 
         "instance_name": "instance-00000604", 
@@ -11655,7 +11655,7 @@
 },
 {
     "pk": 329, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 593, 
         "instance_name": "instance-00000605", 
@@ -11677,7 +11677,7 @@
 },
 {
     "pk": 330, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 453, 
         "instance_name": null, 
@@ -11699,7 +11699,7 @@
 },
 {
     "pk": 331, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 523, 
         "instance_name": null, 
@@ -11721,7 +11721,7 @@
 },
 {
     "pk": 332, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 452, 
         "instance_name": null, 
@@ -11743,7 +11743,7 @@
 },
 {
     "pk": 333, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 522, 
         "instance_name": null, 
@@ -11765,7 +11765,7 @@
 },
 {
     "pk": 334, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 451, 
         "instance_name": null, 
@@ -11787,7 +11787,7 @@
 },
 {
     "pk": 335, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 521, 
         "instance_name": null, 
@@ -11809,7 +11809,7 @@
 },
 {
     "pk": 336, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 450, 
         "instance_name": null, 
@@ -11831,7 +11831,7 @@
 },
 {
     "pk": 337, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 593, 
         "instance_name": null, 
@@ -11853,7 +11853,7 @@
 },
 {
     "pk": 338, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 520, 
         "instance_name": null, 
@@ -11875,7 +11875,7 @@
 },
 {
     "pk": 339, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 449, 
         "instance_name": null, 
@@ -11897,7 +11897,7 @@
 },
 {
     "pk": 340, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 592, 
         "instance_name": null, 
@@ -11919,7 +11919,7 @@
 },
 {
     "pk": 341, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 519, 
         "instance_name": null, 
@@ -11941,7 +11941,7 @@
 },
 {
     "pk": 342, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 591, 
         "instance_name": null, 
@@ -11963,7 +11963,7 @@
 },
 {
     "pk": 343, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 590, 
         "instance_name": null, 
@@ -11985,7 +11985,7 @@
 },
 {
     "pk": 344, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 589, 
         "instance_name": null, 
@@ -12007,7 +12007,7 @@
 },
 {
     "pk": 345, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 535, 
         "instance_name": null, 
@@ -12029,7 +12029,7 @@
 },
 {
     "pk": 346, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 384, 
         "instance_name": null, 
@@ -12051,7 +12051,7 @@
 },
 {
     "pk": 347, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 454, 
         "instance_name": null, 
@@ -12073,7 +12073,7 @@
 },
 {
     "pk": 348, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 385, 
         "instance_name": null, 
@@ -12095,7 +12095,7 @@
 },
 {
     "pk": 349, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 455, 
         "instance_name": null, 
@@ -12117,7 +12117,7 @@
 },
 {
     "pk": 350, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 524, 
         "instance_name": null, 
@@ -12139,7 +12139,7 @@
 },
 {
     "pk": 351, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 386, 
         "instance_name": null, 
@@ -12161,7 +12161,7 @@
 },
 {
     "pk": 352, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 456, 
         "instance_name": null, 
@@ -12183,7 +12183,7 @@
 },
 {
     "pk": 353, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 525, 
         "instance_name": null, 
@@ -12205,7 +12205,7 @@
 },
 {
     "pk": 354, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 457, 
         "instance_name": null, 
@@ -12227,7 +12227,7 @@
 },
 {
     "pk": 355, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 526, 
         "instance_name": null, 
@@ -12249,7 +12249,7 @@
 },
 {
     "pk": 356, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 458, 
         "instance_name": null, 
@@ -12271,7 +12271,7 @@
 },
 {
     "pk": 357, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 527, 
         "instance_name": null, 
@@ -12293,7 +12293,7 @@
 },
 {
     "pk": 358, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 459, 
         "instance_name": null, 
@@ -12315,7 +12315,7 @@
 },
 {
     "pk": 359, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 528, 
         "instance_name": null, 
@@ -12337,7 +12337,7 @@
 },
 {
     "pk": 360, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 387, 
         "instance_name": null, 
@@ -12359,7 +12359,7 @@
 },
 {
     "pk": 361, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 388, 
         "instance_name": null, 
@@ -12381,7 +12381,7 @@
 },
 {
     "pk": 362, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 389, 
         "instance_name": null, 
@@ -12403,7 +12403,7 @@
 },
 {
     "pk": 363, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 663, 
         "instance_name": null, 
@@ -12425,7 +12425,7 @@
 },
 {
     "pk": 365, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 661, 
         "instance_name": null, 
@@ -12447,7 +12447,7 @@
 },
 {
     "pk": 366, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 593, 
         "instance_name": null, 
@@ -12469,7 +12469,7 @@
 },
 {
     "pk": 368, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 453, 
         "instance_name": null, 
@@ -12491,7 +12491,7 @@
 },
 {
     "pk": 369, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 452, 
         "instance_name": null, 
@@ -12513,7 +12513,7 @@
 },
 {
     "pk": 370, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 660, 
         "instance_name": null, 
@@ -12535,7 +12535,7 @@
 },
 {
     "pk": 371, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 523, 
         "instance_name": null, 
@@ -12557,7 +12557,7 @@
 },
 {
     "pk": 372, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 522, 
         "instance_name": null, 
@@ -12579,7 +12579,7 @@
 },
 {
     "pk": 373, 
-    "model": "core.sliver", 
+    "model": "core.instance", 
     "fields": {
         "node": 733, 
         "instance_name": null, 
@@ -12663,7 +12663,7 @@
         "resource": 8, 
         "created": "2013-12-18T23:32:41.622Z", 
         "deleted": false, 
-        "sliver": 78, 
+        "instance": 78, 
         "reservationSet": 1, 
         "backend_status": "Provisioning in progress", 
         "quantity": 5, 
@@ -12678,7 +12678,7 @@
         "resource": 8, 
         "created": "2013-12-18T23:34:02.152Z", 
         "deleted": false, 
-        "sliver": 77, 
+        "instance": 77, 
         "reservationSet": 2, 
         "backend_status": "Provisioning in progress", 
         "quantity": 5, 
@@ -12693,7 +12693,7 @@
         "resource": 8, 
         "created": "2013-12-18T23:35:25.731Z", 
         "deleted": false, 
-        "sliver": 84, 
+        "instance": 84, 
         "reservationSet": 4, 
         "backend_status": "Provisioning in progress", 
         "quantity": 1, 
@@ -12708,7 +12708,7 @@
         "resource": 8, 
         "created": "2013-12-18T23:35:25.732Z", 
         "deleted": false, 
-        "sliver": 85, 
+        "instance": 85, 
         "reservationSet": 4, 
         "backend_status": "Provisioning in progress", 
         "quantity": 1, 
@@ -12723,7 +12723,7 @@
         "resource": 8, 
         "created": "2013-12-18T23:35:25.733Z", 
         "deleted": false, 
-        "sliver": 86, 
+        "instance": 86, 
         "reservationSet": 4, 
         "backend_status": "Provisioning in progress", 
         "quantity": 1, 
@@ -12738,7 +12738,7 @@
         "resource": 8, 
         "created": "2013-12-18T23:35:45.486Z", 
         "deleted": false, 
-        "sliver": 84, 
+        "instance": 84, 
         "reservationSet": 3, 
         "backend_status": "Provisioning in progress", 
         "quantity": 1, 
@@ -12753,7 +12753,7 @@
         "resource": 8, 
         "created": "2013-12-18T23:35:45.487Z", 
         "deleted": false, 
-        "sliver": 85, 
+        "instance": 85, 
         "reservationSet": 3, 
         "backend_status": "Provisioning in progress", 
         "quantity": 1, 
@@ -12768,7 +12768,7 @@
         "resource": 8, 
         "created": "2013-12-18T23:35:45.488Z", 
         "deleted": false, 
-        "sliver": 86, 
+        "instance": 86, 
         "reservationSet": 3, 
         "backend_status": "Provisioning in progress", 
         "quantity": 1, 
@@ -12783,7 +12783,7 @@
         "name": "Public dedicated IPv4", 
         "created": "2013-12-09T14:15:16.899Z", 
         "deleted": false, 
-        "description": "Connect a sliver to the public network using dedicated public IPv4 address", 
+        "description": "Connect a instance to the public network using dedicated public IPv4 address", 
         "shared_network_name": "ext-net", 
         "guaranteed_bandwidth": 0, 
         "visibility": "public", 
@@ -12801,7 +12801,7 @@
         "name": "Public shared IPv4", 
         "created": "2013-12-09T14:17:29.551Z", 
         "deleted": false, 
-        "description": "Connect a sliver to the public network via NAT, with port forwarding", 
+        "description": "Connect a instance to the public network via NAT, with port forwarding", 
         "shared_network_name": "nat-net", 
         "guaranteed_bandwidth": 0, 
         "visibility": "private", 
diff --git a/xos/core/fixtures/initial_data.json b/xos/core/fixtures/initial_data.json
index 2d7f5d2..213245c 100644
--- a/xos/core/fixtures/initial_data.json
+++ b/xos/core/fixtures/initial_data.json
@@ -347,7 +347,7 @@
         "policed": null,
         "created": "2015-02-17T22:06:39.477Z",
         "deleted": false,
-        "description": "Connect a sliver to the public network",
+        "description": "Connect a instance to the public network",
         "visibility": "private",
         "name": "Public shared IPv4",
         "backend_register": "{}",
@@ -369,7 +369,7 @@
         "policed": null,
         "created": "2015-02-17T22:06:39.536Z",
         "deleted": false,
-        "description": "Connect a sliver to the public network",
+        "description": "Connect a instance to the public network",
         "visibility": "public",
         "name": "Public dedicated IPv4",
         "backend_register": "{}",
diff --git a/xos/core/models/instance.py b/xos/core/models/instance.py
index eb38ff9..adb9395 100644
--- a/xos/core/models/instance.py
+++ b/xos/core/models/instance.py
@@ -98,10 +98,10 @@
     tags = generic.GenericRelation(Tag)
     userData = models.TextField(blank=True, null=True, help_text="user_data passed to instance during creation")
 
-    # TODO: Remove when NetworkSliver->Port rename is complete
+    # TODO: Remove when NetworkInstance->Port rename is complete
     @property
     def ports(self):
-        return self.networkslivers
+        return self.networkinstances
 
     def __unicode__(self):
         if self.name and Slice.objects.filter(id=self.slice_id) and (self.name != self.slice.name):
diff --git a/xos/core/models/network.py b/xos/core/models/network.py
index dfda072..63d617c 100644
--- a/xos/core/models/network.py
+++ b/xos/core/models/network.py
@@ -123,10 +123,10 @@
 
     def __unicode__(self):  return u'%s' % (self.name)
 
-    # TODO: Remove when NetworkSliver->Port rename is complete
+    # TODO: Remove when NetworkInstance->Port rename is complete
     @property
     def links(self):
-        return self.networkslivers
+        return self.networkinstances
 
     def save(self, *args, **kwds):
         if (not self.subnet) and (NO_OBSERVER):
@@ -212,7 +212,7 @@
         return qs
 
 class NetworkInstance(PlCoreBase):
-    # Please use "Port" instead of "NetworkSliver". NetworkSliver will soon be
+    # Please use "Port" instead of "NetworkInstance". NetworkInstance will soon be
     # removed.
 
     network = models.ForeignKey(Network,related_name='networkinstances')
@@ -263,7 +263,7 @@
         return qs
 
 class Port(NetworkInstance):
-    # Rename in progress: NetworkSliver->Port
+    # Rename in progress: NetworkInstance->Port
     class Meta:
         proxy = True
 
diff --git a/xos/core/models/service.py b/xos/core/models/service.py
index b69acf1..9530c72 100644
--- a/xos/core/models/service.py
+++ b/xos/core/models/service.py
@@ -347,32 +347,32 @@
 
     def __init__(self, *args, **kwargs):
         super(TenantWithContainer, self).__init__(*args, **kwargs)
-        self.cached_sliver=None
-        self.orig_sliver_id = self.get_initial_attribute("sliver_id")
+        self.cached_instance=None
+        self.orig_instance_id = self.get_initial_attribute("instance_id")
 
     @property
-    def sliver(self):
-        from core.models import Sliver
-        if getattr(self, "cached_sliver", None):
-            return self.cached_sliver
-        sliver_id=self.get_attribute("sliver_id")
-        if not sliver_id:
+    def instance(self):
+        from core.models import Instance
+        if getattr(self, "cached_instance", None):
+            return self.cached_instance
+        instance_id=self.get_attribute("instance_id")
+        if not instance_id:
             return None
-        slivers=Sliver.objects.filter(id=sliver_id)
-        if not slivers:
+        instances=Instance.objects.filter(id=instance_id)
+        if not instances:
             return None
-        sliver=slivers[0]
-        sliver.caller = self.creator
-        self.cached_sliver = sliver
-        return sliver
+        instance=instances[0]
+        instance.caller = self.creator
+        self.cached_instance = instance
+        return instance
 
-    @sliver.setter
-    def sliver(self, value):
+    @instance.setter
+    def instance(self, value):
         if value:
             value = value.id
-        if (value != self.get_attribute("sliver_id", None)):
-            self.cached_sliver=None
-        self.set_attribute("sliver_id", value)
+        if (value != self.get_attribute("instance_id", None)):
+            self.cached_instance=None
+        self.set_attribute("instance_id", value)
 
     @property
     def creator(self):
@@ -414,20 +414,20 @@
         nodes = list(Node.objects.all())
         # TODO: logic to filter nodes by which nodes are up, and which
         #   nodes the slice can instantiate on.
-        nodes = sorted(nodes, key=lambda node: node.slivers.all().count())
+        nodes = sorted(nodes, key=lambda node: node.instances.all().count())
         return nodes[0]
 
     def manage_container(self):
-        from core.models import Sliver, Flavor
+        from core.models import Instance, Flavor
 
         if self.deleted:
             return
 
-        if (self.sliver is not None) and (self.sliver.image != self.image):
-            self.sliver.delete()
-            self.sliver = None
+        if (self.instance is not None) and (self.instance.image != self.image):
+            self.instance.delete()
+            self.instance = None
 
-        if self.sliver is None:
+        if self.instance is None:
             if not self.provider_service.slices.count():
                 raise XOSConfigurationError("The VCPE service has no slices")
 
@@ -436,26 +436,26 @@
                 raise XOSConfigurationError("No m1.small flavor")
 
             node =self.pick_node()
-            sliver = Sliver(slice = self.provider_service.slices.all()[0],
+            instance = Instance(slice = self.provider_service.slices.all()[0],
                             node = node,
                             image = self.image,
                             creator = self.creator,
                             deployment = node.site_deployment.deployment,
                             flavor = flavors[0])
-            sliver.save()
+            instance.save()
 
             try:
-                self.sliver = sliver
+                self.instance = instance
                 super(TenantWithContainer, self).save()
             except:
-                sliver.delete()
+                instance.delete()
                 raise
 
     def cleanup_container(self):
-        if self.sliver:
-            # print "XXX cleanup sliver", self.sliver
-            self.sliver.delete()
-            self.sliver = None
+        if self.instance:
+            # print "XXX cleanup instance", self.instance
+            self.instance.delete()
+            self.instance = None
 
 class CoarseTenant(Tenant):
     """ TODO: rename "CoarseTenant" --> "StaticTenant" """
diff --git a/xos/core/static/page_analytics.js b/xos/core/static/page_analytics.js
index 698396f..42058b1 100644
--- a/xos/core/static/page_analytics.js
+++ b/xos/core/static/page_analytics.js
@@ -27,7 +27,7 @@
 }
 
 $( document ).ready(function() {
-    if (admin_object_name == "Sliver" && admin_object_id != undefined) {
+    if (admin_object_name == "Instance" && admin_object_id != undefined) {
         updateMiniDashStatistic("cpu", "#miniDashCPU");
         updateMiniDashStatistic("network.outgoing.bytes", "#miniDashBandwidthIn");
         updateMiniDashStatistic("network.incoming.bytes", "#miniDashBandwidthOut");
diff --git a/xos/core/static/xos.css b/xos/core/static/xos.css
index 282c9f4..00e1f2b 100644
--- a/xos/core/static/xos.css
+++ b/xos/core/static/xos.css
@@ -158,7 +158,7 @@
 table.dataTable thead th div.DataTables_sort_wrapper {
     font-weight: bold;
 }
-.dashboard-hpc-sliver .ui-widget-header, .dashboard-hpc-sliver .ui-dialog-title, .dashboard-hpc-sliver .ui-dialog-titlebar{
+.dashboard-hpc-instance .ui-widget-header, .dashboard-hpc-instance .ui-dialog-title, .dashboard-hpc-instance .ui-dialog-titlebar{
 }
 .ui-widget-overlay {
     background: black !important;
@@ -823,12 +823,12 @@
 color: darkBlue;
     font-size: 1.5em;
 }
-#addSlivers {
+#addInstances {
  color: green;
 text-decoration: underline;
     padding-right: 20px;
 }
-#remSlivers {
+#remInstances {
  color: red;
  text-decoration: underline;
 }
@@ -1067,14 +1067,14 @@
 #adv-dataset-dropdown{
 margin-left: 3.7%;
 }
-#advanced-tenant,#basic-tenant,#sliver-btn,#save-btn{
+#advanced-tenant,#basic-tenant,#instance-btn,#save-btn{
   float:right;
 }
  #delete-slice-btn,#download-details,#add-user-btn{
 	margin-left:1%;
 }
 
-#sliver-btn,#save-btn,#create-slice-btn,#delete-slice-btn,#add-user-btn,#download-details{
+#instance-btn,#save-btn,#create-slice-btn,#delete-slice-btn,#add-user-btn,#download-details{
   margin-top:1%;
 }
 
@@ -1145,7 +1145,7 @@
 	margin-right: 1%;
 }
 
-#advNumOfSlivers{
+#advNumOfInstances{
         margin-right: 1% !important;
 }
 
diff --git a/xos/core/views/legacyapi.py b/xos/core/views/legacyapi.py
index 942be9a..4657116 100644
--- a/xos/core/views/legacyapi.py
+++ b/xos/core/views/legacyapi.py
@@ -125,7 +125,7 @@
                 "node_ids": node_ids,
                 "pcu_ids": [],
                 "max_slices": 100,
-                "max_slivers": 1000,
+                "max_instances": 1000,
                 "is_public": False,
                 "peer_site_id": None,
                 "abbrebiated_name": ps_site.abbreviated_name,
@@ -285,7 +285,7 @@
             'hostipmap':hostipmap,
             'hostnatmap':hostnatmap,
             'hostprivmap':hostprivmap,
-            'slivers': instances,
+            'instances': instances,
             'interfaces': allinterfaces,
             'sites': sites,
             'nodes': nodes}
diff --git a/xos/core/xoslib/dashboards/sliverListTest.html b/xos/core/xoslib/dashboards/sliverListTest.html
index 3093899..0e912c5 100644
--- a/xos/core/xoslib/dashboards/sliverListTest.html
+++ b/xos/core/xoslib/dashboards/sliverListTest.html
@@ -7,10 +7,10 @@
 
 <script src="{{ STATIC_URL }}/js/xoslib/xos-defaults.js"></script>
 <script src="{{ STATIC_URL }}/js/xoslib/xos-backbone.js"></script>
-<script src="{{ STATIC_URL }}/js/sliverListTest.js"></script>
+<script src="{{ STATIC_URL }}/js/instanceListTest.js"></script>
 
-<script type="text/html" id="sliverTemplate">
-  {% straight_include "mustache/sliverTemplate.mustache" %}
+<script type="text/html" id="instanceTemplate">
+  {% straight_include "mustache/instanceTemplate.mustache" %}
 </script>
 
 <script type="text/html" id="listApp">
diff --git a/xos/core/xoslib/dashboards/test.html b/xos/core/xoslib/dashboards/test.html
index e6faf3a..0add2a8 100644
--- a/xos/core/xoslib/dashboards/test.html
+++ b/xos/core/xoslib/dashboards/test.html
@@ -40,7 +40,7 @@
 <div id="sliceList">
 </div>
 
-<div id="sliverList">
+<div id="instanceList">
 </div>
 
 <div id="userList">
diff --git a/xos/core/xoslib/dashboards/xosDeveloper.html b/xos/core/xoslib/dashboards/xosDeveloper.html
index 95d1383..9227acd 100644
--- a/xos/core/xoslib/dashboards/xosDeveloper.html
+++ b/xos/core/xoslib/dashboards/xosDeveloper.html
@@ -18,7 +18,7 @@
     <tr class="developer-header">
       <th>Slice <span class="sort" id="sort-asc-name">&#9650;</span><span class="sort" id="sort-desc-name">&#9660;</span></th>
       <th>Privilege<span class="sort" id="sort-asc-sliceInfo.roles">&#9650;</span><span class="sort" id="sort-desc-sliceInfo.roles">&#9660;</span></th>
-      <th>Number of Slivers<span class="sort" id="sort-asc-sliceInfo.sliverCount">&#9650;</span><span class="sort" id="sort-desc-sliceInfo.sliverCount">&#9660;</span></th>
+      <th>Number of Instances<span class="sort" id="sort-asc-sliceInfo.instanceCount">&#9650;</span><span class="sort" id="sort-desc-sliceInfo.instanceCount">&#9660;</span></th>
       <th>Number of Sites<span class="sort" id="sort-asc-sliceInfo.siteCount">&#9650;</span><span class="sort" id="sort-desc-sliceInfo.siteCount">&#9660;</span></th>
     </tr>
   </thead>
@@ -27,6 +27,6 @@
 </script>
 
 <script type="text/template" id="developer-slicedetail-template">
-  <td><a href="http://{{request.get_host}}/admin/core/slice/<%= id %>/"><%= name %></a></td><td><%= sliceInfo.roles[0] %></td><td><%= sliceInfo.sliverCount %></td><td><%= sliceInfo.siteCount %></td>
+  <td><a href="http://{{request.get_host}}/admin/core/slice/<%= id %>/"><%= name %></a></td><td><%= sliceInfo.roles[0] %></td><td><%= sliceInfo.instanceCount %></td><td><%= sliceInfo.siteCount %></td>
 </script>
 
diff --git a/xos/core/xoslib/dashboards/xosDeveloper_datatables.html b/xos/core/xoslib/dashboards/xosDeveloper_datatables.html
index fad3217..57777b7 100644
--- a/xos/core/xoslib/dashboards/xosDeveloper_datatables.html
+++ b/xos/core/xoslib/dashboards/xosDeveloper_datatables.html
@@ -12,6 +12,6 @@
 </div>
 
 <script type="text/template" id="developer-slicedetail-template">
-  <td><a href="http://{{request.get_host}}/admin/core/slice/<%= id %>/"><%= name %></a></td><td><%= sliceInfo.roles[0] %></td><td><%= sliceInfo.sliverCount %></td><td><%= sliceInfo.siteCount %></td>
+  <td><a href="http://{{request.get_host}}/admin/core/slice/<%= id %>/"><%= name %></a></td><td><%= sliceInfo.roles[0] %></td><td><%= sliceInfo.instanceCount %></td><td><%= sliceInfo.siteCount %></td>
 </script>
 
diff --git a/xos/core/xoslib/static/js/sliverListTest.js b/xos/core/xoslib/static/js/sliverListTest.js
index 59970d8..3a0c1fb 100644
--- a/xos/core/xoslib/static/js/sliverListTest.js
+++ b/xos/core/xoslib/static/js/sliverListTest.js
@@ -1,8 +1,8 @@
 (function(){
 
-window.SliverView = Backbone.View.extend({
+window.InstanceView = Backbone.View.extend({
     tagName: 'li',
-    className: 'sliver',
+    className: 'instance',
 
     events: {
         'click .permalink': 'navigate'
@@ -18,7 +18,7 @@
     },
 
     render: function(){
-        $(this.el).html(ich.sliverTemplate(this.model.toJSON()));
+        $(this.el).html(ich.instanceTemplate(this.model.toJSON()));
         return this;
     }
 });
@@ -54,9 +54,9 @@
         this.collection.each(this.addOne);
     },
 
-    addOne: function(sliver){
-        var view = new SliverView({
-            model: sliver
+    addOne: function(instance){
+        var view = new InstanceView({
+            model: instance
         });
         $(this.el).prepend(view.render().el);
         this.views.push(view);
@@ -82,7 +82,7 @@
         $(this.el).html(ich.listApp({}));
         var list = new ListView({
             collection: this.collection,
-            el: this.$('#slivers')
+            el: this.$('#instances')
         });
         list.addAll();
         list.bind('all', this.rethrow, this);
@@ -110,21 +110,21 @@
 $(function(){
     window.app = window.app || {};
     app.router = new Router();
-    app.slivers = xos.slivers; //new XOSLib.slivers();
+    app.instances = xos.instances; //new XOSLib.instances();
     app.list = new ListApp({
         el: $("#app"),
-        collection: app.slivers
+        collection: app.instances
     });
     app.detail = new DetailApp({
         el: $("#app")
     });
     app.router.bind('route:list', function(){
-        app.slivers.maybeFetch({
+        app.instances.maybeFetch({
             success: _.bind(app.list.render, app.list)
         });
     });
     app.router.bind('route:detail', function(id){
-        app.slivers.getOrFetch(app.slivers.urlRoot + id + '/', {
+        app.instances.getOrFetch(app.instances.urlRoot + id + '/', {
             success: function(model){
                 app.detail.model = model;
                 app.detail.render();
@@ -132,7 +132,7 @@
         });
     });
 
-    app.slivers.maybeFetch({
+    app.instances.maybeFetch({
         success: _.bind(app.list.render, app.list)
     });
 
diff --git a/xos/core/xoslib/static/js/test.js b/xos/core/xoslib/static/js/test.js
index d5d0a46..bb32760 100644
--- a/xos/core/xoslib/static/js/test.js
+++ b/xos/core/xoslib/static/js/test.js
@@ -9,7 +9,7 @@
     serviceList: "#serviceList",
     siteList: "#siteList",
     sliceList: "#sliceList",
-    sliverList: "#sliverList",
+    instanceList: "#instanceList",
     userList: "#userList",
     detail: "#detail",
     linkedObjs1: "#linkedObjs1",
@@ -35,7 +35,7 @@
 };
 
 TestApp.on("start", function() {
-     var objs = ['deployment', 'image', 'networkTemplate', 'network', 'port', 'networkDeployment', 'node', 'service', 'site', 'slice', 'sliceDeployment', 'slicePrivilege', 'sliver', 'user', 'sliceRole', 'userDeployment'];
+     var objs = ['deployment', 'image', 'networkTemplate', 'network', 'port', 'networkDeployment', 'node', 'service', 'site', 'slice', 'sliceDeployment', 'slicePrivilege', 'instance', 'user', 'sliceRole', 'userDeployment'];
 
      for (var index in objs) {
          name = objs[index];
diff --git a/xos/core/xoslib/static/js/xosAdminSite.js b/xos/core/xoslib/static/js/xosAdminSite.js
index bb0bed7..13f1d67 100644
--- a/xos/core/xoslib/static/js/xosAdminSite.js
+++ b/xos/core/xoslib/static/js/xosAdminSite.js
@@ -1,5 +1,5 @@
 OBJS = ['deployment', 'image', 'networkTemplate', 'network', 'port',
-        'node', 'service', 'site', 'slice',  'slicePrivilege', 'sliver',
+        'node', 'service', 'site', 'slice',  'slicePrivilege', 'instance',
         'user', 'sliceRole',  'flavor', 'controller', 'siteDeployment',
         'controller_image', 'controller_network', 'controller_slice', 'controller_user'];
 NAV_OBJS = ['deployment', 'site', 'slice', 'user'];
diff --git a/xos/core/xoslib/static/js/xosDeveloper_datatables.js b/xos/core/xoslib/static/js/xosDeveloper_datatables.js
index 7d6ee3c..ed88a9f 100644
--- a/xos/core/xoslib/static/js/xosDeveloper_datatables.js
+++ b/xos/core/xoslib/static/js/xosDeveloper_datatables.js
@@ -13,7 +13,7 @@
         slicename = row.get("name");
         sliceid = row.get("id");
         role = row.get("sliceInfo").roles[0] || "";
-        slivercount = row.get("sliceInfo").sliverCount;
+        instancecount = row.get("sliceInfo").instanceCount;
         sitecount = row.get("sliceInfo").siteCount;
         backendHtml = row.get("backendHtml")
 
@@ -26,7 +26,7 @@
         }
 
         actualEntries.push([backendHtml + ' <a href="/admin/core/slice/' + sliceid + '">' + slicename + '</a>',
-                            role, slivercount, sitecount]);
+                            role, instancecount, sitecount]);
     }
     oTable = $('#dynamicusersliceinfo').dataTable( {
         "bJQueryUI": true,
@@ -35,7 +35,7 @@
         "aoColumns": [
             { "sTitle": "Slice" },
             { "sTitle": "Privilege" , sClass: "alignCenter"},
-            { "sTitle": "Number of Slivers" , sClass: "alignCenter"},
+            { "sTitle": "Number of Instances" , sClass: "alignCenter"},
             { "sTitle": "Number of Sites" , sClass: "alignCenter"},
         ]
     } );
diff --git a/xos/core/xoslib/static/js/xosTenant.js b/xos/core/xoslib/static/js/xosTenant.js
index 0c89a1e..414cb48 100644
--- a/xos/core/xoslib/static/js/xosTenant.js
+++ b/xos/core/xoslib/static/js/xosTenant.js
@@ -153,9 +153,9 @@
                                                 app: XOSTenantApp,
                                                 detailFields: ["serviceClass", "default_image", "default_flavor", "network_ports"],
                                                 fieldDisplayNames: {serviceClass: "Service Level", "default_flavor": "Flavor", "default_image": "Image", "mount_data_sets": "Data Sets"},
-                                                helpText: {"serviceClass": "Existing slivers will be re-instantiated if changed",
-                                                           "default_image": "Existing slivers will be re-instantiated if changed",
-                                                           "default_flavor": "Existing slivers will be re-instantiated if changed"},
+                                                helpText: {"serviceClass": "Existing instances will be re-instantiated if changed",
+                                                           "default_image": "Existing instances will be re-instantiated if changed",
+                                                           "default_flavor": "Existing instances will be re-instantiated if changed"},
 
                                                 onShow: function() {
                                                     // the slice selector is in a different table, so make every label cell the maximal width
@@ -305,7 +305,7 @@
     }
 
     if (sshCommands.length == 0) {
-         alert("this slice has no instantiated slivers yet");
+         alert("this slice has no instantiated instances yet");
          return;
     }
 
@@ -340,7 +340,7 @@
 
 XOSTenantApp.viewSlice = function(model) {
     if (XOSTenantApp.dirty) {
-        if (!confirm("The current sliver has unsaved data -- view new sliver anyway ?")) {
+        if (!confirm("The current instance has unsaved data -- view new instance anyway ?")) {
             $("#tenantSliceSelector select").val(XOSTenantApp.currentSlice.id);
             return;
         }
diff --git a/xos/core/xoslib/static/js/xoslib/xos-backbone.js b/xos/core/xoslib/static/js/xoslib/xos-backbone.js
index c85ff18..a6c9465 100644
--- a/xos/core/xoslib/static/js/xoslib/xos-backbone.js
+++ b/xos/core/xoslib/static/js/xoslib/xos-backbone.js
@@ -3,7 +3,7 @@
 
     XOS_BASE = "/xos";
 
-    SLIVER_API = XOS_BASE+"/slivers/";
+    SLIVER_API = XOS_BASE+"/instances/";
     SLICE_API = XOS_BASE+"/slices/";
     SLICEROLE_API = XOS_BASE+"/slice_roles/";
     NODE_API = XOS_BASE+"/nodes/";
@@ -474,10 +474,10 @@
         */
 
         define_model(this, {urlRoot: SLIVER_API,
-                            relatedCollections: {"ports": "sliver"},
+                            relatedCollections: {"ports": "instance"},
                             foreignCollections: ["slices", "deployments", "images", "nodes", "users", "flavors"],
                             foreignFields: {"creator": "users", "image": "images", "node": "nodes", "deployment": "deployments", "slice": "slices", "flavor": "flavors"},
-                            modelName: "sliver",
+                            modelName: "instance",
                             listFields: ["backend_status", "id", "name", "instance_id", "instance_name", "slice", "deployment", "image", "node", "flavor"],
                             addFields: ["slice", "deployment", "flavor", "image", "node"],
                             detailFields: ["backend_status", "backend_register", "name", "instance_id", "instance_name", "slice", "deployment", "flavor", "image", "node", "creator"],
@@ -485,11 +485,11 @@
                             });
 
         define_model(this, {urlRoot: SLICE_API,
-                           relatedCollections: {"slivers": "slice", "slicePrivileges": "slice", "networks": "owner", "controller_slices": "slice"},
+                           relatedCollections: {"instances": "slice", "slicePrivileges": "slice", "networks": "owner", "controller_slices": "slice"},
                            foreignCollections: ["services", "sites"],
                            foreignFields: {"service": "services", "site": "sites"},
-                           listFields: ["backend_status", "id", "name", "enabled", "description", "slice_url", "site", "max_slivers", "service"],
-                           detailFields: ["backend_status", "backend_register", "name", "site", "enabled", "description", "slice_url", "max_slivers"],
+                           listFields: ["backend_status", "id", "name", "enabled", "description", "slice_url", "site", "max_instances", "service"],
+                           detailFields: ["backend_status", "backend_register", "name", "site", "enabled", "description", "slice_url", "max_instances"],
                            inputType: {"enabled": "checkbox"},
                            modelName: "slice",
                            xosValidate: function(attrs, options) {
@@ -556,7 +556,7 @@
                             });
 
         define_model(this, { urlRoot: DEPLOYMENT_API,
-                             relatedCollections: {"nodes": "deployment", "slivers": "deployment"},
+                             relatedCollections: {"nodes": "deployment", "instances": "deployment"},
                              m2mFields: {"flavors": "flavors", "sites": "sites", "images": "images"},
                              modelName: "deployment",
                              listFields: ["backend_status", "id", "name", "backend_type", "admin_tenant"],
@@ -589,9 +589,9 @@
 
         define_model(this, {urlRoot: PORT_API,
                             modelName: "port",
-                            foreignFields: {"network": "networks", "sliver": "slivers"},
-                            listFields: ["backend_status", "id", "network", "sliver", "ip", "port_id"],
-                            detailFields: ["backend_status", "backend_register", "network", "sliver", "ip", "port_id"],
+                            foreignFields: {"network": "networks", "instance": "instances"},
+                            listFields: ["backend_status", "id", "network", "instance", "ip", "port_id"],
+                            detailFields: ["backend_status", "backend_register", "network", "instance", "ip", "port_id"],
                             });
 
         define_model(this, {urlRoot: SERVICE_API,
@@ -698,11 +698,11 @@
         // enhanced REST
         // XXX this really needs to somehow be combined with Slice, to avoid duplication
         define_model(this, {urlRoot: SLICEPLUS_API,
-                           relatedCollections: {"slivers": "slice", "slicePrivileges": "slice", "networks": "owner"},
+                           relatedCollections: {"instances": "slice", "slicePrivileges": "slice", "networks": "owner"},
                            foreignCollections: ["services", "sites"],
                            foreignFields: {"service": "services", "site": "sites"},
-                           listFields: ["backend_status", "id", "name", "enabled", "description", "slice_url", "site", "max_slivers", "service"],
-                           detailFields: ["backend_status", "backend_register", "name", "site", "enabled", "description", "slice_url", "max_slivers"],
+                           listFields: ["backend_status", "id", "name", "enabled", "description", "slice_url", "site", "max_instances", "service"],
+                           detailFields: ["backend_status", "backend_register", "name", "site", "enabled", "description", "slice_url", "max_instances"],
                            inputType: {"enabled": "checkbox"},
                            modelName: "slicePlus",
                            collectionName: "slicesPlus",
@@ -741,7 +741,7 @@
                             modelName: "cordSubscriber",
                             relatedCollections: {"cordUsers": "subscriber"},
                             listFields: ["id", "service_specific_id", "vlan_id", "routeable_subnet"],
-                            detailFields: ["id", "service_specific_id", "vcpe_id", "image_name", "sliver_name",
+                            detailFields: ["id", "service_specific_id", "vcpe_id", "image_name", "instance_name",
                                            "firewall_enable", "firewall_rules", "url_filter_enable", "url_filter_rules", "cdn_enable",
                                            "nat_ip", "lan_ip", "wan_ip", "private_ip",
                                            "vbng_id", "routeable_subnet"],
diff --git a/xos/core/xoslib/static/js/xoslib/xos-defaults.js b/xos/core/xoslib/static/js/xoslib/xos-defaults.js
index a2c60cc..58f9258 100644
--- a/xos/core/xoslib/static/js/xoslib/xos-defaults.js
+++ b/xos/core/xoslib/static/js/xoslib/xos-defaults.js
@@ -24,16 +24,16 @@
   this.networkParameter = {"updated": null, "policed": null, "created": null, "deleted": false, "value": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "object_id": null, "content_type": null, "backend_status": "0 - Provisioning in progress", "parameter": null, "no_sync": false, "enacted": null};
   this.networkParameterType = {"updated": null, "backend_status": "0 - Provisioning in progress", "description": "", "created": null, "deleted": false, "name": "", "backend_register": "{}", "write_protect": false, "enacted": null, "lazy_blocked": false, "no_sync": false, "policed": null};
   this.networkSlice = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "network": null};
-  this.networkSliver = {"updated": null, "policed": null, "created": null, "deleted": false, "ip": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "port_id": null, "network": null, "sliver": null};
+  this.networkInstance = {"updated": null, "policed": null, "created": null, "deleted": false, "ip": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "port_id": null, "network": null, "instance": null};
   this.networkTemplate = {"updated": null, "shared_network_name": null, "name": "", "created": null, "deleted": false, "description": null, "enacted": null, "visibility": "private", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "topology_kind": "bigswitch", "guaranteed_bandwidth": 0, "translation": "none", "backend_status": "0 - Provisioning in progress", "shared_network_id": null, "controller_kind": null, "policed": null};
   this.node = {"updated": null, "policed": null, "created": null, "deleted": false, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "site_deployment": null, "name": ""};
   this.payment = {"updated": null, "policed": null, "created": null, "deleted": false, "account": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "amount": 0.0, "date": "2015-08-28T18:02:48.736Z", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
-  this.port = {"updated": null, "policed": null, "created": null, "deleted": false, "ip": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "port_id": null, "network": null, "sliver": null};
+  this.port = {"updated": null, "policed": null, "created": null, "deleted": false, "ip": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "port_id": null, "network": null, "instance": null};
   this.program = {"status": null, "updated": null, "policed": null, "created": null, "deleted": false, "description": null, "messages": null, "kind": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "command": null, "no_sync": false, "owner": null, "output": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "contents": null, "name": ""};
   this.project = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
   this.provider = {"updated": null, "policed": null, "created": null, "deleted": false, "service_specific_attribute": null, "kind": "Provider", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "service_specific_id": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": null};
   this.reservation = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "startTime": null, "duration": 1, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
-  this.reservedResource = {"updated": null, "backend_status": "0 - Provisioning in progress", "resource": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "reservationSet": null, "enacted": null, "sliver": null, "no_sync": false, "quantity": 1};
+  this.reservedResource = {"updated": null, "backend_status": "0 - Provisioning in progress", "resource": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "reservationSet": null, "enacted": null, "instance": null, "no_sync": false, "quantity": 1};
   this.role = {"updated": null, "description": "", "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "no_sync": false, "content_type": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "role_type": "", "policed": null};
   this.router = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "owner": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
   this.service = {"public_key": null, "updated": null, "policed": null, "created": null, "deleted": false, "view_url": null, "description": null, "service_specific_attribute": null, "enabled": true, "kind": "generic", "published": true, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "versionNumber": "", "service_specific_id": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "icon_url": null, "no_sync": false, "name": ""};
@@ -46,12 +46,12 @@
   this.siteDeployment = {"updated": null, "policed": null, "availability_zone": null, "deleted": false, "created": null, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "controller": null, "deployment": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
   this.sitePrivilege = {"updated": null, "policed": null, "created": null, "deleted": false, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "user": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
   this.siteRole = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
-  this.slice = {"policed": null, "creator": null, "site": null, "backend_register": "{}", "backend_status": "0 - Provisioning in progress", "network": "Private Only", "service": null, "no_sync": false, "default_flavor": null, "updated": null, "description": "", "deleted": false, "slice_url": "", "serviceClass": 1, "lazy_blocked": false, "omf_friendly": false, "mount_data_sets": "GenBank", "max_slivers": 10, "enacted": null, "name": "", "created": null, "write_protect": false, "enabled": true, "default_image": null};
+  this.slice = {"policed": null, "creator": null, "site": null, "backend_register": "{}", "backend_status": "0 - Provisioning in progress", "network": "Private Only", "service": null, "no_sync": false, "default_flavor": null, "updated": null, "description": "", "deleted": false, "slice_url": "", "serviceClass": 1, "lazy_blocked": false, "omf_friendly": false, "mount_data_sets": "GenBank", "max_instances": 10, "enacted": null, "name": "", "created": null, "write_protect": false, "enabled": true, "default_image": null};
   this.sliceCredential = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "key_id": "", "enacted": null, "enc_value": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
   this.slicePrivilege = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "user": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
   this.sliceRole = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
   this.sliceTag = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "value": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
-  this.sliver = {"policed": null, "creator": null, "ip": null, "image": null, "backend_register": "{}", "flavor": 3, "backend_status": "0 - Provisioning in progress", "instance_id": null, "slice": null, "no_sync": false, "node": null, "userData": null, "updated": null, "deleted": false, "lazy_blocked": false, "deployment": null, "enacted": null, "instance_uuid": null, "numberCores": 0, "name": "", "created": null, "write_protect": false, "instance_name": null};
+  this.instance = {"policed": null, "creator": null, "ip": null, "image": null, "backend_register": "{}", "flavor": 3, "backend_status": "0 - Provisioning in progress", "instance_id": null, "slice": null, "no_sync": false, "node": null, "userData": null, "updated": null, "deleted": false, "lazy_blocked": false, "deployment": null, "enacted": null, "instance_uuid": null, "numberCores": 0, "name": "", "created": null, "write_protect": false, "instance_name": null};
   this.subscriber = {"updated": null, "policed": null, "created": null, "deleted": false, "service_specific_attribute": null, "kind": "Subscriber", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "service_specific_id": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": null};
   this.tag = {"updated": null, "name": "", "service": null, "created": null, "deleted": false, "value": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "object_id": null, "content_type": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "policed": null};
   this.tenant = {"subscriber_service": null, "connect_method": "na", "updated": null, "backend_status": "0 - Provisioning in progress", "policed": null, "created": null, "deleted": false, "service_specific_attribute": null, "kind": "generic", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "service_specific_id": null, "subscriber_tenant": null, "subscriber_root": null, "subscriber_user": null, "no_sync": false, "provider_service": null};
diff --git a/xos/core/xoslib/static/js/xoslib/xos-validators.js b/xos/core/xoslib/static/js/xoslib/xos-validators.js
index 03a3d7b..e4ecf51 100644
--- a/xos/core/xoslib/static/js/xoslib/xos-validators.js
+++ b/xos/core/xoslib/static/js/xoslib/xos-validators.js
@@ -25,16 +25,16 @@
     this.networkParameter = {"updated": [], "policed": [], "created": [], "deleted": [], "value": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "object_id": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "parameter": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.networkParameterType = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "description": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.networkSlice = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "network": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
-    this.networkSliver = {"updated": [], "policed": [], "created": [], "deleted": [], "ip": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "sliver": [], "network": ["notBlank"], "backend_status": ["notBlank"], "port_id": [], "id": [], "no_sync": [], "enacted": []};
+    this.networkInstance = {"updated": [], "policed": [], "created": [], "deleted": [], "ip": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "instance": [], "network": ["notBlank"], "backend_status": ["notBlank"], "port_id": [], "id": [], "no_sync": [], "enacted": []};
     this.networkTemplate = {"shared_network_id": [], "updated": [], "shared_network_name": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "description": [], "visibility": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller_kind": [], "topology_kind": ["notBlank"], "guaranteed_bandwidth": ["notBlank"], "translation": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.node = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "site": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "site_deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.payment = {"updated": [], "policed": [], "created": [], "deleted": [], "account": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "amount": ["notBlank"], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
-    this.port = {"updated": [], "policed": [], "created": [], "deleted": [], "ip": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "sliver": [], "network": ["notBlank"], "backend_status": ["notBlank"], "port_id": [], "id": [], "no_sync": [], "enacted": []};
+    this.port = {"updated": [], "policed": [], "created": [], "deleted": [], "ip": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "instance": [], "network": ["notBlank"], "backend_status": ["notBlank"], "port_id": [], "id": [], "no_sync": [], "enacted": []};
     this.program = {"status": [], "updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "description": [], "messages": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "command": [], "contents": [], "owner": ["notBlank"], "output": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.project = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.provider = {"updated": [], "policed": [], "name": [], "created": [], "deleted": [], "service_specific_attribute": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "service_specific_id": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.reservation = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "startTime": ["notBlank"], "duration": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
-    this.reservedResource = {"updated": [], "resource": ["notBlank"], "policed": [], "created": [], "deleted": [], "quantity": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "sliver": ["notBlank"], "reservationSet": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.reservedResource = {"updated": [], "resource": ["notBlank"], "policed": [], "created": [], "deleted": [], "quantity": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "instance": ["notBlank"], "reservationSet": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.role = {"updated": [], "policed": [], "created": [], "deleted": [], "description": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": [], "role_type": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.router = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "owner": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.service = {"policed": [], "view_url": [], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "icon_url": [], "no_sync": [], "updated": [], "description": [], "deleted": [], "lazy_blocked": [], "versionNumber": ["notBlank"], "service_specific_id": [], "enacted": [], "public_key": [], "kind": ["notBlank"], "name": ["notBlank"], "created": [], "write_protect": [], "service_specific_attribute": [], "enabled": [], "published": []};
@@ -47,12 +47,12 @@
     this.siteDeployment = {"updated": [], "policed": [], "created": [], "deleted": [], "availability_zone": [], "site": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": [], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.sitePrivilege = {"updated": [], "policed": [], "created": [], "deleted": [], "site": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.siteRole = {"updated": [], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
-    this.slice = {"policed": [], "creator": [], "site": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "network": [], "service": [], "no_sync": [], "default_flavor": [], "updated": [], "description": [], "deleted": [], "slice_url": ["url"], "serviceClass": ["notBlank"], "lazy_blocked": [], "omf_friendly": [], "mount_data_sets": [], "max_slivers": ["notBlank"], "enacted": [], "name": ["notBlank"], "created": [], "write_protect": [], "enabled": [], "default_image": []};
+    this.slice = {"policed": [], "creator": [], "site": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "network": [], "service": [], "no_sync": [], "default_flavor": [], "updated": [], "description": [], "deleted": [], "slice_url": ["url"], "serviceClass": ["notBlank"], "lazy_blocked": [], "omf_friendly": [], "mount_data_sets": [], "max_instances": ["notBlank"], "enacted": [], "name": ["notBlank"], "created": [], "write_protect": [], "enabled": [], "default_image": []};
     this.sliceCredential = {"updated": [], "slice": ["notBlank"], "enc_value": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.slicePrivilege = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.sliceRole = {"updated": [], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.sliceTag = {"updated": [], "slice": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "value": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
-    this.sliver = {"policed": [], "creator": [], "ip": [], "image": ["notBlank"], "backend_register": ["notBlank"], "flavor": ["notBlank"], "backend_status": ["notBlank"], "id": [], "instance_name": [], "slice": ["notBlank"], "no_sync": [], "node": ["notBlank"], "userData": [], "updated": [], "deleted": [], "lazy_blocked": [], "deployment": ["notBlank"], "enacted": [], "instance_uuid": [], "numberCores": ["notBlank"], "name": ["notBlank"], "created": [], "write_protect": [], "instance_id": []};
+    this.instance = {"policed": [], "creator": [], "ip": [], "image": ["notBlank"], "backend_register": ["notBlank"], "flavor": ["notBlank"], "backend_status": ["notBlank"], "id": [], "instance_name": [], "slice": ["notBlank"], "no_sync": [], "node": ["notBlank"], "userData": [], "updated": [], "deleted": [], "lazy_blocked": [], "deployment": ["notBlank"], "enacted": [], "instance_uuid": [], "numberCores": ["notBlank"], "name": ["notBlank"], "created": [], "write_protect": [], "instance_id": []};
     this.subscriber = {"updated": [], "policed": [], "name": [], "created": [], "deleted": [], "service_specific_attribute": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "service_specific_id": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.tag = {"updated": [], "policed": [], "service": ["notBlank"], "created": [], "deleted": [], "name": ["notBlank"], "value": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "object_id": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
     this.tenant = {"subscriber_service": [], "connect_method": ["notBlank"], "updated": [], "policed": [], "created": [], "deleted": [], "service_specific_attribute": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "subscriber_user": [], "provider_service": ["notBlank"], "service_specific_id": [], "subscriber_tenant": [], "subscriber_root": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
diff --git a/xos/core/xoslib/static/js/xoslib/xosHelper.js b/xos/core/xoslib/static/js/xoslib/xosHelper.js
index d2c75c7..1352c69 100644
--- a/xos/core/xoslib/static/js/xoslib/xosHelper.js
+++ b/xos/core/xoslib/static/js/xoslib/xosHelper.js
@@ -699,7 +699,7 @@
              disableAdd: function() { return this.disableAdd || this.options.disableAdd || this.model.disableAdd; },
 });
 
-XOSDetailView_sliver = XOSDetailView.extend( {
+XOSDetailView_instance = XOSDetailView.extend( {
     events: $.extend(XOSDetailView.events,
         {"change #field_deployment": "onDeploymentChange"}
     ),
diff --git a/xos/core/xoslib/templates/mustache/detailApp.mustache b/xos/core/xoslib/templates/mustache/detailApp.mustache
index e415945..a178d5a 100644
--- a/xos/core/xoslib/templates/mustache/detailApp.mustache
+++ b/xos/core/xoslib/templates/mustache/detailApp.mustache
@@ -1,8 +1,8 @@
 <h2>
-  <a class="home" href="/">All Slivers</a>
+  <a class="home" href="/">All Instances</a>
 </h2>
-<ul id="slivers">
-  <li class="sliver"
-      {{>sliverTemplate}}
+<ul id="instances">
+  <li class="instance"
+      {{>instanceTemplate}}
   </li>
 </ul>
diff --git a/xos/core/xoslib/templates/mustache/listApp.mustache b/xos/core/xoslib/templates/mustache/listApp.mustache
index 3af7ebe..79721ce 100644
--- a/xos/core/xoslib/templates/mustache/listApp.mustache
+++ b/xos/core/xoslib/templates/mustache/listApp.mustache
@@ -1,3 +1,3 @@
-<h2>All Slivers</h2>
-<ul id="slivers">
+<h2>All Instances</h2>
+<ul id="instances">
 </ul>
diff --git a/xos/core/xoslib/templates/xosCordSubscriber.html b/xos/core/xoslib/templates/xosCordSubscriber.html
index 52a62f2..b7e2163 100644
--- a/xos/core/xoslib/templates/xosCordSubscriber.html
+++ b/xos/core/xoslib/templates/xosCordSubscriber.html
@@ -19,7 +19,7 @@
   <tr><td class="xos-label-cell">Id:</td><td><%= model.attributes.vcpe_id %></td></tr>
   <tr><td class="xos-label-cell">Synced:</td><td><% if (model.attributes.vcpe_synced) { print("Yes"); } else { print("No"); } %></td></tr>
   <tr><td class="xos-label-cell">Image:</td><td><%= model.attributes.image_name %></td></tr>
-  <tr><td class="xos-label-cell">Sliver Id:</td><td><%= model.attributes.sliver %></td></tr>
+  <tr><td class="xos-label-cell">Instance Id:</td><td><%= model.attributes.instance %></td></tr>
   <tr><td class="xos-label-cell">Firewall:</td><td><input type="checkbox" name="firewall_enable" <% if (model.attributes.firewall_enable) print("checked"); %>>Enable<br>
                                                                   <textarea name="firewall_rules" style="width:320px; height:80px"><%= model.attributes.firewall_rules %></textarea></td></tr>
   <tr><td class="xos-label-cell">URL Filter:</td><td><input type="checkbox" name="url_filter_enable" <% if (model.attributes.url_filter_enable) print("checked"); %>>Enable
diff --git a/xos/ec2_observer/xos.deps b/xos/ec2_observer/xos.deps
index 6eae1fc..6abf765 100644
--- a/xos/ec2_observer/xos.deps
+++ b/xos/ec2_observer/xos.deps
@@ -7,7 +7,7 @@
         "Site"
     ], 
     "ReservedResource": [
-        "Sliver"
+        "Instance"
     ], 
     "SliceMembership": [
         "User", 
@@ -30,16 +30,16 @@
     "Reservation": [
         "Slice"
     ], 
-    "NetworkSliver": [
+    "NetworkInstance": [
         "Network", 
-        "Sliver"
+        "Instance"
     ], 
     "SitePrivilege": [
         "User", 
         "Site", 
         "Role"
     ], 
-    "Sliver": [
+    "Instance": [
         "Image", 
         "Slice", 
         "Node"
diff --git a/xos/model-deps b/xos/model-deps
index 7f15774..0218517 100644
--- a/xos/model-deps
+++ b/xos/model-deps
@@ -14,7 +14,7 @@
         "Controller"
     ], 
     "ReservedResource": [
-        "Sliver"
+        "Instance"
     ], 
     "ControllerNetwork": [
         "Network", 
@@ -69,7 +69,7 @@
     "ServiceResource": [
         "ServiceClass"
     ], 
-    "Sliver": [
+    "Instance": [
         "Image", 
         "User", 
         "Slice", 
@@ -101,7 +101,7 @@
     ], 
     "Port": [
         "Network", 
-        "Sliver"
+        "Instance"
     ], 
     "SitePrivilege": [
         "User", 
diff --git a/xos/observers/vcpe/steps/ansible_test/README b/xos/observers/vcpe/steps/ansible_test/README
index 3068ac5..d3b2c54 100644
--- a/xos/observers/vcpe/steps/ansible_test/README
+++ b/xos/observers/vcpe/steps/ansible_test/README
@@ -1,4 +1,4 @@
-Some scripts used while testing the Ansible sliver configuraiton observer
+Some scripts used while testing the Ansible instance configuraiton observer
 
 xos.py was probably the prototype of an XOS SSH module for Ansible, that understood how to SSH into the instances
 without needing to play config file and environment tricks. 
diff --git a/xos/observers/vcpe/steps/ansible_test/inventory.txt b/xos/observers/vcpe/steps/ansible_test/inventory.txt
index 720791d..bd5b542 100644
--- a/xos/observers/vcpe/steps/ansible_test/inventory.txt
+++ b/xos/observers/vcpe/steps/ansible_test/inventory.txt
@@ -1,8 +1,8 @@
 [onlab_hpc-355]
-node67.washington.vicci.org instance_id=instance-00000045 sliver_name=onlab_hpc-355
+node67.washington.vicci.org instance_id=instance-00000045 instance_name=onlab_hpc-355
 
 [onlab_test405-372]
-node67.washington.vicci.org instance_id=instance-0000004c sliver_name=onlab_test405-372
+node67.washington.vicci.org instance_id=instance-0000004c instance_name=onlab_test405-372
 
 [onlab_test405-376]
 node1.cs.arizona.edu
diff --git a/xos/observers/vcpe/steps/sync_vcpetenant.yaml b/xos/observers/vcpe/steps/sync_vcpetenant.yaml
index 063ab06..1a30656 100644
--- a/xos/observers/vcpe/steps/sync_vcpetenant.yaml
+++ b/xos/observers/vcpe/steps/sync_vcpetenant.yaml
@@ -1,5 +1,5 @@
 ---
-- hosts: {{ sliver_name }}
+- hosts: {{ instance_name }}
   gather_facts: False
   connection: ssh
   user: ubuntu
diff --git a/xos/observers/vcpe/steps/test.yaml b/xos/observers/vcpe/steps/test.yaml
index dbda94d..fc8251d 100644
--- a/xos/observers/vcpe/steps/test.yaml
+++ b/xos/observers/vcpe/steps/test.yaml
@@ -1,5 +1,5 @@
 ---
-- hosts: {{ sliver_name }}
+- hosts: {{ instance_name }}
   connection: ssh
   user: ubuntu
   tasks:
diff --git a/xos/openstack_observer/steps/sync_instances.py b/xos/openstack_observer/steps/sync_instances.py
index cbcdec6..3f61d35 100644
--- a/xos/openstack_observer/steps/sync_instances.py
+++ b/xos/openstack_observer/steps/sync_instances.py
@@ -55,16 +55,16 @@
         if instance.slice.service and instance.slice.service.public_key:
             pubkeys.add(instance.slice.service.public_key)
 
-        # Handle any ports that are already created and attached to the sliver.
+        # Handle any ports that are already created and attached to the instance.
         # If we do have a port for a network, then add that network to an
         # exclude list so we won't try to auto-create ports on that network
         # when instantiating.
         ports = []
         exclude_networks = set()
         exclude_templates = set()
-        for ns in sliver.ports.all():
+        for ns in instance.ports.all():
             if not ns.port_id:
-                raise DeferredException("Port %s on sliver %s has no id; Try again later" % (str(ns), str(sliver)) )
+                raise DeferredException("Port %s on instance %s has no id; Try again later" % (str(ns), str(instance)) )
             ports.append(ns.port_id)
             exclude_networks.add(ns.network)
             exclude_templates.add(ns.network.template)
diff --git a/xos/templates/admin/core/slice/change_form.html b/xos/templates/admin/core/slice/change_form.html
index 6800dfd..791fcec 100644
--- a/xos/templates/admin/core/slice/change_form.html
+++ b/xos/templates/admin/core/slice/change_form.html
@@ -85,9 +85,9 @@
     image_select.empty().append(html);
 }
 
-function sliver_deployment_changed(any_control) {
+function instance_deployment_changed(any_control) {
    /* This function handles someone changing the deployment control
-      in the add-sliver line. It updats the flavors and nodes dialogs
+      in the add-instance line. It updats the flavors and nodes dialogs
       accordingly.
    */
 
@@ -107,8 +107,8 @@
     update_images(deployment_select, image_select);
 }
 
-function sliver_flavor_changed(any_control) {
-    /* this is like sliver_flavor changed, but does not update the flavors
+function instance_flavor_changed(any_control) {
+    /* this is like instance_flavor changed, but does not update the flavors
        control
     */
     deployment_select = $("#" + $($(any_control).closest('tr')[0]).find('.field-deployment select')[0].id);
diff --git a/xos/templates/admin/dashboard/cdnoperations.html b/xos/templates/admin/dashboard/cdnoperations.html
index 167b558..4677e5b 100644
--- a/xos/templates/admin/dashboard/cdnoperations.html
+++ b/xos/templates/admin/dashboard/cdnoperations.html
@@ -1,7 +1,7 @@
     <div id="HPCDashboard">
     <h1>CDN Operations View</h1>
     <span id="hpcSummary">
-        <span class="summary-attr"><b>Allocated Slivers:</b> <span id="active-slivers-value"> </span> </span>
+        <span class="summary-attr"><b>Allocated Instances:</b> <span id="active-instances-value"> </span> </span>
         <span class="summary-attr"><b>CDN Bandwidth:</b> <span id="overall-throughput-value"> </span>  </span>
         <span class="summary-attr-util"><b>CDN Load:</b> <span id="cpu-utilization-value"> </span>  </span>
     </span>
@@ -63,7 +63,7 @@
     arrayOfLatLngs.push([mapData[key]['lat'],mapData[key]['long']]);
     log.debug( arrayOfLatLngs );
 
-    mapData[key]['marker'] = L.marker([mapData[key]['lat'], mapData[key]['long']], {icon: getIcon(mapData[key]['numNodes'], mapData[key]['numHPCSlivers'], 0, mapData[key]['hot']) });
+    mapData[key]['marker'] = L.marker([mapData[key]['lat'], mapData[key]['long']], {icon: getIcon(mapData[key]['numNodes'], mapData[key]['numHPCInstances'], 0, mapData[key]['hot']) });
     mapData[key]['marker'].addTo(map).bindPopup(setPopupVals(key, mapData[key]));
 
 }
@@ -76,20 +76,20 @@
 function setPopupVals (site, siteData) {
     var retVal = '<span class="SiteDetail"><b>' + site + '</b></span>' +
                    '</br><a href="' + siteData['siteUrl'] + '">' + siteData['siteUrl'] + '</a>' +
-                   '</br><b>HPC Slivers: </b>' + siteData['numHPCSlivers'] +
+                   '</br><b>HPC Instances: </b>' + siteData['numHPCInstances'] +
                    '</br><b>Total Nodes: </b>' + siteData['numNodes'] +
 //                   '</br><b>Hot: </b>' + Math.round(siteData['hot']*100) +
                    '</br><b>Measured Load: </b>' + siteData['load'] + '%' +
-                   '<span id="addSlivers"></br><a href="#" id="addHPCSliver" data-site="' + site + '" data-availNodes="' + siteData['numNodes'] +'">Add HPC Slivers</a> </span>' +
-                   '<span id="remSlivers"><a href="#" id="remHPCSliver" data-site="' + site + '">Remove HPC Slivers</a> </span>';
+                   '<span id="addInstances"></br><a href="#" id="addHPCInstance" data-site="' + site + '" data-availNodes="' + siteData['numNodes'] +'">Add HPC Instances</a> </span>' +
+                   '<span id="remInstances"><a href="#" id="remHPCInstance" data-site="' + site + '">Remove HPC Instances</a> </span>';
 
    return retVal;
 }
 
-$('#map-us').on('click', '#remHPCSliver', function() {
+$('#map-us').on('click', '#remHPCInstance', function() {
 
     $.ajax({
-        url : '/dashboardaddorremsliver/',
+        url : '/dashboardaddorreminstance/',
         dataType : 'json',
         data: {site: $(this).data('site'),
                actionToDo: "rem",
@@ -97,7 +97,7 @@
                state:"inactive" },
         type : 'POST',
         success:function(){
-            confirmDialog("Info","Removed an HPC Sliver from Site ");
+            confirmDialog("Info","Removed an HPC Instance from Site ");
         },
         error:function (xhr, textStatus, thrownError){
             errorDialog("Error", textStatus + " " + xhr.responseText);
@@ -105,10 +105,10 @@
     });
 });
 
-$('#map-us').on('click', '#addHPCSliver', function() {
+$('#map-us').on('click', '#addHPCInstance', function() {
 
     $.ajax({
-        url : '/dashboardaddorremsliver/',
+        url : '/dashboardaddorreminstance/',
         dataType : 'json',
         data: {site: $(this).data('site'),
                actionToDo: "add",
@@ -117,7 +117,7 @@
         type : 'POST',
         success: function(response)
         {
-            confirmDialog("Info","Added an HPC Sliver to Site ");
+            confirmDialog("Info","Added an HPC Instance to Site ");
         },
         error:function (xhr, textStatus, thrownError){
             errorDialog("Error", textStatus + " " + xhr.responseText);
@@ -125,11 +125,11 @@
     });
 });
 
-function getIcon(numNodes, numHPCSlivers, currentBW, hot) {
+function getIcon(numNodes, numHPCInstances, currentBW, hot) {
     //var colorChoices = ["#007FFF", "#0000FF", "#7f00ff", "#FF00FF", "#FF007F", "#FF0000"];
     var colorChoices = ["#0000FF", "#00FFFF", "#00FF00", "#FFFF00", "#FF0000"];
 
-    var ratio = hot * 100; //(numHPCSlivers/numNodes) * 100;
+    var ratio = hot * 100; //(numHPCInstances/numNodes) * 100;
     var numColors = colorChoices.length;
     var colorBands = 100/numColors;
 
@@ -144,7 +144,7 @@
         }
     }
 
-    if (numHPCSlivers < 1) {
+    if (numHPCInstances < 1) {
         iconColor = "#7F7F7F";
     } else {
         iconColor = colorChoices[iconColor];
@@ -182,7 +182,7 @@
             //take ownership of marker
             newData[site]['marker'] = mapData[site]['marker'];
             delete mapData[site];
-            newData[site]['marker'].setIcon(getIcon(newData[site]['numNodes'], newData[site]['numHPCSlivers'],  0, newData[site]['hot']));
+            newData[site]['marker'].setIcon(getIcon(newData[site]['numNodes'], newData[site]['numHPCInstances'],  0, newData[site]['hot']));
             // workaround, markers currently don't have a setPopup Content method -- so have to grab object directly
             newData[site]['marker']._popup.setContent(setPopupVals(site, newData[site]));
         }
@@ -190,7 +190,7 @@
             isNewSite = true;
             log.debug("New Site detected: " + site);
             newData[site]['marker'] = L.marker([newData[site]['lat'], newData[site]['long']],
-                                              {icon: getIcon(newData[site]['numNodes'], newData[site]['numHPCSlivers'],  0, newData[site]['hot']) });
+                                              {icon: getIcon(newData[site]['numNodes'], newData[site]['numHPCInstances'],  0, newData[site]['hot']) });
             newData[site]['marker'].addTo(map).bindPopup(setPopupVals(site, newData[site])); //.openPopup();
             log.debug("Should have added the new site");
 
@@ -237,7 +237,7 @@
 }
 
 function updateLabelData(summaryData) {
-    setInnerText("active-slivers-value", summaryData["total_slivers"]);
+    setInnerText("active-instances-value", summaryData["total_instances"]);
     setInnerText("overall-throughput-value", (summaryData["total_bandwidth"]*8/1024/1024/1024).toFixed(2) + " Gbps");
     setInnerText("cpu-utilization-value", summaryData["average_cpu"] + "%");
 }
diff --git a/xos/templates/admin/dashboard/dashboard_base.html b/xos/templates/admin/dashboard/dashboard_base.html
index 1f54938..5d510b8 100644
--- a/xos/templates/admin/dashboard/dashboard_base.html
+++ b/xos/templates/admin/dashboard/dashboard_base.html
@@ -46,11 +46,11 @@
         title: title,
         autoOpen: true,
         modal: true,
-        dialogClass: "dashboard-hpc-sliver",
+        dialogClass: "dashboard-hpc-instance",
         buttons: {
             'OK': function() {
                 def.resolve();
-                log.debug("Chose to add a sliver");
+                log.debug("Chose to add a instance");
                 $( this ).dialog( "close" );
             },
             'Cancel': function() {
@@ -73,7 +73,7 @@
         title: title,
         autoOpen: true,
         modal: true,
-        dialogClass: "dashboard-hpc-sliver",
+        dialogClass: "dashboard-hpc-instance",
         buttons: {
             'OK': function() {
                 def.resolve();
diff --git a/xos/templates/admin/dashboard/developer.html b/xos/templates/admin/dashboard/developer.html
index 13f178f..55663f5 100644
--- a/xos/templates/admin/dashboard/developer.html
+++ b/xos/templates/admin/dashboard/developer.html
@@ -37,10 +37,10 @@
         slicename = rows[row]['slicename'];
         sliceid = rows[row]['sliceid'];
         role = rows[row]['role'];
-        slivercount = rows[row]['slivercount'];
+        instancecount = rows[row]['instancecount'];
         sitecount = rows[row]['sitecount'];
         actualEntries.push(['<a href="http://{{request.get_host}}/admin/core/slice/' + sliceid + '">' + slicename + '</a>',
-                            role, slivercount, sitecount]);
+                            role, instancecount, sitecount]);
     }
     oTable = $('#dynamicusersliceinfo').dataTable( {
         "bJQueryUI": true,
@@ -49,7 +49,7 @@
         "aoColumns": [
             { "sTitle": "Slice" },
             { "sTitle": "Privilege" , sClass: "alignCenter"},
-            { "sTitle": "Number of Slivers" , sClass: "alignCenter"},
+            { "sTitle": "Number of Instances" , sClass: "alignCenter"},
             { "sTitle": "Number of Sites" , sClass: "alignCenter"},
         ]
     } );
diff --git a/xos/templates/admin/dashboard/slice_interactions.html b/xos/templates/admin/dashboard/slice_interactions.html
index 3ddaa1f..3b335f5 100644
--- a/xos/templates/admin/dashboard/slice_interactions.html
+++ b/xos/templates/admin/dashboard/slice_interactions.html
@@ -76,8 +76,8 @@
         <option value="networks">networks</option>
         <option value="users">users</option>
         <option value="owner sites">sites</option>
-        <option value="sliver_sites">sliver_sites</option>
-        <option value="sliver_nodes">sliver_nodes</option>
+        <option value="instance_sites">instance_sites</option>
+        <option value="instance_nodes">instance_nodes</option>
     </select>
     </div>
     <div class="sliceinteractions_column">
diff --git a/xos/templates/admin/dashboard/tenant.html b/xos/templates/admin/dashboard/tenant.html
index 9560807..0fd627e 100644
--- a/xos/templates/admin/dashboard/tenant.html
+++ b/xos/templates/admin/dashboard/tenant.html
@@ -1,20 +1,20 @@
 <!doctype html>
 <script type="text/javascript" src="http://www.google.com/jsapi"></script>
-<div id="dialog-form" title="Add/Remove Slivers" style="display: none;">
+<div id="dialog-form" title="Add/Remove Instances" style="display: none;">
 	<form>
 		<fieldset>
-			<label for="numberOfSlivers">Number of Slivers</label>
-			<input type="text" name="numberOfSlivers" id="numOfSlivers" class="text ui-widget-content ui-corner-all">
-			<div id=basic-tooltip>Please enter number of slivers</div>
+			<label for="numberOfInstances">Number of Instances</label>
+			<input type="text" name="numberOfInstances" id="numOfInstances" class="text ui-widget-content ui-corner-all">
+			<div id=basic-tooltip>Please enter number of instances</div>
 		</fieldset>
 	</form>
 </div>
-<div id="adv-dialog-form" title="Add/Remove Slivers" style="display: none;">
+<div id="adv-dialog-form" title="Add/Remove Instances" style="display: none;">
 	<form>
 		<fieldset>
-			<label for="numberOfSlivers">Number of Slivers</label>
-			<input type="text" name="numberOfSlivers" id="advNumOfSlivers" class="text ui-widget-content ui-corner-all">
-			<div id=adv-tooltip>Please enter number of slivers</div>
+			<label for="numberOfInstances">Number of Instances</label>
+			<input type="text" name="numberOfInstances" id="advNumOfInstances" class="text ui-widget-content ui-corner-all">
+			<div id=adv-tooltip>Please enter number of instances</div>
 		</fieldset>
 	</form>
 </div>
@@ -60,8 +60,8 @@
                                 <select id="mount-data-sets" class="tenant-create-slice"></select>
                         </div>
 			<div class="create-slice-row">
-                                <label for="number-of-slivers">Number Of Slivers</label>
-                                <input type="text" name="number-of-slivers" id="number-of-slivers">
+                                <label for="number-of-instances">Number Of Instances</label>
+                                <input type="text" name="number-of-instances" id="number-of-instances">
                         </div>
 			<div id=tooltip>Slice Name cannot be empty</div>
 		</fieldset>
@@ -91,7 +91,7 @@
 			$('#tenantSiteTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="tenantSiteTableData"></table>');
 			$("#tenantSliceDropDown").val(value);
 			var siteNames = [];
-			var sliverCount;
+			var instanceCount;
 			for (row in rows) {
 				if (rows[row]['sliceName'] == value) {
 					sliceImageData = rows[row]['preferredImage'];
@@ -100,8 +100,8 @@
 					$("#service-level-value").html(serviceLevelDataBasic);
 					var innerRows = rows[row]['sliceSite'];
 					for (innerRow in innerRows) {
-						sliverCount = innerRows[innerRow];
-						siteNames.push([innerRow, sliverCount]);
+						instanceCount = innerRows[innerRow];
+						siteNames.push([innerRow, instanceCount]);
 					}
 				}
 			}
@@ -138,7 +138,7 @@
 					var sliceInfo;
 					for (row in rows){
 						if(rows[row]['sliceName']==value){
-							sliceInfo = "Slice Name: "+rows[row]['sliceName']+"\nNumber of Slivers: "+rows[row]['numOfSlivers']+"\nService Level: "+rows[row]['sliceServiceClass']+"\nImage: "+rows[row]['preferredImage']+"\n";	
+							sliceInfo = "Slice Name: "+rows[row]['sliceName']+"\nNumber of Instances: "+rows[row]['numOfInstances']+"\nService Level: "+rows[row]['sliceServiceClass']+"\nImage: "+rows[row]['preferredImage']+"\n";	
 						for (instanceNodePairs in rows[row]['instanceNodePair']){
 							sliceInfo += instanceNodePairs+"@"+rows[row]['instanceNodePair'][instanceNodePairs]+"\n";
 						}
@@ -147,13 +147,13 @@
 					download('slice.txt', sliceInfo);
                           });
 		}
-		function editSliverAdv() {
+		function editInstanceAdv() {
 			$(".edit-view").click(function () {
-				var allocatedSlivers = parseInt($(this).parent().siblings(".allocated").html());
+				var allocatedInstances = parseInt($(this).parent().siblings(".allocated").html());
 				var td = $(this).parent().siblings(".allocated");
 				var pos = oTable.fnGetPosition(td[0]);
-				$("#numOfSlivers").val("");;
-				$("#advNumOfSlivers").val("");;
+				$("#numOfInstances").val("");;
+				$("#advNumOfInstances").val("");;
 				$("#adv-tooltip").css("display", "none");
 				$("#adv-dialog-form").dialog({
 					autoOpen: false,
@@ -163,16 +163,16 @@
 					dialogClass: "tenantDialog",
 					buttons: {
 						"Add": function () {
-							allocatedSlivers += parseInt($("#advNumOfSlivers").val());
+							allocatedInstances += parseInt($("#advNumOfInstances").val());
 								$("#adv-tooltip").css("display", "block");
 								$(this).dialog("close");
-								td.html(allocatedSlivers);
+								td.html(allocatedInstances);
 						},
 						"Remove": function () {
-							allocatedSlivers -= parseInt($("#advNumOfSlivers").val());
+							allocatedInstances -= parseInt($("#advNumOfInstances").val());
 								$("#adv-tooltip").css("display", "block");
 								$(this).dialog("close");
-								td.html(allocatedSlivers);
+								td.html(allocatedInstances);
 						}
 					}
 				});
@@ -190,7 +190,7 @@
 			$("<select></select>").attr('id', 'adv-dataset-dropdown').appendTo('#adv-slice-data-set-value');
 			$('#advTenantSiteTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="advTenantSiteTableData"></table>');
 			var siteNames = [];
-			var sliverCount;
+			var instanceCount;
 			var tableData = {};
 			for (row in serviceLevelData) {
                                 $("#adv-service-level-dropdown").append("<option>" + serviceLevelData[row]['serviceClass'] + "</option>");
@@ -234,7 +234,7 @@
 				for (newRow in newTableData) {
 					if (newTableData[newRow] > tableData[newRow]) {
 						$.ajax({
-							url: '/tenantaddorremsliver/',
+							url: '/tenantaddorreminstance/',
 							dataType: 'json',
 							data: {
 								siteName: newRow,
@@ -253,7 +253,7 @@
 						});
 					} else if (newTableData[newRow] < tableData[newRow]) {
 						$.ajax({
-							url: '/tenantaddorremsliver/',
+							url: '/tenantaddorreminstance/',
 							dataType: 'json',
 							data: {
 								siteName: newRow,
@@ -316,7 +316,7 @@
 					sClass: "alignCenter"
 				}]
 			});
-			editSliverAdv();
+			editInstanceAdv();
 				$('#advTenantSliceDropDown').on('change', function () {
 					var selectedValue = $("#advTenantSliceDropDown").val();
 					checkForBasicAdvView(selectedValue, rows,imageData,serviceLevelData,siteRows,dataSet);
@@ -333,7 +333,7 @@
 						$("#advancedTenantSliceDataWrapper").css("display","block");
 						$("#advTenantSiteTable").css("display","block");
 						$("#tenantSiteTable").css("display","none");
-						$("#sliver-btn").css("display","none");
+						$("#instance-btn").css("display","none");
 						$("#save-btn").css("display","block");
 						break;
 					} else if(rows[row]['numOfSites'] <= 1){
@@ -343,7 +343,7 @@
 						$("#advancedTenantSliceDataWrapper").css("display","none");
 						$("#advTenantSiteTable").css("display","none");
 						$("#tenantSiteTable").css("display","block");
-						$("#sliver-btn").css("display","block");
+						$("#instance-btn").css("display","block");
                                                 $("#save-btn").css("display","none");
 						break;
 					}break;
@@ -358,7 +358,7 @@
 				var sliceData = '';
 				sliceData += '<div class="tenant-row public-key-warning"><span class="summary-attr">You have not uploaded your Public Key. <a href="http://{{ request.get_host}}/admin/core/user/{{user.id}}">Click here</a> to upload it now.</span></div><div class="tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="slice-name-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="service-level-value"> </span>  </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="slice-image-value"> </span>  </span><br></div><div class="btn btn-high btn-info" id="advanced-tenant">Go to Advanced View</div>';
 				var advSliceData = '';
-				advSliceData += '<div class="tenant-row public-key-warning"><span class="summary-attr">You have not uploaded your Public Key. <a href="http://{{ request.get_host}}/admin/core/user/{{user.id}}">Click here</a> to upload it now.</span></div><div class="adv-tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="adv-slice-name-value"> </span> </span><br><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="adv-service-level-value"> </span> <span class="help-inline">Changes are potentially disruptive to existing slivers</span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="adv-slice-image-value"> </span><span class="help-inline">Changes are potentially disruptive to existing slivers</span>  </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Network:</b> <input type="text" name="adv-network-value" id="adv-network-value"> <span class="help-inline">List of port ranges(if any) e.g. 1021-1026,1029</span><br></div><div class="tenant-row"><span class="summary-attr"><b>Data Set:</b> <span id="adv-slice-data-set-value"> </span>  <input type="checkbox" name="checkbox" id="private-vol-checkbox" value="value"><span class="help-inline">Include Private Volume</span></span></div>';
+				advSliceData += '<div class="tenant-row public-key-warning"><span class="summary-attr">You have not uploaded your Public Key. <a href="http://{{ request.get_host}}/admin/core/user/{{user.id}}">Click here</a> to upload it now.</span></div><div class="adv-tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="adv-slice-name-value"> </span> </span><br><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="adv-service-level-value"> </span> <span class="help-inline">Changes are potentially disruptive to existing instances</span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="adv-slice-image-value"> </span><span class="help-inline">Changes are potentially disruptive to existing instances</span>  </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Network:</b> <input type="text" name="adv-network-value" id="adv-network-value"> <span class="help-inline">List of port ranges(if any) e.g. 1021-1026,1029</span><br></div><div class="tenant-row"><span class="summary-attr"><b>Data Set:</b> <span id="adv-slice-data-set-value"> </span>  <input type="checkbox" name="checkbox" id="private-vol-checkbox" value="value"><span class="help-inline">Include Private Volume</span></span></div>';
 				$('#tenantSliceDataWrapper').append(sliceData).css("display", "none");
 				$('#advancedTenantSliceDataWrapper').append(advSliceData);
 				$("#advancedTenantSliceDataWrapper").css("display", "none");
@@ -376,7 +376,7 @@
 				$('<div class="btn btn-success" id="delete-slice-btn"><i class="icon-plus-sign icon-white"></i>&nbsp;Delete a Slice</div>').appendTo("#tabs-5");
 				$('<div class="btn btn-success" id="add-user-btn"><i class="icon-plus-sign icon-white"></i>&nbsp;Add User</div>').appendTo("#tabs-5");
 				$('<div class="btn btn-high btn-info" id="download-details">Download Slice Details</div>').appendTo("#tabs-5");
-				$('<div class="btn btn-success" id="sliver-btn"><i class="icon-plus-sign icon-white"></i>&nbsp;Add/Remove Slivers</div>').appendTo("#tabs-5");
+				$('<div class="btn btn-success" id="instance-btn"><i class="icon-plus-sign icon-white"></i>&nbsp;Add/Remove Instances</div>').appendTo("#tabs-5");
 				$('<div class="btn btn-high btn-info" id="save-btn">Save</div>').appendTo("#tabs-5").css("display", "none");
 				$("#advanced-tenant").unbind().click(function () {
 					var value = $("#tenantSliceDropDown").val();
@@ -385,11 +385,11 @@
                                                 $("#advancedTenantSliceDataWrapper").css("display","block");
                                                 $("#advTenantSiteTable").css("display","block");
                                                 $("#tenantSiteTable").css("display","none");
-                                                $("#sliver-btn").toggle();
+                                                $("#instance-btn").toggle();
                                                 $("#save-btn").toggle();
 
 			});
-			$("#sliver-btn").click(function () {
+			$("#instance-btn").click(function () {
 				$("#basic-tooltip").css("display", "none");
 				$("#dialog-form").dialog({
 					autoOpen: false,
@@ -400,10 +400,10 @@
 					buttons: {
 						"Add": function () {
 							$.ajax({
-								url: '/tenantaddorremsliver/',
+								url: '/tenantaddorreminstance/',
 								dataType: 'json',
 								data: {
-									count: parseInt($("#numOfSlivers").val()),
+									count: parseInt($("#numOfInstances").val()),
 									slice: $("#tenantSliceDropDown").val(),
 									image: $("#slice-image-value").html(),
 									actionToDo: "add",
@@ -412,7 +412,7 @@
 								},
 								type: 'POST',
 								beforeSend: function () {
-									if (!$("#numOfSlivers").val()) {
+									if (!$("#numOfInstances").val()) {
 										$("#basic-tooltip").css("display", "block");
 										return false;
 									} else {
@@ -427,10 +427,10 @@
 						},
 						Remove: function () {
 							$.ajax({
-								url: '/tenantaddorremsliver/',
+								url: '/tenantaddorreminstance/',
 								dataType: 'json',
 								data: {
-									count: parseInt($("#numOfSlivers").val()),
+									count: parseInt($("#numOfInstances").val()),
 									slice: $("#tenantSliceDropDown").val(),
 									image: $("#slice-image-value").html(),
 									actionToDo: "rem",
@@ -439,7 +439,7 @@
 								},
 								type: 'POST',
 								beforeSend: function () {
-									if (!$("#numOfSlivers").val()) {
+									if (!$("#numOfInstances").val()) {
 										$("#basic-tooltip").css("display", "block");
 										return false;
 									} else {
@@ -555,10 +555,10 @@
 								}
 							});
 						   $.ajax({
-                                                                url: '/tenantaddorremsliver/',
+                                                                url: '/tenantaddorreminstance/',
                                                                 dataType: 'json',
                                                                 data: {
-                                                                        count: parseInt($("#number-of-slivers").val()),
+                                                                        count: parseInt($("#number-of-instances").val()),
                                                                         slice: $("#new-slice-name").val(),
 									image: $("#new-image").val(),
                                                                         actionToDo: "add",
diff --git a/xos/templates/cord_admin/dashboard_base.html b/xos/templates/cord_admin/dashboard_base.html
index ea8b7f2..bde87c2 100644
--- a/xos/templates/cord_admin/dashboard_base.html
+++ b/xos/templates/cord_admin/dashboard_base.html
@@ -44,11 +44,11 @@
         title: title,
         autoOpen: true,
         modal: true,
-        dialogClass: "dashboard-hpc-sliver",
+        dialogClass: "dashboard-hpc-instance",
         buttons: {
             'OK': function() {
                 def.resolve();
-                log.debug("Chose to add a sliver");
+                log.debug("Chose to add a instance");
                 $( this ).dialog( "close" );
             },
             'Cancel': function() {
@@ -71,7 +71,7 @@
         title: title,
         autoOpen: true,
         modal: true,
-        dialogClass: "dashboard-hpc-sliver",
+        dialogClass: "dashboard-hpc-instance",
         buttons: {
             'OK': function() {
                 def.resolve();
diff --git a/xos/tools/purge.py b/xos/tools/purge.py
index 75e965f..1df479d 100644
--- a/xos/tools/purge.py
+++ b/xos/tools/purge.py
@@ -12,5 +12,5 @@
     for obj in cls.deleted_objects.all():
         obj.delete(purge=True)
 
-for model in [Sliver, Slice, Site, Service, User, Image, ImageDeployments, Port]:
+for model in [Instance, Slice, Site, Service, User, Image, ImageDeployments, Port]:
     purge(model)
diff --git a/xos/tosca/resources/port.py b/xos/tosca/resources/port.py
index 94d0391..791a226 100644
--- a/xos/tosca/resources/port.py
+++ b/xos/tosca/resources/port.py
@@ -5,7 +5,7 @@
 sys.path.append("/opt/tosca")
 from translator.toscalib.tosca_template import ToscaTemplate
 
-from core.models import Sliver,User,Network,NetworkTemplate,Port
+from core.models import Instance,User,Network,NetworkTemplate,Port
 
 from xosresource import XOSResource
 
@@ -14,20 +14,20 @@
     xos_model = Port
 
     def get_existing_objs(self):
-        # Port objects have no name, their unique key is (sliver, network)
+        # Port objects have no name, their unique key is (instance, network)
         args = self.get_xos_args(throw_exception=False)
-        sliver = args.get('sliver',None)
+        instance = args.get('instance',None)
         network = args.get('network',None)
-        if (not sliver) or (not network):
+        if (not instance) or (not network):
             return []
-        return self.xos_model.objects.filter(**{'sliver': sliver, 'network': network})
+        return self.xos_model.objects.filter(**{'instance': instance, 'network': network})
 
     def get_xos_args(self, throw_exception=True):
         args = {}
 
-        sliver_name = self.get_requirement("tosca.relationships.network.BindsTo")
-        if sliver_name:
-            args["sliver"] = self.get_xos_object(Sliver, throw_exception, name=sliver_name)
+        instance_name = self.get_requirement("tosca.relationships.network.BindsTo")
+        if instance_name:
+            args["instance"] = self.get_xos_object(Instance, throw_exception, name=instance_name)
 
         net_name = self.get_requirement("tosca.relationships.network.LinksTo")
         if net_name:
@@ -41,7 +41,7 @@
     def create(self):
         xos_args = self.get_xos_args()
 
-        if not xos_args.get("sliver", None):
+        if not xos_args.get("instance", None):
             raise Exception("Must specify slver when creating port")
         if not xos_args.get("network", None):
             raise Exception("Must specify network when creating port")
@@ -52,7 +52,7 @@
 
         self.postprocess(port)
 
-        self.info("Created Port '%s' connect sliver '%s' to network %s" % (str(port), str(port.sliver), str(port.network)))
+        self.info("Created Port '%s' connect instance '%s' to network %s" % (str(port), str(port.instance), str(port.network)))
 
     def delete(self, obj):
         super(XOSPort, self).delete(obj)
diff --git a/xos/tosca/samples/new_site_deploy_slice.yaml b/xos/tosca/samples/new_site_deploy_slice.yaml
index 3796e40..fa047a3 100644
--- a/xos/tosca/samples/new_site_deploy_slice.yaml
+++ b/xos/tosca/samples/new_site_deploy_slice.yaml
@@ -3,7 +3,7 @@
 description: >
     * Create a new deployment, controller, and site.
     * Add a SiteDeployment from the site to the deployment using the controller.
-    * Create a Slice in the Site, with one Sliver
+    * Create a Slice in the Site, with one Instance
 
 imports:
    - custom_types/xos.yaml
diff --git a/xos/tosca/tests/computetest.py b/xos/tosca/tests/computetest.py
index 43a5143..7827f24 100644
--- a/xos/tosca/tests/computetest.py
+++ b/xos/tosca/tests/computetest.py
@@ -1,6 +1,6 @@
 from basetest import BaseToscaTest
 
-from core.models import Sliver, Slice
+from core.models import Instance, Slice
 
 class ComputeTest(BaseToscaTest):
     tests = [ # "create_compute_m1_tiny", XXX m1.tiny does not exist on cloudlab
@@ -13,11 +13,11 @@
                            ]
 
     def cleanup(self):
-        self.try_to_delete(Sliver, name="test_compute1")
-        self.try_to_delete(Sliver, name="test_compute1-0")
-        self.try_to_delete(Sliver, name="test_compute1-1")
-        self.try_to_delete(Sliver, name="test_compute1-2")
-        self.try_to_delete(Sliver, name="test_compute1-3")
+        self.try_to_delete(Instance, name="test_compute1")
+        self.try_to_delete(Instance, name="test_compute1-0")
+        self.try_to_delete(Instance, name="test_compute1-1")
+        self.try_to_delete(Instance, name="test_compute1-2")
+        self.try_to_delete(Instance, name="test_compute1-3")
         self.try_to_delete(Slice, name="testsite_slice1")
 
     def get_base_templates(self):
@@ -25,70 +25,70 @@
                self.make_nodetemplate("testsite_slice1", "tosca.nodes.Slice", reqs=[("testsite", "tosca.relationships.MemberOfSite")])
 
     def create_compute_m1_tiny(self):
-        self.assert_noobj(Sliver, "test_compute1")
+        self.assert_noobj(Instance, "test_compute1")
         self.execute(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1", disk_size="1 GB", mem_size="500 MB"))
-        sliver = self.assert_obj(Sliver, "test_compute1")
-        assert(sliver.flavor.name == "m1.tiny")
+        instance = self.assert_obj(Instance, "test_compute1")
+        assert(instance.flavor.name == "m1.tiny")
 
     def create_compute_m1_small(self):
-        self.assert_noobj(Sliver, "test_compute1")
+        self.assert_noobj(Instance, "test_compute1")
         self.execute(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1", disk_size="1 GB", mem_size="513 MB"))
-        sliver = self.assert_obj(Sliver, "test_compute1")
-        assert(sliver.flavor.name == "m1.small")
+        instance = self.assert_obj(Instance, "test_compute1")
+        assert(instance.flavor.name == "m1.small")
 
     def create_compute_m1_large_8192MB(self):
-        self.assert_noobj(Sliver, "test_compute1")
+        self.assert_noobj(Instance, "test_compute1")
         self.execute(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1", mem_size="8192 MB"))
-        sliver = self.assert_obj(Sliver, "test_compute1")
-        assert(sliver.flavor.name == "m1.large")
+        instance = self.assert_obj(Instance, "test_compute1")
+        assert(instance.flavor.name == "m1.large")
 
     def create_compute_m1_large_8GB(self):
-        self.assert_noobj(Sliver, "test_compute1")
+        self.assert_noobj(Instance, "test_compute1")
         self.execute(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1", mem_size="8 GB"))
-        sliver = self.assert_obj(Sliver, "test_compute1")
-        assert(sliver.flavor.name == "m1.large")
+        instance = self.assert_obj(Instance, "test_compute1")
+        assert(instance.flavor.name == "m1.large")
 
     def destroy_compute(self):
         self.execute(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1"))
-        self.assert_obj(Sliver, "test_compute1")
+        self.assert_obj(Instance, "test_compute1")
         self.destroy(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1"))
-        self.assert_noobj(Sliver, "test_compute1")
+        self.assert_noobj(Instance, "test_compute1")
 
     def create_compute_scalable(self):
-        self.assert_noobj(Sliver, "test_compute1-1")
-        self.assert_noobj(Sliver, "test_compute1-2")
-        self.assert_noobj(Sliver, "test_compute1-3")
+        self.assert_noobj(Instance, "test_compute1-1")
+        self.assert_noobj(Instance, "test_compute1-2")
+        self.assert_noobj(Instance, "test_compute1-3")
         self.execute(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1", mem_size="8 GB",
                                        caps={"scalable": {"min_instances": 2, "max_instances": 3, "default_instances": 2}}))
         # there should be two instances
-        sliver0 = self.assert_obj(Sliver, "test_compute1-0")
-        sliver1 = self.assert_obj(Sliver, "test_compute1-1")
-        self.assert_noobj(Sliver, "test_compute1-2")
+        instance0 = self.assert_obj(Instance, "test_compute1-0")
+        instance1 = self.assert_obj(Instance, "test_compute1-1")
+        self.assert_noobj(Instance, "test_compute1-2")
 
     def destroy_compute_scalable(self):
-        self.assert_noobj(Sliver, "test_compute1-1")
-        self.assert_noobj(Sliver, "test_compute1-2")
-        self.assert_noobj(Sliver, "test_compute1-3")
+        self.assert_noobj(Instance, "test_compute1-1")
+        self.assert_noobj(Instance, "test_compute1-2")
+        self.assert_noobj(Instance, "test_compute1-3")
         self.execute(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1", mem_size="8 GB",
                                        caps={"scalable": {"min_instances": 2, "max_instances": 3, "default_instances": 2}}))
         # there should be two instances
-        sliver0 = self.assert_obj(Sliver, "test_compute1-0")
-        sliver1 = self.assert_obj(Sliver, "test_compute1-1")
+        instance0 = self.assert_obj(Instance, "test_compute1-0")
+        instance1 = self.assert_obj(Instance, "test_compute1-1")
 
         self.destroy(self.get_base_templates() +
                      self.make_compute("testsite_slice1", "test_compute1", mem_size="8 GB",
                                        caps={"scalable": {"min_instances": 2, "max_instances": 3, "default_instances": 2}}))
 
-        self.assert_noobj(Sliver, "test_compute1-0")
-        self.assert_noobj(Sliver, "test_compute1-1")
+        self.assert_noobj(Instance, "test_compute1-0")
+        self.assert_noobj(Instance, "test_compute1-1")
 
 if __name__ == "__main__":
     ComputeTest()
diff --git a/xos/tosca/tests/porttest.py b/xos/tosca/tests/porttest.py
index a0d23e3..4ef7a7d 100644
--- a/xos/tosca/tests/porttest.py
+++ b/xos/tosca/tests/porttest.py
@@ -1,6 +1,6 @@
 from basetest import BaseToscaTest
 
-from core.models import Network, Slice, NetworkTemplate, NetworkSlice, Port, Sliver
+from core.models import Network, Slice, NetworkTemplate, NetworkSlice, Port, Instance
 
 class PortTest(BaseToscaTest):
     tests = ["create_port_minimal",
@@ -9,8 +9,8 @@
              "add_port_after_network"]
 
     def cleanup(self):
-        self.try_to_delete(Sliver, name="test_compute1")
-        self.try_to_delete(Sliver, name="test_compute2")
+        self.try_to_delete(Instance, name="test_compute1")
+        self.try_to_delete(Instance, name="test_compute2")
         self.try_to_delete(Network, name="test_net")
         self.try_to_delete(Slice, name="testsite_slice1")
         self.try_to_delete(Slice, name="testsite_slice2")
@@ -29,19 +29,19 @@
 
     @property
     def test_slice1_1(self):
-        return Sliver.objects.get(name="test_slice1-1")
+        return Instance.objects.get(name="test_slice1-1")
 
     @property
     def test_slice1_2(self):
-        return Sliver.objects.get(name="test_slice1-2")
+        return Instance.objects.get(name="test_slice1-2")
 
     @property
     def test_slice2_1(self):
-        return Sliver.objects.get(name="test_slice2-1")
+        return Instance.objects.get(name="test_slice2-1")
 
     @property
     def test_slice2_2(self):
-        return Sliver.objects.get(name="test_slice2-2")
+        return Instance.objects.get(name="test_slice2-2")
 
     def get_base_templates(self):
         return self.make_nodetemplate("testsite", "tosca.nodes.Site") + \
@@ -65,7 +65,7 @@
 
         net=self.assert_obj(Network, "test_net")
 
-        port=Port.objects.filter(network=net, sliver=self.test_slice1_1)
+        port=Port.objects.filter(network=net, instance=self.test_slice1_1)
         assert(len(port)==1)
         port=port[0]
 
@@ -84,11 +84,11 @@
 
         net=self.assert_obj(Network, "test_net")
 
-        port=Port.objects.filter(network=net, sliver=self.test_slice1_1)
+        port=Port.objects.filter(network=net, instance=self.test_slice1_1)
         assert(len(port)==1)
         port=port[0]
 
-        port=Port.objects.filter(network=net, sliver=self.test_slice1_2)
+        port=Port.objects.filter(network=net, instance=self.test_slice1_2)
         assert(len(port)==1)
         port=port[0]
 
@@ -113,19 +113,19 @@
 
         net=self.assert_obj(Network, "test_net")
 
-        port=Port.objects.filter(network=net, sliver=self.test_slice1_1)
+        port=Port.objects.filter(network=net, instance=self.test_slice1_1)
         assert(len(port)==1)
         port=port[0]
 
-        port=Port.objects.filter(network=net, sliver=self.test_slice1_2)
+        port=Port.objects.filter(network=net, instance=self.test_slice1_2)
         assert(len(port)==1)
         port=port[0]
 
-        port=Port.objects.filter(network=net, sliver=self.test_slice2_2)
+        port=Port.objects.filter(network=net, instance=self.test_slice2_2)
         assert(len(port)==1)
         port=port[0]
 
-        port=Port.objects.filter(network=net, sliver=self.test_slice2_2)
+        port=Port.objects.filter(network=net, instance=self.test_slice2_2)
         assert(len(port)==1)
         port=port[0]
 
@@ -151,7 +151,7 @@
 
         assert(orig_net.id == net.id)
 
-        port=Port.objects.filter(network=net, sliver=self.test_slice1_1)
+        port=Port.objects.filter(network=net, instance=self.test_slice1_1)
         assert(len(port)==1)
         port=port[0]
 
diff --git a/xos/xos/xosapi.py b/xos/xos/xosapi.py
index f7be27a..9948313 100644
--- a/xos/xos/xosapi.py
+++ b/xos/xos/xosapi.py
@@ -1435,7 +1435,7 @@
         model = Instance
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
 =======
-        model = Sliver
+        model = Instance
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
 >>>>>>> origin/master
 
@@ -1460,7 +1460,7 @@
         model = Instance
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
 =======
-        model = Sliver
+        model = Instance
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
 >>>>>>> origin/master
 
