diff --git a/planetstack/core/dashboard/sites.py b/planetstack/core/dashboard/sites.py
index 194e805..3284dae 100644
--- a/planetstack/core/dashboard/sites.py
+++ b/planetstack/core/dashboard/sites.py
@@ -12,9 +12,9 @@
     def get_urls(self):
         """Add our dashboard view to the admin urlconf. Deleted the default index."""
         from django.conf.urls import patterns, url
-        from views import DashboardCustomize, DashboardDynamicView, DashboardWelcomeView, DashboardAjaxView, SimulatorView, \
-                          DashboardSummaryAjaxView, DashboardAddOrRemoveSliverView, DashboardUserSiteView, DashboardAnalyticsAjaxView, \
-                          TenantViewData,TenantCreateSlice, TenantAddUser,TenantAddOrRemoveSliverView, TenantPickSitesView, TenantDeleteSliceView, \
+        from views import DashboardCustomize, DashboardDynamicView, DashboardWelcomeView, SimulatorView, \
+                          DashboardUserSiteView,  \
+                          TenantViewData, TenantCreateSlice, TenantAddUser,TenantAddOrRemoveSliverView, TenantPickSitesView, TenantDeleteSliceView, \
                           TenantUpdateSlice, DashboardSliceInteractions, RequestAccessView
 
         from views import view_urls
@@ -42,16 +42,8 @@
                     name="hpcdashuserslices"),
                url(r'^welcome/$', self.admin_view(DashboardWelcomeView.as_view()),
                     name="welcome"),
-               url(r'^hpcdashboard/', self.admin_view(DashboardAjaxView.as_view()),        # DEPRECATED
-                    name="hpcdashboard"),
                url(r'^simulator/', self.admin_view(SimulatorView.as_view()),
                     name="simulator"),
-               url(r'^hpcsummary/', self.admin_view(DashboardSummaryAjaxView.as_view()),   # DEPRECATED
-                    name="hpcsummary"),
-               url(r'^analytics/(?P<name>\w+)/$', DashboardAnalyticsAjaxView.as_view(),
-                    name="analytics"),
-               url(r'^dashboardaddorremsliver/$', self.admin_view(DashboardAddOrRemoveSliverView.as_view()),
-                    name="addorremsliver"),
                url(r'^tenantaddorremsliver/$', self.admin_view(TenantAddOrRemoveSliverView.as_view()),
                     name="tenantaddorremsliver"),
                url(r'^tenantview/$', self.admin_view(TenantViewData.as_view()),
diff --git a/planetstack/core/dashboard/views/analytics.py b/planetstack/core/dashboard/views/analytics.unused
similarity index 91%
rename from planetstack/core/dashboard/views/analytics.py
rename to planetstack/core/dashboard/views/analytics.unused
index 3904023..8ccb7c5 100644
--- a/planetstack/core/dashboard/views/analytics.py
+++ b/planetstack/core/dashboard/views/analytics.unused
@@ -3,6 +3,8 @@
 from planetstack_analytics import DoPlanetStackAnalytics
 
 class DashboardAnalyticsAjaxView(View):
+    url = r'^analytics/(?P<name>\w+)/$'
+
     def get(self, request, name="hello_world", **kwargs):
         if (name == "bigquery"):
             (mimetype, data) = DoPlanetStackAnalytics(request)
diff --git a/planetstack/core/dashboard/views/cdn.py b/planetstack/core/dashboard/views/cdn.unused
similarity index 97%
rename from planetstack/core/dashboard/views/cdn.py
rename to planetstack/core/dashboard/views/cdn.unused
index a4713e5..6bfaac9 100644
--- a/planetstack/core/dashboard/views/cdn.py
+++ b/planetstack/core/dashboard/views/cdn.unused
@@ -86,6 +86,8 @@
     return new_rows
 
 class DashboardSummaryAjaxView(View):
+    url=r'^hpcsummary/'
+
     def get(self, request, **kwargs):
         def avg(x):
             if len(x)==0:
@@ -109,6 +111,8 @@
 class DashboardAddOrRemoveSliverView(View):
     # TODO: deprecate this view in favor of using TenantAddOrRemoveSliverView
 
+    url=r'^dashboardaddorremsliver/$'
+
     def post(self, request, *args, **kwargs):
         siteName = request.POST.get("site", None)
         actionToDo = request.POST.get("actionToDo", "0")
@@ -130,5 +134,6 @@
         return HttpResponse(json.dumps("Success"), content_type='application/javascript')
 
 class DashboardAjaxView(View):
+    url = r'^hpcdashboard/'
     def get(self, request, **kwargs):
         return HttpResponse(json.dumps(getCDNOperatorData(True)), content_type='application/javascript')
diff --git a/planetstack/planetstack/urls.py b/planetstack/planetstack/urls.py
index d2e4c1b..386e0fc 100644
--- a/planetstack/planetstack/urls.py
+++ b/planetstack/planetstack/urls.py
@@ -48,7 +48,7 @@
     url(r'^files/', redirect_to_apache),
 
     #Adding in rest_framework urls
-    url(r'^plstackapi/', include('rest_framework.urls', namespace='rest_framework')),
+    url(r'^xos/', include('rest_framework.urls', namespace='rest_framework')),
 
     # XOSLib rest methods
     url(r'^xoslib/', include('core.xoslib.methods', namespace='xoslib')),
