diff --git a/apiary.apib b/apiary.apib
index 1c8816a..fbd11f9 100644
--- a/apiary.apib
+++ b/apiary.apib
@@ -3,741 +3,11 @@
 # XOS
  
  
-# Group Deployments
-
-List of the XOS deployments
-
-## Deployments [/api/core/deployments/{id}/]
-
-### List all deployments [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "humanReadableName": "MyDeployment",
-                "id": 1,
-                "created": "2016-04-29T16:19:03.549901Z",
-                "updated": "2016-04-29T16:19:05.624151Z",
-                "enacted": null,
-                "policed": null,
-                "backend_register": "{}",
-                "backend_status": "0 - Provisioning in progress",
-                "deleted": false,
-                "write_protect": false,
-                "lazy_blocked": false,
-                "no_sync": true,
-                "name": "MyDeployment",
-                "accessControl": "allow all",
-                "images": [
-                    "1"
-                ],
-                "sites": [
-                    "1"
-                ],
-                "flavors": [
-                    "1",
-                    "2",
-                    "3"
-                ],
-                "dashboardviews": [
-                    "1"
-                ]
-            }
-        ]
-
-### Create a deployment [POST]
-
-+ Request (application/json)
-
-        {
-            "humanReadableName": "MyDeployment",
-        }
-
-+ Response 200 (application/json)
-
-        {
-            "humanReadableName": "MyDeployment",
-            "id": 1,
-            "created": "2016-04-29T16:19:03.549901Z",
-            "updated": "2016-04-29T16:19:05.624151Z",
-            "enacted": null,
-            "policed": null,
-            "backend_register": "{}",
-            "backend_status": "0 - Provisioning in progress",
-            "deleted": false,
-            "write_protect": false,
-            "lazy_blocked": false,
-            "no_sync": true,
-            "name": "MyDeployment",
-            "accessControl": "allow all",
-            "images": [
-                "1"
-            ],
-            "sites": [
-                "1"
-            ],
-            "flavors": [
-                "1",
-                "2",
-                "3"
-            ],
-            "dashboardviews": [
-                "1"
-            ]
-        }
-
-### View a Deployment Detail [GET]
-
-+ Parameters
-    + id: 1 (number) - ID of the Deployment in the form of an integer
-
-+ Response 200 (application/json)
-
-        {
-            "humanReadableName": "MyDeployment",
-            "id": 1,
-            "created": "2016-04-27T21:46:57.354544Z",
-            "updated": "2016-04-27T21:47:05.221720Z",
-            "enacted": null,
-            "policed": null,
-            "backend_register": "{}",
-            "backend_status": "0 - Provisioning in progress",
-            "deleted": false,
-            "write_protect": false,
-            "lazy_blocked": false,
-            "no_sync": true,
-            "name": "MyDeployment",
-            "accessControl": "allow all",
-            "images": [],
-            "sites": [
-                "1"
-            ],
-            "flavors": [
-                "3",
-                "2",
-                "1"
-            ],
-            "dashboardviews": [
-                "3"
-            ]
-        }
-
-### Delete a Deployment [DELETE]
-
-+ Parameters
-    + id: 1 (number) - ID of the Deployment in the form of an integer
-
-+ Response 204
- 
- 
-# Group Flavors
-
-List of the XOS flavors
-
-## Flavors [/api/core/flavors/{id}/]
-
-### List all flavors [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "humanReadableName": "m1.large",
-                "id": 1,
-                 "created": "2016-04-29T16:19:01.979548Z",
-                "updated": "2016-04-29T16:19:03.568238Z",
-                "enacted": null,
-                "policed": null,
-                "backend_register": "{}",
-                "backend_status": "0 - Provisioning in progress",
-                "deleted": false,
-                "write_protect": false,
-                "lazy_blocked": false,
-                "no_sync": true,
-                "name": "m1.large",
-                "description": null,
-                "flavor": "m1.large",
-                "order": 0,
-                "default": false,
-                "deployments": [
-                    "1"
-                ]
-            }
-        ]
-
-### Create a Flavor [POST]
-
-+ Request (application/json)
-
-        {
-            "humanReadableName": "mq.test",
-        }
-
-+ Response 200 (application/json)
-
-        {
-            "humanReadableName": "m1.large",
-            "id": 1,
-             "created": "2016-04-29T16:19:01.979548Z",
-            "updated": "2016-04-29T16:19:03.568238Z",
-            "enacted": null,
-            "policed": null,
-            "backend_register": "{}",
-            "backend_status": "0 - Provisioning in progress",
-            "deleted": false,
-            "write_protect": false,
-            "lazy_blocked": false,
-            "no_sync": true,
-            "name": "m1.large",
-            "description": null,
-            "flavor": "m1.large",
-            "order": 0,
-            "default": false,
-            "deployments": [
-                "1"
-            ]
-        }
-
-### View a Flavors Detail [GET]
-
-+ Parameters
-    + id: 1 (number) - ID of the Flavors in the form of an integer
-
-+ Response 200 (application/json)
-
-        {
-            "humanReadableName": "m1.large",
-            "id": 1,
-             "created": "2016-04-29T16:19:01.979548Z",
-            "updated": "2016-04-29T16:19:03.568238Z",
-            "enacted": null,
-            "policed": null,
-            "backend_register": "{}",
-            "backend_status": "0 - Provisioning in progress",
-            "deleted": false,
-            "write_protect": false,
-            "lazy_blocked": false,
-            "no_sync": true,
-            "name": "m1.large",
-            "description": null,
-            "flavor": "m1.large",
-            "order": 0,
-            "default": false,
-            "deployments": [
-                "1"
-            ]
-        }
-
-### Delete a Flavors Detail [DELETE]
-
-+ Parameters
-    + id: 1 (number) - ID of the Flavors in the form of an integer
-
-+ Response 204 
- 
- 
-# Group Instances
-
-List of the XOS instances
-
-## Instances Collection [/api/core/instances/{?no_hyperlinks}]
-
-    + no_hyperlinks (number, optional) - Wheter to return relation with links or ids
-        + Default: `0`
-
-### List all Instances [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "id": 1,
-                "humanReadableName": "uninstantiated-1",
-                "created": "2016-04-26T00:36:22.465259Z",
-                "updated": "2016-04-26T00:36:22.465288Z",
-                "enacted": null,
-                "policed": null,
-                "backend_register": "{}",
-                "backend_status": "0 - Provisioning in progress",
-                "deleted": false,
-                "write_protect": false,
-                "lazy_blocked": false,
-                "no_sync": false,
-                "instance_id": null,
-                "instance_uuid": null,
-                "name": "mysite_vcpe",
-                "instance_name": null,
-                "ip": null,
-                "image": "1",
-                "creator": "1",
-                "slice": "1",
-                "deployment": "1",
-                "node": "1",
-                "numberCores": 0,
-                "flavor": "1",
-                "userData": null,
-                "isolation": "vm",
-                "volumes": "/etc/dnsmasq.d,/etc/ufw",
-                "parent": null,
-                "networks": [
-                    "1"
-                ]
-            }
-        ]
-
-### Create an Instance [POST]
-
-+ Parameters
-    + no_hyperlinks: 1
-
-+ Request (application/json)
-
-        {
-            "name": "test-instance",
-            "image": 1,
-            "slice": 1,
-            "deployment": 1,
-            "node": 1
-        }
-
-+ Response 200 (application/json)
-
-        {
-            "id": 1,
-            "humanReadableName": "uninstantiated-1",
-            "created": "2016-04-26T00:36:22.465259Z",
-            "updated": "2016-04-26T00:36:22.465288Z",
-            "enacted": null,
-            "policed": null,
-            "backend_register": "{}",
-            "backend_status": "0 - Provisioning in progress",
-            "deleted": false,
-            "write_protect": false,
-            "lazy_blocked": false,
-            "no_sync": false,
-            "instance_id": null,
-            "instance_uuid": null,
-            "name": "test-instance",
-            "instance_name": null,
-            "ip": null,
-            "image": "1",
-            "creator": "1",
-            "slice": "1",
-            "deployment": "1",
-            "node": "1",
-            "numberCores": 0,
-            "flavor": "1",
-            "userData": null,
-            "isolation": "vm",
-            "volumes": "/etc/dnsmasq.d,/etc/ufw",
-            "parent": null,
-            "networks": [
-                "1"
-            ]
-        }
-
-## Instances Detail [/api/core/instances/{id}/]
-
-### Get instance details [GET]
-
-+ Parameters
-    + id: 1 (number) - ID of the Instance in the form of an integer
-
-+ Response 200 (application/json)
-
-        {
-            "id": 1,
-            "humanReadableName": "uninstantiated-1",
-            "created": "2016-04-26T00:36:22.465259Z",
-            "updated": "2016-04-26T00:36:22.465288Z",
-            "enacted": null,
-            "policed": null,
-            "backend_register": "{}",
-            "backend_status": "0 - Provisioning in progress",
-            "deleted": false,
-            "write_protect": false,
-            "lazy_blocked": false,
-            "no_sync": false,
-            "instance_id": null,
-            "instance_uuid": null,
-            "name": "mysite_vcpe",
-            "instance_name": null,
-            "ip": null,
-            "image": "1",
-            "creator": "1",
-            "slice": "1",
-            "deployment": "1",
-            "node": "1",
-            "numberCores": 0,
-            "flavor": "1",
-            "userData": null,
-            "isolation": "vm",
-            "volumes": "/etc/dnsmasq.d,/etc/ufw",
-            "parent": null,
-            "networks": [
-                "1"
-            ]
-        }
-
-### Delete instance [DELETE]
-
-+ Parameters
-    + id: 1 (number) - ID of the Instance in the form of an integer
-
-+ Response 204
- 
- 
-# Group Nodes
-
-List of the XOS nodes
-
-## Nodes [/api/core/nodes/{id}/]
-
-### List all nodes [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "humanReadableName": "node2.opencloud.us",
-                "id": 1,
-                "created": "2016-04-29T16:19:05.661567Z",
-                "updated": "2016-04-29T16:19:05.661454Z",
-                "enacted": null,
-                "policed": null,
-                "backend_register": "{}",
-                "backend_status": "0 - Provisioning in progress",
-                "deleted": false,
-                "write_protect": false,
-                "lazy_blocked": false,
-                "no_sync": true,
-                "name": "node2.opencloud.us",
-                "site_deployment": "1",
-                "site": "1",
-                "nodelabels": []
-            }
-        ]
-
- 
- 
-# Group Services
-
-List of the XOS Services
-
-## Services [/api/core/services/{id}/]
-
-### List all Services [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "humanReadableName": "MyService",
-                "id": 1,
-                "created": "2016-05-05T23:06:33.835277Z",
-                "updated": "2016-05-05T23:06:33.835302Z",
-                "enacted": null,
-                "policed": null,
-                "backend_register": "{}",
-                "backend_status": "0 - Provisioning in progress",
-                "deleted": false,
-                "write_protect": false,
-                "lazy_blocked": false,
-                "no_sync": false,
-                "no_policy": false,
-                "description": null,
-                "enabled": true,
-                "kind": "vROUTER",
-                "name": "MyService",
-                "versionNumber": null,
-                "published": true,
-                "view_url": "/admin/vrouter/vrouterservice/$id$/",
-                "icon_url": null,
-                "public_key": null,
-                "private_key_fn": null,
-                "service_specific_id": null,
-                "service_specific_attribute": null
-            }
-        ]
-
-### Create a Service [POST]
-
-+ Request (application/json)
-
-        {
-            "name": "MyService",
-            "kind": "vROUTER"
-        }
-
-+ Response 200 (application/json)
-
-        {
-            "humanReadableName": "MyService",
-            "id": 1,
-            "created": "2016-05-05T23:06:33.835277Z",
-            "updated": "2016-05-05T23:06:33.835302Z",
-            "enacted": null,
-            "policed": null,
-            "backend_register": "{}",
-            "backend_status": "0 - Provisioning in progress",
-            "deleted": false,
-            "write_protect": false,
-            "lazy_blocked": false,
-            "no_sync": false,
-            "no_policy": false,
-            "description": null,
-            "enabled": true,
-            "kind": "vROUTER",
-            "name": "MyService",
-            "versionNumber": null,
-            "published": true,
-            "view_url": "/admin/vrouter/vrouterservice/$id$/",
-            "icon_url": null,
-            "public_key": null,
-            "private_key_fn": null,
-            "service_specific_id": null,
-            "service_specific_attribute": null
-        }
-
-### View a Service Detail [GET]
-
-+ Parameters
-    + id: 1 (number) - ID of the Service in the form of an integer
-
-+ Response 200 (application/json)
-
-        {
-                "humanReadableName": "MyService",
-                "id": 1,
-                "created": "2016-05-05T23:06:33.835277Z",
-                "updated": "2016-05-05T23:06:33.835302Z",
-                "enacted": null,
-                "policed": null,
-                "backend_register": "{}",
-                "backend_status": "0 - Provisioning in progress",
-                "deleted": false,
-                "write_protect": false,
-                "lazy_blocked": false,
-                "no_sync": false,
-                "no_policy": false,
-                "description": null,
-                "enabled": true,
-                "kind": "vROUTER",
-                "name": "MyService",
-                "versionNumber": null,
-                "published": true,
-                "view_url": "/admin/vrouter/vrouterservice/$id$/",
-                "icon_url": null,
-                "public_key": null,
-                "private_key_fn": null,
-                "service_specific_id": null,
-                "service_specific_attribute": null
-            }
-
-### Delete a Service [DELETE]
-
-+ Parameters
-    + id: 1 (number) - ID of the Service in the form of an integer
-
-+ Response 204
-
- 
- 
-# Group Sites
-
-List of the XOS sites
-
-## Sites [/api/core/sites/{id}/]
-
-### List all sites [GET]
-
-+ Response 200 (application/json)
-
-        {
-            "humanReadableName": "mysite",
-            "id": 1,
-            "created": "2016-04-29T16:19:03.587770Z",
-            "updated": "2016-04-29T16:19:05.651933Z",
-            "enacted": null,
-            "policed": null,
-            "backend_register": "{}",
-            "backend_status": "0 - Provisioning in progress",
-            "deleted": false,
-            "write_protect": false,
-            "lazy_blocked": false,
-            "no_sync": false,
-            "name": "MySite",
-            "site_url": "http://opencord.us/",
-            "enabled": true,
-            "hosts_nodes": true,
-            "hosts_users": true,
-            "location": null,
-            "longitude": null,
-            "latitude": null,
-            "login_base": "mysite",
-            "is_public": true,
-            "abbreviated_name": "",
-            "deployments": [
-                "1"
-            ]
-        }
- 
- 
-# Group Slices
-
-List of the XOS slices
-
-## Slices [/api/core/slices/{id}/]
-
-### List all slices [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "humanReadableName": "mysite_slice",
-                "id": 1,
-                "created": "2016-04-29T16:23:22.505072Z",
-                "updated": "2016-04-29T16:23:22.504691Z",
-                "enacted": null,
-                "policed": "2016-04-29T16:23:22.781298Z",
-                "backend_register": "{}",
-                "backend_status": "0 - Provisioning in progress",
-                "deleted": false,
-                "write_protect": false,
-                "lazy_blocked": false,
-                "no_sync": false,
-                "name": "mysite_slice",
-                "enabled": true,
-                "omf_friendly": false,
-                "description": "",
-                "slice_url": "",
-                "site": "http://apt118.apt.emulab.net/api/core/sites/1/",
-                "max_instances": 10,
-                "service": null,
-                "network": null,
-                "exposed_ports": null,
-                "serviceClass": "http://apt118.apt.emulab.net/api/core/serviceclasses/1/",
-                "creator": "http://apt118.apt.emulab.net/api/core/users/1/",
-                "default_flavor": null,
-                "default_image": null,
-                "mount_data_sets": "GenBank",
-                "default_isolation": "vm",
-                "networks": [
-                    "http://apt118.apt.emulab.net/api/core/networks/1/"
-                ]
-            }
-        ]
-        
- 
- 
-# Group Users
-
-List of the XOS users
-
-## Users [/api/core/users/{id}/]
-
-### List all Users [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "id": 2,
-                "password": "pbkdf2_sha256$12000$9gn8DmZuIoz2$YPQkx3AOOV7jZNYr2ddrgUCkiuaPpvb8+aJR7RwLZNA=",
-                "last_login": "2016-04-12T18:50:45.880823Z",
-                "email": "johndoe@myhouse.com",
-                "username": "johndoe@myhouse.com",
-                "firstname": "john",
-                "lastname": "doe",
-                "phone": null,
-                "user_url": null,
-                "site": "http://xos.dev:9999/api/core/sites/1/",
-                "public_key": null,
-                "is_active": true,
-                "is_admin": false,
-                "is_staff": true,
-                "is_readonly": false,
-                "is_registering": false,
-                "is_appuser": false,
-                "login_page": null,
-                "created": "2016-04-12T18:50:45.912602Z",
-                "updated": "2016-04-12T18:50:45.912671Z",
-                "enacted": null,
-                "policed": null,
-                "backend_status": "Provisioning in progress",
-                "deleted": false,
-                "write_protect": false,
-                "timezone": "America/New_York"
-            }
-        ]
-        
- 
- 
-# Group Example
-
-## Example Services Collection [/api/service/exampleservice/]
-
-### List all Example Services [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "humanReadableName": "MyExample",
-                "id": 1,
-                "service_message": "This is the test message"
-            }
-        ]
-
- 
- 
-# Group ONOS Services
-
-List of the active onos services
-
-## ONOS Services Collection [/api/service/onos/]
-
-### List all ONOS Services [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "humanReadableName": "service_ONOS_vBNG",
-                "id": 5,
-                "rest_hostname": "",
-                "rest_port": "8181",
-                "no_container": false,
-                "node_key": ""
-            }
-        ]
- 
- 
-# Group vSG
-
-## vSG Collection [/api/service/vsg/]
-
-### List all vSGs [GET]
-
-+ Response 200 (application/json)
-
-        [
-            {
-                "humanReadableName": "service_vsg",
-                "id": 2,
-                "dns_servers": "8.8.8.8",
-                "url_filter_kind": null,
-                "node_label": null
-            }
-        ]
- 
- 
 # Group Utility
 
 List of the XOS Utility API
-
+ 
+ 
 ## Login [/api/utility/login/]
 
 ### Log a user in the system [POST]
@@ -914,12 +184,13 @@
         ]
  
  
-# Group Subscribers
+# Group Tenant
+ 
+ 
+## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
 
 Resource related to the CORD Subscribers.
 
-## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
-
 ### List All Subscribers [GET]
 
 + Response 200 (application/json)
@@ -1146,12 +417,10 @@
         }
  
  
-# Group Truckroll
+## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
 
 Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
 
-## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
-
 ### List all Truckroll [GET]
 
 + Response 200 (application/json)
@@ -1232,12 +501,10 @@
 
  
  
-# Group vOLT
+## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
 
 OLT devices aggregate a set of subscriber connections
 
-## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
-
 ### List all vOLT [GET]
 
 + Response 200 (application/json)
@@ -1313,8 +580,6 @@
 
  
  
-# Group ONOS Apps
-
 ## ONOS App Collection [/api/tenant/onos/app/]
 
 ### List all apps [GET]
@@ -1328,4 +593,711 @@
                 "name": "vBNG_ONOS_app",
                 "dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
             }
-        ]
\ No newline at end of file
+        ]
+ 
+ 
+# Group Service
+ 
+ 
+## Example Services Collection [/api/service/exampleservice/]
+
+### List all Example Services [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "humanReadableName": "MyExample",
+                "id": 1,
+                "service_message": "This is the test message"
+            }
+        ]
+
+ 
+ 
+## ONOS Services Collection [/api/service/onos/]
+
+List of the active onos services
+
+### List all ONOS Services [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "humanReadableName": "service_ONOS_vBNG",
+                "id": 5,
+                "rest_hostname": "",
+                "rest_port": "8181",
+                "no_container": false,
+                "node_key": ""
+            }
+        ]
+ 
+ 
+## vSG Collection [/api/service/vsg/]
+
+### List all vSGs [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "humanReadableName": "service_vsg",
+                "id": 2,
+                "dns_servers": "8.8.8.8",
+                "url_filter_kind": null,
+                "node_label": null
+            }
+        ]
+ 
+ 
+# Group Core
+
+List of the XOS Core API
+ 
+ 
+## Deployments [/api/core/deployments/{id}/]
+
+List of the XOS deployments
+
+### List all deployments [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "humanReadableName": "MyDeployment",
+                "id": 1,
+                "created": "2016-04-29T16:19:03.549901Z",
+                "updated": "2016-04-29T16:19:05.624151Z",
+                "enacted": null,
+                "policed": null,
+                "backend_register": "{}",
+                "backend_status": "0 - Provisioning in progress",
+                "deleted": false,
+                "write_protect": false,
+                "lazy_blocked": false,
+                "no_sync": true,
+                "name": "MyDeployment",
+                "accessControl": "allow all",
+                "images": [
+                    "1"
+                ],
+                "sites": [
+                    "1"
+                ],
+                "flavors": [
+                    "1",
+                    "2",
+                    "3"
+                ],
+                "dashboardviews": [
+                    "1"
+                ]
+            }
+        ]
+
+### Create a deployment [POST]
+
++ Request (application/json)
+
+        {
+            "humanReadableName": "MyDeployment",
+        }
+
++ Response 200 (application/json)
+
+        {
+            "humanReadableName": "MyDeployment",
+            "id": 1,
+            "created": "2016-04-29T16:19:03.549901Z",
+            "updated": "2016-04-29T16:19:05.624151Z",
+            "enacted": null,
+            "policed": null,
+            "backend_register": "{}",
+            "backend_status": "0 - Provisioning in progress",
+            "deleted": false,
+            "write_protect": false,
+            "lazy_blocked": false,
+            "no_sync": true,
+            "name": "MyDeployment",
+            "accessControl": "allow all",
+            "images": [
+                "1"
+            ],
+            "sites": [
+                "1"
+            ],
+            "flavors": [
+                "1",
+                "2",
+                "3"
+            ],
+            "dashboardviews": [
+                "1"
+            ]
+        }
+
+### View a Deployment Detail [GET]
+
++ Parameters
+    + id: 1 (number) - ID of the Deployment in the form of an integer
+
++ Response 200 (application/json)
+
+        {
+            "humanReadableName": "MyDeployment",
+            "id": 1,
+            "created": "2016-04-27T21:46:57.354544Z",
+            "updated": "2016-04-27T21:47:05.221720Z",
+            "enacted": null,
+            "policed": null,
+            "backend_register": "{}",
+            "backend_status": "0 - Provisioning in progress",
+            "deleted": false,
+            "write_protect": false,
+            "lazy_blocked": false,
+            "no_sync": true,
+            "name": "MyDeployment",
+            "accessControl": "allow all",
+            "images": [],
+            "sites": [
+                "1"
+            ],
+            "flavors": [
+                "3",
+                "2",
+                "1"
+            ],
+            "dashboardviews": [
+                "3"
+            ]
+        }
+
+### Delete a Deployment [DELETE]
+
++ Parameters
+    + id: 1 (number) - ID of the Deployment in the form of an integer
+
++ Response 204
+ 
+ 
+## Flavors [/api/core/flavors/{id}/]
+
+List of the XOS flavors
+
+### List all flavors [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "humanReadableName": "m1.large",
+                "id": 1,
+                 "created": "2016-04-29T16:19:01.979548Z",
+                "updated": "2016-04-29T16:19:03.568238Z",
+                "enacted": null,
+                "policed": null,
+                "backend_register": "{}",
+                "backend_status": "0 - Provisioning in progress",
+                "deleted": false,
+                "write_protect": false,
+                "lazy_blocked": false,
+                "no_sync": true,
+                "name": "m1.large",
+                "description": null,
+                "flavor": "m1.large",
+                "order": 0,
+                "default": false,
+                "deployments": [
+                    "1"
+                ]
+            }
+        ]
+
+### Create a Flavor [POST]
+
++ Request (application/json)
+
+        {
+            "humanReadableName": "mq.test",
+        }
+
++ Response 200 (application/json)
+
+        {
+            "humanReadableName": "m1.large",
+            "id": 1,
+             "created": "2016-04-29T16:19:01.979548Z",
+            "updated": "2016-04-29T16:19:03.568238Z",
+            "enacted": null,
+            "policed": null,
+            "backend_register": "{}",
+            "backend_status": "0 - Provisioning in progress",
+            "deleted": false,
+            "write_protect": false,
+            "lazy_blocked": false,
+            "no_sync": true,
+            "name": "m1.large",
+            "description": null,
+            "flavor": "m1.large",
+            "order": 0,
+            "default": false,
+            "deployments": [
+                "1"
+            ]
+        }
+
+### View a Flavors Detail [GET]
+
++ Parameters
+    + id: 1 (number) - ID of the Flavors in the form of an integer
+
++ Response 200 (application/json)
+
+        {
+            "humanReadableName": "m1.large",
+            "id": 1,
+             "created": "2016-04-29T16:19:01.979548Z",
+            "updated": "2016-04-29T16:19:03.568238Z",
+            "enacted": null,
+            "policed": null,
+            "backend_register": "{}",
+            "backend_status": "0 - Provisioning in progress",
+            "deleted": false,
+            "write_protect": false,
+            "lazy_blocked": false,
+            "no_sync": true,
+            "name": "m1.large",
+            "description": null,
+            "flavor": "m1.large",
+            "order": 0,
+            "default": false,
+            "deployments": [
+                "1"
+            ]
+        }
+
+### Delete a Flavors Detail [DELETE]
+
++ Parameters
+    + id: 1 (number) - ID of the Flavors in the form of an integer
+
++ Response 204 
+ 
+ 
+## Instances Collection [/api/core/instances/{?no_hyperlinks}]
+
+    + no_hyperlinks (number, optional) - Wheter to return relation with links or ids
+        + Default: `0`
+
+### List all Instances [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "id": 1,
+                "humanReadableName": "uninstantiated-1",
+                "created": "2016-04-26T00:36:22.465259Z",
+                "updated": "2016-04-26T00:36:22.465288Z",
+                "enacted": null,
+                "policed": null,
+                "backend_register": "{}",
+                "backend_status": "0 - Provisioning in progress",
+                "deleted": false,
+                "write_protect": false,
+                "lazy_blocked": false,
+                "no_sync": false,
+                "instance_id": null,
+                "instance_uuid": null,
+                "name": "mysite_vcpe",
+                "instance_name": null,
+                "ip": null,
+                "image": "1",
+                "creator": "1",
+                "slice": "1",
+                "deployment": "1",
+                "node": "1",
+                "numberCores": 0,
+                "flavor": "1",
+                "userData": null,
+                "isolation": "vm",
+                "volumes": "/etc/dnsmasq.d,/etc/ufw",
+                "parent": null,
+                "networks": [
+                    "1"
+                ]
+            }
+        ]
+
+### Create an Instance [POST]
+
++ Parameters
+    + no_hyperlinks: 1
+
++ Request (application/json)
+
+        {
+            "name": "test-instance",
+            "image": 1,
+            "slice": 1,
+            "deployment": 1,
+            "node": 1
+        }
+
++ Response 200 (application/json)
+
+        {
+            "id": 1,
+            "humanReadableName": "uninstantiated-1",
+            "created": "2016-04-26T00:36:22.465259Z",
+            "updated": "2016-04-26T00:36:22.465288Z",
+            "enacted": null,
+            "policed": null,
+            "backend_register": "{}",
+            "backend_status": "0 - Provisioning in progress",
+            "deleted": false,
+            "write_protect": false,
+            "lazy_blocked": false,
+            "no_sync": false,
+            "instance_id": null,
+            "instance_uuid": null,
+            "name": "test-instance",
+            "instance_name": null,
+            "ip": null,
+            "image": "1",
+            "creator": "1",
+            "slice": "1",
+            "deployment": "1",
+            "node": "1",
+            "numberCores": 0,
+            "flavor": "1",
+            "userData": null,
+            "isolation": "vm",
+            "volumes": "/etc/dnsmasq.d,/etc/ufw",
+            "parent": null,
+            "networks": [
+                "1"
+            ]
+        }
+
+## Instances Detail [/api/core/instances/{id}/]
+
+### Get instance details [GET]
+
++ Parameters
+    + id: 1 (number) - ID of the Instance in the form of an integer
+
++ Response 200 (application/json)
+
+        {
+            "id": 1,
+            "humanReadableName": "uninstantiated-1",
+            "created": "2016-04-26T00:36:22.465259Z",
+            "updated": "2016-04-26T00:36:22.465288Z",
+            "enacted": null,
+            "policed": null,
+            "backend_register": "{}",
+            "backend_status": "0 - Provisioning in progress",
+            "deleted": false,
+            "write_protect": false,
+            "lazy_blocked": false,
+            "no_sync": false,
+            "instance_id": null,
+            "instance_uuid": null,
+            "name": "mysite_vcpe",
+            "instance_name": null,
+            "ip": null,
+            "image": "1",
+            "creator": "1",
+            "slice": "1",
+            "deployment": "1",
+            "node": "1",
+            "numberCores": 0,
+            "flavor": "1",
+            "userData": null,
+            "isolation": "vm",
+            "volumes": "/etc/dnsmasq.d,/etc/ufw",
+            "parent": null,
+            "networks": [
+                "1"
+            ]
+        }
+
+### Delete instance [DELETE]
+
++ Parameters
+    + id: 1 (number) - ID of the Instance in the form of an integer
+
++ Response 204
+ 
+ 
+## Nodes [/api/core/nodes/{id}/]
+
+### List all nodes [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "humanReadableName": "node2.opencloud.us",
+                "id": 1,
+                "created": "2016-04-29T16:19:05.661567Z",
+                "updated": "2016-04-29T16:19:05.661454Z",
+                "enacted": null,
+                "policed": null,
+                "backend_register": "{}",
+                "backend_status": "0 - Provisioning in progress",
+                "deleted": false,
+                "write_protect": false,
+                "lazy_blocked": false,
+                "no_sync": true,
+                "name": "node2.opencloud.us",
+                "site_deployment": "1",
+                "site": "1",
+                "nodelabels": []
+            }
+        ]
+
+ 
+ 
+## Services [/api/core/services/{id}/]
+
+### List all Services [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "humanReadableName": "MyService",
+                "id": 1,
+                "created": "2016-05-05T23:06:33.835277Z",
+                "updated": "2016-05-05T23:06:33.835302Z",
+                "enacted": null,
+                "policed": null,
+                "backend_register": "{}",
+                "backend_status": "0 - Provisioning in progress",
+                "deleted": false,
+                "write_protect": false,
+                "lazy_blocked": false,
+                "no_sync": false,
+                "no_policy": false,
+                "description": null,
+                "enabled": true,
+                "kind": "vROUTER",
+                "name": "MyService",
+                "versionNumber": null,
+                "published": true,
+                "view_url": "/admin/vrouter/vrouterservice/$id$/",
+                "icon_url": null,
+                "public_key": null,
+                "private_key_fn": null,
+                "service_specific_id": null,
+                "service_specific_attribute": null
+            }
+        ]
+
+### Create a Service [POST]
+
++ Request (application/json)
+
+        {
+            "name": "MyService",
+            "kind": "vROUTER"
+        }
+
++ Response 200 (application/json)
+
+        {
+            "humanReadableName": "MyService",
+            "id": 1,
+            "created": "2016-05-05T23:06:33.835277Z",
+            "updated": "2016-05-05T23:06:33.835302Z",
+            "enacted": null,
+            "policed": null,
+            "backend_register": "{}",
+            "backend_status": "0 - Provisioning in progress",
+            "deleted": false,
+            "write_protect": false,
+            "lazy_blocked": false,
+            "no_sync": false,
+            "no_policy": false,
+            "description": null,
+            "enabled": true,
+            "kind": "vROUTER",
+            "name": "MyService",
+            "versionNumber": null,
+            "published": true,
+            "view_url": "/admin/vrouter/vrouterservice/$id$/",
+            "icon_url": null,
+            "public_key": null,
+            "private_key_fn": null,
+            "service_specific_id": null,
+            "service_specific_attribute": null
+        }
+
+### View a Service Detail [GET]
+
++ Parameters
+    + id: 1 (number) - ID of the Service in the form of an integer
+
++ Response 200 (application/json)
+
+        {
+                "humanReadableName": "MyService",
+                "id": 1,
+                "created": "2016-05-05T23:06:33.835277Z",
+                "updated": "2016-05-05T23:06:33.835302Z",
+                "enacted": null,
+                "policed": null,
+                "backend_register": "{}",
+                "backend_status": "0 - Provisioning in progress",
+                "deleted": false,
+                "write_protect": false,
+                "lazy_blocked": false,
+                "no_sync": false,
+                "no_policy": false,
+                "description": null,
+                "enabled": true,
+                "kind": "vROUTER",
+                "name": "MyService",
+                "versionNumber": null,
+                "published": true,
+                "view_url": "/admin/vrouter/vrouterservice/$id$/",
+                "icon_url": null,
+                "public_key": null,
+                "private_key_fn": null,
+                "service_specific_id": null,
+                "service_specific_attribute": null
+            }
+
+### Delete a Service [DELETE]
+
++ Parameters
+    + id: 1 (number) - ID of the Service in the form of an integer
+
++ Response 204
+
+ 
+ 
+## Sites [/api/core/sites/{id}/]
+
+### List all sites [GET]
+
++ Response 200 (application/json)
+
+        {
+            "humanReadableName": "mysite",
+            "id": 1,
+            "created": "2016-04-29T16:19:03.587770Z",
+            "updated": "2016-04-29T16:19:05.651933Z",
+            "enacted": null,
+            "policed": null,
+            "backend_register": "{}",
+            "backend_status": "0 - Provisioning in progress",
+            "deleted": false,
+            "write_protect": false,
+            "lazy_blocked": false,
+            "no_sync": false,
+            "name": "MySite",
+            "site_url": "http://opencord.us/",
+            "enabled": true,
+            "hosts_nodes": true,
+            "hosts_users": true,
+            "location": null,
+            "longitude": null,
+            "latitude": null,
+            "login_base": "mysite",
+            "is_public": true,
+            "abbreviated_name": "",
+            "deployments": [
+                "1"
+            ]
+        }
+ 
+ 
+## Slices [/api/core/slices/{id}/]
+
+List of the XOS slices
+
+### List all slices [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "humanReadableName": "mysite_slice",
+                "id": 1,
+                "created": "2016-04-29T16:23:22.505072Z",
+                "updated": "2016-04-29T16:23:22.504691Z",
+                "enacted": null,
+                "policed": "2016-04-29T16:23:22.781298Z",
+                "backend_register": "{}",
+                "backend_status": "0 - Provisioning in progress",
+                "deleted": false,
+                "write_protect": false,
+                "lazy_blocked": false,
+                "no_sync": false,
+                "name": "mysite_slice",
+                "enabled": true,
+                "omf_friendly": false,
+                "description": "",
+                "slice_url": "",
+                "site": "http://apt118.apt.emulab.net/api/core/sites/1/",
+                "max_instances": 10,
+                "service": null,
+                "network": null,
+                "exposed_ports": null,
+                "serviceClass": "http://apt118.apt.emulab.net/api/core/serviceclasses/1/",
+                "creator": "http://apt118.apt.emulab.net/api/core/users/1/",
+                "default_flavor": null,
+                "default_image": null,
+                "mount_data_sets": "GenBank",
+                "default_isolation": "vm",
+                "networks": [
+                    "http://apt118.apt.emulab.net/api/core/networks/1/"
+                ]
+            }
+        ]
+        
+ 
+ 
+## Users [/api/core/users/{id}/]
+
+### List all Users [GET]
+
++ Response 200 (application/json)
+
+        [
+            {
+                "id": 2,
+                "password": "pbkdf2_sha256$12000$9gn8DmZuIoz2$YPQkx3AOOV7jZNYr2ddrgUCkiuaPpvb8+aJR7RwLZNA=",
+                "last_login": "2016-04-12T18:50:45.880823Z",
+                "email": "johndoe@myhouse.com",
+                "username": "johndoe@myhouse.com",
+                "firstname": "john",
+                "lastname": "doe",
+                "phone": null,
+                "user_url": null,
+                "site": "http://xos.dev:9999/api/core/sites/1/",
+                "public_key": null,
+                "is_active": true,
+                "is_admin": false,
+                "is_staff": true,
+                "is_readonly": false,
+                "is_registering": false,
+                "is_appuser": false,
+                "login_page": null,
+                "created": "2016-04-12T18:50:45.912602Z",
+                "updated": "2016-04-12T18:50:45.912671Z",
+                "enacted": null,
+                "policed": null,
+                "backend_status": "Provisioning in progress",
+                "deleted": false,
+                "write_protect": false,
+                "timezone": "America/New_York"
+            }
+        ]
+        
\ No newline at end of file
diff --git a/xos/tests/api/gulpfile.js b/xos/tests/api/gulpfile.js
index 988dd8c..c9be91c 100644
--- a/xos/tests/api/gulpfile.js
+++ b/xos/tests/api/gulpfile.js
@@ -10,7 +10,14 @@
 gulp.task('concat', function() {
   return gulp.src([
       './source/base.md',
-      './source/**/*.md'
+      './source/utility/group.md',
+      './source/utility/**/*.md',
+      './source/tenant/group.md',
+      './source/tenant/**/*.md',
+      './source/service/group.md',
+      './source/service/**/*.md',
+      './source/core/group.md',
+      './source/core/**/*.md',
     ])
     .pipe(concat('../../../apiary.apib', {newLine: '\n \n \n'}))
     .pipe(gulp.dest('./'));
diff --git a/xos/tests/api/helpers/subscriber.py b/xos/tests/api/helpers/subscriber.py
index 3d56354..caac1fe 100644
--- a/xos/tests/api/helpers/subscriber.py
+++ b/xos/tests/api/helpers/subscriber.py
@@ -12,25 +12,17 @@
 from services.volt.models import *
 from services.vsg.models import *
 from services.vtr.models import *
-from django.contrib.auth import authenticate, login
-from django.core.exceptions import PermissionDenied
-from django.contrib.sessions.models import Session
 import urllib2
 import json
+from django.utils import timezone
 django.setup()
 
-token = ''
-
 
 def doLogin(username, password):
-
-    url = "http://127.0.0.1:8000/xoslib/login?username=%s&password=%s" % (username, password)
-
-    print url
-
+    url = "http://127.0.0.1:9999/xoslib/login?username=%s&password=%s" % (username, password)
     res = urllib2.urlopen(url).read()
-
-    token = json.loads(res)['xoscsrftoken']
+    parsed = json.loads(res)
+    return {'token': parsed['xoscsrftoken'], 'sessionid': parsed['xossessionid']}
 
 
 def cleanDB():
@@ -64,12 +56,19 @@
     for s in AddressPool.objects.all():
         s.delete(purge=True)
 
-    print 'DB Cleaned'
+    for s in Flavor.objects.all():
+        s.delete(purge=True)
+
+    for s in Image.objects.all():
+        s.delete(purge=True)
+
+    # print 'DB Cleaned'
 
 
 def createTestSubscriber():
 
     cleanDB()
+    createFlavors()
 
     # load user
     user = User.objects.get(email="padmin@vicci.org")
@@ -81,6 +80,7 @@
 
     # creating the test subscriber
     subscriber = CordSubscriberRoot(name='Test Subscriber 1', id=1)
+    subscriber.created = timezone.now()
     subscriber.save()
 
     # vRouter service
@@ -97,7 +97,10 @@
     ap_vsg.gateway_mac = '02:42:0a:a8:00:01'
     ap_vsg.save()
 
-    print 'vRouter created'
+    # print 'vRouter created'
+
+    # cvpe image
+    vsg_img = createImage('ubuntu-vcpe4')
 
     # Site
     site = Site.objects.get(name='mysite')
@@ -107,12 +110,12 @@
     vsg_service.name = 'service_vsg'
 
     # vSG slice
-    vsg_slice = Slice()
+    vsg_slice = Slice(id=2)
     vsg_slice.name = site.login_base + "_testVsg"
     vsg_slice.service = vsg_service.id
     vsg_slice.site = site
     vsg_slice.caller = user
-
+    vsg_slice.default_image = vsg_img
     vsg_slice.save()
 
     vsg_service.save()
@@ -122,19 +125,19 @@
     volt_service.name = 'service_volt'
     volt_service.save()
 
-
     # vcpe slice
-    vcpe_slice = Slice()
+    vcpe_slice = Slice(id=3)
     vcpe_slice.name = site.login_base + "_testVcpe"
     vcpe_slice.service = Service.objects.get(kind='vCPE')
     vcpe_slice.site = site
     vcpe_slice.caller = user
+    vcpe_slice.default_image =  vsg_img
     vcpe_slice.save()
 
     # print 'vcpe_slice created'
 
     # create a lan network
-    lan_net = Network()
+    lan_net = Network(id=1)
     lan_net.name = 'lan_network'
     lan_net.owner = vcpe_slice
     lan_net.template = private_template
@@ -150,13 +153,6 @@
 
     # print 'vcpe network relation added'
 
-    # vbng service
-    vbng_service = VBNGService()
-    vbng_service.name = 'service_vbng'
-    vbng_service.save()
-
-    # print 'vbng_service creater'
-
     # volt tenant
     vt = VOLTTenant(subscriber=subscriber.id, id=1)
     vt.s_tag = "222"
@@ -165,7 +161,7 @@
     vt.caller = user
     vt.save()
 
-    print "Subscriber Created"
+    # print "Subscriber Created"
 
 
 def deleteTruckrolls():
@@ -182,7 +178,222 @@
 def createTruckroll():
     setUpTruckroll()
     tn = VTRTenant(id=1)
+    tn.created = timezone.now()
     tn.save()
 
 
-createTestSubscriber()
+def createFlavors():
+    small = Flavor(id=1)
+    small.name = "m1.small"
+    small.created = timezone.now()
+    small.save()
+
+    medium = Flavor(id=2)
+    medium.name = "m1.medium"
+    medium.created = timezone.now()
+    medium.save()
+
+    large = Flavor(id=3)
+    large.name = "m1.large"
+    large.created = timezone.now()
+    large.save()
+
+
+def createSlice():
+    site = Site.objects.get(name='mysite')
+    user = User.objects.get(email="padmin@vicci.org")
+
+    sl = Slice(id=1)
+    sl.created = timezone.now()
+    sl.name = site.login_base + "_testSlice"
+    sl.site = site
+    sl.caller = user
+    sl.save()
+    return sl
+
+
+def createDeployment():
+    deployment = Deployment(id=1)
+    deployment.created = timezone.now()
+    deployment.name = 'MyTestDeployment'
+    deployment.save()
+    return deployment
+
+
+def createImage(name):
+    img = Image(id=1)
+    img.name = name
+    img.created = timezone.now()
+    img.disk_format = 'QCOW2'
+    img.kind = 'vm'
+    img.save()
+    return img
+
+
+def createNode(deployment):
+    site = Site.objects.get(name='mysite')
+
+    site_deployment = SiteDeployment(id=1)
+    site_deployment.site = site
+    site_deployment.created = timezone.now()
+    site_deployment.deployment = deployment
+    site_deployment.save()
+
+    node = Node(id=1)
+    node.name = 'test-node'
+    node.created = timezone.now()
+    node.site = site
+    node.site_deployment = site_deployment
+    node.save()
+    return node
+
+
+def setupInstance():
+    deployment = createDeployment()
+    sl = createSlice()
+    node = createNode(deployment)
+    img = createImage('test-image')
+    # print {'image': img.id, 'deployment': deployment.id, 'slice': sl.id}
+    return {'image': img, 'deployment': deployment, 'slice': sl}
+
+
+def createInstance():
+    requirements = setupInstance()
+    user = User.objects.get(email="padmin@vicci.org")
+
+    instance = Instance(id=1)
+    instance.name = 'test-instance'
+    instance.created = timezone.now()
+    instance.node = Node.objects.all()[0]
+    instance.image = requirements['image']
+    instance.slice = requirements['slice']
+    instance.deployment = requirements['deployment']
+    instance.caller = user
+    instance.save()
+
+
+def createService():
+    service = Service(id=1)
+    service.name = 'test-service'
+    service.save()
+
+@hooks.before_all
+def my_before_all_hook(transactions):
+    # print "-------------------------------- Before All Hook --------------------------------"
+    cleanDB()
+
+
+@hooks.before_each
+def my_before_each_hook(transaction):
+    print "-------------------------------- Before Each Hook --------------------------------"
+    print transaction['name']
+    auth = doLogin('padmin@vicci.org', 'letmein')
+    transaction['request']['headers']['X-CSRFToken'] = auth['token']
+    transaction['request']['headers']['Cookie'] = "xossessionid=%s; xoscsrftoken=%s" % (auth['sessionid'], auth['token'])
+    createTestSubscriber()
+    setupInstance()
+    sys.stdout.flush()
+
+
+# @hooks.after_each
+# def my_after_each(transaction):
+#     print "-------------------------------- Test end --------------------------------"
+
+
+@hooks.before("Core > Services > View a Service Detail")
+def get_service(transaction):
+    createService()
+
+
+@hooks.before("Core > Services > Delete a Service")
+def delete_service(transaction):
+    createService()
+
+
+@hooks.before("Tenant > Truckroll Collection > Create a Truckroll")
+def test1(transaction):
+    setUpTruckroll()
+
+
+@hooks.before("Tenant > Truckroll Collection > View a Truckroll Detail")
+def test2(transaction):
+    deleteTruckrolls()
+    createTruckroll()
+
+
+@hooks.before("Tenant > Truckroll Collection > Delete a Truckroll Detail")
+def test3(transaction):
+    deleteTruckrolls()
+    createTruckroll()
+
+
+@hooks.before("Tenant > vOLT Collection > Create a vOLT")
+def test4(transaction):
+    # transaction['skip'] = True
+    VOLTTenant.objects.get(kind='vOLT').delete()
+
+
+@hooks.before("Core > Flavors > View a Flavors Detail")
+def test5(transaction):
+    createFlavors()
+
+
+@hooks.before("Core > Deployments > View a Deployment Detail")
+def get_deployments(transaction):
+    createDeployment()
+
+
+@hooks.before("Core > Deployments > Delete a Deployment")
+def delete_deployments(transaction):
+    createDeployment()
+
+
+@hooks.before("Core > Instances Collection > Create an Instance")
+def create_instance(transaction):
+    setupInstance()
+    transaction['skip'] = True
+
+
+@hooks.before("Core > Instances Detail > Get instance details")
+def get_instance(transaction):
+    createInstance()
+
+
+@hooks.before("Core > Instances Detail > Delete instance")
+def delete_instance(transaction):
+    createInstance()
+
+
+@hooks.before("Service > Example Services Collection > List all Example Services")
+def exampleTest(transaction):
+    transaction['skip'] = True
+
+
+@hooks.before("Service > Login > Log a user in the system")
+def before_logout_hook(transaction):
+    transaction['skip'] = True
+    # auth = doLogin('padmin@vicci.org', 'letmein')
+    # transaction['request']['body'] = {}
+    # transaction['request']['body']['xossessionid'] = auth['sessionid']
+
+
+@hooks.before("Utility > Logout > Log a user out of the system")
+def skip_logout(transaction):
+    transaction['skip'] = True
+
+
+@hooks.before("Utility > Onboarding > Get service status")
+def skip_onboarding(transaction):
+    transaction['skip'] = True
+
+
+@hooks.after("Utility > Tosca > Load a Tosca recipe")
+def check_tosca(transaction):
+    try:
+        site = Site.objects.get(name='Test Site')
+    except Exception, e:
+        transaction['fail'] = "Test Site has not been created"
+
+
+deleteTruckrolls()
+createTruckroll()
diff --git a/xos/tests/api/hooks.py b/xos/tests/api/hooks.py
index 61d00c7..248907b 100644
--- a/xos/tests/api/hooks.py
+++ b/xos/tests/api/hooks.py
@@ -300,76 +300,76 @@
 #     print "-------------------------------- Test end --------------------------------"
 
 
-@hooks.before("Services > Services > View a Service Detail")
+@hooks.before("Core > Services > View a Service Detail")
 def get_service(transaction):
     createService()
 
 
-@hooks.before("Services > Services > Delete a Service")
+@hooks.before("Core > Services > Delete a Service")
 def delete_service(transaction):
     createService()
 
 
-@hooks.before("Truckroll > Truckroll Collection > Create a Truckroll")
+@hooks.before("Tenant > Truckroll Collection > Create a Truckroll")
 def test1(transaction):
     setUpTruckroll()
 
 
-@hooks.before("Truckroll > Truckroll Collection > View a Truckroll Detail")
+@hooks.before("Tenant > Truckroll Collection > View a Truckroll Detail")
 def test2(transaction):
     deleteTruckrolls()
     createTruckroll()
 
 
-@hooks.before("Truckroll > Truckroll Collection > Delete a Truckroll Detail")
+@hooks.before("Tenant > Truckroll Collection > Delete a Truckroll Detail")
 def test3(transaction):
     deleteTruckrolls()
     createTruckroll()
 
 
-@hooks.before("vOLT > vOLT Collection > Create a vOLT")
+@hooks.before("Tenant > vOLT Collection > Create a vOLT")
 def test4(transaction):
     # transaction['skip'] = True
     VOLTTenant.objects.get(kind='vOLT').delete()
 
 
-@hooks.before("Flavors > Flavors > View a Flavors Detail")
+@hooks.before("Core > Flavors > View a Flavors Detail")
 def test5(transaction):
     createFlavors()
 
 
-@hooks.before("Deployments > Deployments > View a Deployment Detail")
+@hooks.before("Core > Deployments > View a Deployment Detail")
 def get_deployments(transaction):
     createDeployment()
 
 
-@hooks.before("Deployments > Deployments > Delete a Deployment")
+@hooks.before("Core > Deployments > Delete a Deployment")
 def delete_deployments(transaction):
     createDeployment()
 
 
-@hooks.before("Instances > Instances Collection > Create an Instance")
+@hooks.before("Core > Instances Collection > Create an Instance")
 def create_instance(transaction):
     setupInstance()
     transaction['skip'] = True
 
 
-@hooks.before("Instances > Instances Detail > Get instance details")
+@hooks.before("Core > Instances Detail > Get instance details")
 def get_instance(transaction):
     createInstance()
 
 
-@hooks.before("Instances > Instances Detail > Delete instance")
+@hooks.before("Core > Instances Detail > Delete instance")
 def delete_instance(transaction):
     createInstance()
 
 
-@hooks.before("Example > Example Services Collection > List all Example Services")
+@hooks.before("Service > Example Services Collection > List all Example Services")
 def exampleTest(transaction):
     transaction['skip'] = True
 
 
-@hooks.before("Utility > Login > Log a user in the system")
+@hooks.before("Service > Login > Log a user in the system")
 def before_logout_hook(transaction):
     transaction['skip'] = True
     # auth = doLogin('padmin@vicci.org', 'letmein')
diff --git a/xos/tests/api/source/core/deployment.md b/xos/tests/api/source/core/deployment.md
index 764a73f..d6e9931 100644
--- a/xos/tests/api/source/core/deployment.md
+++ b/xos/tests/api/source/core/deployment.md
@@ -1,9 +1,7 @@
-# Group Deployments
+## Deployments [/api/core/deployments/{id}/]
 
 List of the XOS deployments
 
-## Deployments [/api/core/deployments/{id}/]
-
 ### List all deployments [GET]
 
 + Response 200 (application/json)
diff --git a/xos/tests/api/source/core/flavors.md b/xos/tests/api/source/core/flavors.md
index aba5a6b..78ca189 100644
--- a/xos/tests/api/source/core/flavors.md
+++ b/xos/tests/api/source/core/flavors.md
@@ -1,9 +1,7 @@
-# Group Flavors
+## Flavors [/api/core/flavors/{id}/]
 
 List of the XOS flavors
 
-## Flavors [/api/core/flavors/{id}/]
-
 ### List all flavors [GET]
 
 + Response 200 (application/json)
diff --git a/xos/tests/api/source/core/group.md b/xos/tests/api/source/core/group.md
new file mode 100644
index 0000000..7298012
--- /dev/null
+++ b/xos/tests/api/source/core/group.md
@@ -0,0 +1,3 @@
+# Group Core
+
+List of the XOS Core API
\ No newline at end of file
diff --git a/xos/tests/api/source/core/instances.md b/xos/tests/api/source/core/instances.md
index 9caf93e..b3f4ce9 100644
--- a/xos/tests/api/source/core/instances.md
+++ b/xos/tests/api/source/core/instances.md
@@ -1,7 +1,3 @@
-# Group Instances
-
-List of the XOS instances
-
 ## Instances Collection [/api/core/instances/{?no_hyperlinks}]
 
     + no_hyperlinks (number, optional) - Wheter to return relation with links or ids
diff --git a/xos/tests/api/source/core/nodes.md b/xos/tests/api/source/core/nodes.md
index d9931dc..bad3a3a 100644
--- a/xos/tests/api/source/core/nodes.md
+++ b/xos/tests/api/source/core/nodes.md
@@ -1,7 +1,3 @@
-# Group Nodes
-
-List of the XOS nodes
-
 ## Nodes [/api/core/nodes/{id}/]
 
 ### List all nodes [GET]
diff --git a/xos/tests/api/source/core/services.md b/xos/tests/api/source/core/services.md
index 3454bdb..fb2d4a2 100644
--- a/xos/tests/api/source/core/services.md
+++ b/xos/tests/api/source/core/services.md
@@ -1,7 +1,3 @@
-# Group Services
-
-List of the XOS Services
-
 ## Services [/api/core/services/{id}/]
 
 ### List all Services [GET]
diff --git a/xos/tests/api/source/core/sites.md b/xos/tests/api/source/core/sites.md
index 731199e..7f963c3 100644
--- a/xos/tests/api/source/core/sites.md
+++ b/xos/tests/api/source/core/sites.md
@@ -1,7 +1,3 @@
-# Group Sites
-
-List of the XOS sites
-
 ## Sites [/api/core/sites/{id}/]
 
 ### List all sites [GET]
diff --git a/xos/tests/api/source/core/slices.md b/xos/tests/api/source/core/slices.md
index 6ec5c7e..050aade 100644
--- a/xos/tests/api/source/core/slices.md
+++ b/xos/tests/api/source/core/slices.md
@@ -1,9 +1,7 @@
-# Group Slices
+## Slices [/api/core/slices/{id}/]
 
 List of the XOS slices
 
-## Slices [/api/core/slices/{id}/]
-
 ### List all slices [GET]
 
 + Response 200 (application/json)
diff --git a/xos/tests/api/source/core/users.md b/xos/tests/api/source/core/users.md
index 8ccabb5..5a6518a 100644
--- a/xos/tests/api/source/core/users.md
+++ b/xos/tests/api/source/core/users.md
@@ -1,7 +1,3 @@
-# Group Users
-
-List of the XOS users
-
 ## Users [/api/core/users/{id}/]
 
 ### List all Users [GET]
diff --git a/xos/tests/api/source/service/exampleservice.md b/xos/tests/api/source/service/exampleservice.md
index b2d031b..df79fc7 100644
--- a/xos/tests/api/source/service/exampleservice.md
+++ b/xos/tests/api/source/service/exampleservice.md
@@ -1,5 +1,3 @@
-# Group Example
-
 ## Example Services Collection [/api/service/exampleservice/]
 
 ### List all Example Services [GET]
diff --git a/xos/tests/api/source/service/group.md b/xos/tests/api/source/service/group.md
new file mode 100644
index 0000000..daf5737
--- /dev/null
+++ b/xos/tests/api/source/service/group.md
@@ -0,0 +1 @@
+# Group Service
\ No newline at end of file
diff --git a/xos/tests/api/source/service/onos.md b/xos/tests/api/source/service/onos.md
index 0b82a86..33e39d3 100644
--- a/xos/tests/api/source/service/onos.md
+++ b/xos/tests/api/source/service/onos.md
@@ -1,9 +1,7 @@
-# Group ONOS Services
+## ONOS Services Collection [/api/service/onos/]
 
 List of the active onos services
 
-## ONOS Services Collection [/api/service/onos/]
-
 ### List all ONOS Services [GET]
 
 + Response 200 (application/json)
diff --git a/xos/tests/api/source/service/vsg.md b/xos/tests/api/source/service/vsg.md
index 1a0569a..1cec60e 100644
--- a/xos/tests/api/source/service/vsg.md
+++ b/xos/tests/api/source/service/vsg.md
@@ -1,5 +1,3 @@
-# Group vSG
-
 ## vSG Collection [/api/service/vsg/]
 
 ### List all vSGs [GET]
diff --git a/xos/tests/api/source/tenant/cord/subscribers.md b/xos/tests/api/source/tenant/cord/subscribers.md
index 61126ce..b9397a5 100644
--- a/xos/tests/api/source/tenant/cord/subscribers.md
+++ b/xos/tests/api/source/tenant/cord/subscribers.md
@@ -1,9 +1,7 @@
-# Group Subscribers
+## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
 
 Resource related to the CORD Subscribers.
 
-## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
-
 ### List All Subscribers [GET]
 
 + Response 200 (application/json)
diff --git a/xos/tests/api/source/tenant/cord/truckroll.md b/xos/tests/api/source/tenant/cord/truckroll.md
index 996c19c..2792863 100644
--- a/xos/tests/api/source/tenant/cord/truckroll.md
+++ b/xos/tests/api/source/tenant/cord/truckroll.md
@@ -1,9 +1,7 @@
-# Group Truckroll
+## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
 
 Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
 
-## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
-
 ### List all Truckroll [GET]
 
 + Response 200 (application/json)
diff --git a/xos/tests/api/source/tenant/cord/volt.md b/xos/tests/api/source/tenant/cord/volt.md
index 51cb679..3f644ad 100644
--- a/xos/tests/api/source/tenant/cord/volt.md
+++ b/xos/tests/api/source/tenant/cord/volt.md
@@ -1,9 +1,7 @@
-# Group vOLT
+## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
 
 OLT devices aggregate a set of subscriber connections
 
-## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
-
 ### List all vOLT [GET]
 
 + Response 200 (application/json)
diff --git a/xos/tests/api/source/tenant/group.md b/xos/tests/api/source/tenant/group.md
new file mode 100644
index 0000000..52dde1c
--- /dev/null
+++ b/xos/tests/api/source/tenant/group.md
@@ -0,0 +1 @@
+# Group Tenant
\ No newline at end of file
diff --git a/xos/tests/api/source/tenant/onos/app.md b/xos/tests/api/source/tenant/onos/app.md
index 5376c33..c77365a 100644
--- a/xos/tests/api/source/tenant/onos/app.md
+++ b/xos/tests/api/source/tenant/onos/app.md
@@ -1,5 +1,3 @@
-# Group ONOS Apps
-
 ## ONOS App Collection [/api/tenant/onos/app/]
 
 ### List all apps [GET]
diff --git a/xos/tests/api/source/utility/group.md b/xos/tests/api/source/utility/group.md
new file mode 100644
index 0000000..cac339c
--- /dev/null
+++ b/xos/tests/api/source/utility/group.md
@@ -0,0 +1,3 @@
+# Group Utility
+
+List of the XOS Utility API
\ No newline at end of file
diff --git a/xos/tests/api/source/utility/utility.md b/xos/tests/api/source/utility/utility.md
index 962ba6e..2dce77b 100644
--- a/xos/tests/api/source/utility/utility.md
+++ b/xos/tests/api/source/utility/utility.md
@@ -1,7 +1,3 @@
-# Group Utility
-
-List of the XOS Utility API
-
 ## Login [/api/utility/login/]
 
 ### Log a user in the system [POST]
