diff --git a/plstackapi/planetstack/api/__init__.py b/plstackapi/planetstack/api/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plstackapi/planetstack/api/__init__.py
diff --git a/plstackapi/planetstack/api/roles.py b/plstackapi/planetstack/api/roles.py
new file mode 100644
index 0000000..cd737b0
--- /dev/null
+++ b/plstackapi/planetstack/api/roles.py
@@ -0,0 +1,34 @@
+from plstackapi.openstack.client import OpenStackClient
+from plstackapi.openstack.driver import OpenStackDriver
+from plstackapi.planetstack.models import * 
+
+
+def auth_check(auth):
+    client = OpenStackShell(username=auth['Username'],
+                            password=auth['AuthMethod',
+                            tenant=auth['LoginBase'])
+    client.authenticate()
+    return client
+
+
+def add_role(auth, name):
+    client = auth_check(auth)
+    keystone_role = client.keystone.roles.create(name)
+    role = Role(role_type=name, role_id=keystone_role.id)
+    role.save()
+    return role
+
+def delete_role(auth, name):
+    client = auth_check(auth)
+    role = Role.objects.filter(role_type=name)
+    client.keystone.roles.delete(role.role_id)
+    role.delete()
+    return 1
+
+def get_roles(auth, filter):
+    client = auth_check(auth)
+    roles = Role.objects.filter(**filter)
+    return roles             
+        
+
+    
diff --git a/plstackapi/planetstack/views/__init__.py b/plstackapi/planetstack/views/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plstackapi/planetstack/views/__init__.py
diff --git a/plstackapi/planetstack/views/api_root.py b/plstackapi/planetstack/views/api_root.py
new file mode 100644
index 0000000..707e06b
--- /dev/null
+++ b/plstackapi/planetstack/views/api_root.py
@@ -0,0 +1,12 @@
+from rest_framework.decorators import api_view
+from rest_framework.response import Response
+from rest_framework.reverse import reverse
+
+@api_view(['GET'])
+def api_root(request, format=None):
+    return Response({
+        'nodes': reverse('node-list', request=request, format=format),
+        'sites': reverse('site-list', request=request, format=format),
+        'deploymentNetworks': reverse('deploymentnetwork-list', request=request, format=format),
+        'slices': reverse('slice-list', request=request, format=format)
+    })
