diff --git a/src/app/core/header/header.ts b/src/app/core/header/header.ts
index efaa385..849767f 100644
--- a/src/app/core/header/header.ts
+++ b/src/app/core/header/header.ts
@@ -35,7 +35,7 @@
       // tapToDismiss: false
     });
 
-    this.userEmail = this.authService.getUser().email;
+    this.userEmail = this.authService.getUser() ? this.authService.getUser().email : '';
 
     this.syncStore.query()
       .subscribe(
diff --git a/src/app/core/nav/nav.scss b/src/app/core/nav/nav.scss
index 7646cd9..ef3020b 100644
--- a/src/app/core/nav/nav.scss
+++ b/src/app/core/nav/nav.scss
@@ -1,5 +1,18 @@
 xos-nav {
+  .navigation {
+    max-height: 100%;
+    display: block;
+    overflow-y: scroll;
+
+    nav {
+      margin-bottom: 200px;
+    }
+  }
+
   .nav-info {
+    position: fixed !important;
+    bottom: 0;
+    width: 200px;
     .row + .row:last-child {
       margin-top: 20px;
     }
diff --git a/src/app/core/services/helpers/config.helpers.ts b/src/app/core/services/helpers/config.helpers.ts
index f9b76f0..599edaf 100644
--- a/src/app/core/services/helpers/config.helpers.ts
+++ b/src/app/core/services/helpers/config.helpers.ts
@@ -30,7 +30,8 @@
     'no_policy',
     'omf_friendly',
     'enabled',
-    'validators'
+    'validators',
+    'password'
   ];
 
   constructor() {
diff --git a/src/app/core/table/table.html b/src/app/core/table/table.html
index 23b5a2f..382dbec 100644
--- a/src/app/core/table/table.html
+++ b/src/app/core/table/table.html
@@ -8,19 +8,20 @@
                     ng-model="vm.query"/>
         </div>
     </div>
-    <table ng-class="vm.classes">
+    <div class="table-responsive">
+        <table ng-class="vm.classes">
         <thead>
         <tr>
             <th ng-repeat="col in vm.columns">
                 {{col.label}}
-                <span ng-if="vm.config.order">
+                <div ng-if="vm.config.order">
                     <a href="" ng-click="vm.orderBy = col.prop; vm.reverse = false">
                       <i class="fa fa-chevron-up"></i>
                     </a>
                     <a href="" ng-click="vm.orderBy = col.prop; vm.reverse = true">
                       <i class="fa fa-chevron-down"></i>
                     </a>
-                  </span>
+                </div>
             </th>
             <th ng-if="vm.config.actions">Actions:</th>
         </tr>
@@ -90,6 +91,7 @@
         </tr>
         </tbody>
     </table>
+    </div>
 <!--</div>-->
 <!--<div ng-show="(vm.data.length == 0 || !vm.data) && vm.loader == false">-->
     <!--<xos-alert config="{type: 'info'}">-->
diff --git a/src/app/core/table/table.scss b/src/app/core/table/table.scss
index fbf6ee7..a2af05e 100644
--- a/src/app/core/table/table.scss
+++ b/src/app/core/table/table.scss
@@ -1,7 +1,10 @@
+xos-table {
+  .row + .table-responsive {
+    margin-top: 10px;
+  }
+}
+
 table {
-  width: 100%;
-  max-width: 100%;
-  margin-bottom: 20px;
   border-collapse: collapse !important;
   background: darken(grey, 20);
   border: 1px solid darken(grey, 35);
diff --git a/src/app/core/table/table.ts b/src/app/core/table/table.ts
index dba740e..1ed258d 100644
--- a/src/app/core/table/table.ts
+++ b/src/app/core/table/table.ts
@@ -22,13 +22,15 @@
 }
 
 interface IXosTableCgfOrder {
-  reverse: boolean;
+  reverse?: boolean;
   field: string;
 }
 
 export interface IXosTableCfg {
   columns: any[];
-  order?: IXosTableCgfOrder; // | boolean;
+  order?: IXosTableCgfOrder;
+  filter?: string;
+  actions?: any[]; // TODO create interface
 }
 
 class TableCtrl {
diff --git a/src/app/datasources/rest/auth.rest.ts b/src/app/datasources/rest/auth.rest.ts
index e7a593c..f963799 100644
--- a/src/app/datasources/rest/auth.rest.ts
+++ b/src/app/datasources/rest/auth.rest.ts
@@ -21,7 +21,8 @@
 export interface IXosAuthService {
   login(data: IAuthRequestData): Promise<any>;
   logout(): Promise<any>;
-  getUser(): IXosUser;
+  getUser(): any; // NOTE how to define return user || false ???
+  isAuthenticated(): boolean;
 }
 export class AuthService {
 
@@ -67,6 +68,16 @@
   }
 
   public getUser(): IXosUser {
-    return JSON.parse(this.$cookies.get('xosuser'));
+    const user = this.$cookies.get('xosuser');
+    if (angular.isDefined(user)) {
+      return JSON.parse(user);
+    }
+    return;
+  }
+
+  public isAuthenticated(): boolean {
+    const token = this.$cookies.get('xoscsrftoken');
+    const session = this.$cookies.get('xossessionid');
+    return angular.isDefined(token) && angular.isDefined(session);
   }
 }
diff --git a/src/app/datasources/rest/model.rest.ts b/src/app/datasources/rest/model.rest.ts
index 908ca0f..eca4221 100644
--- a/src/app/datasources/rest/model.rest.ts
+++ b/src/app/datasources/rest/model.rest.ts
@@ -16,6 +16,6 @@
   }
 
   public getResource(url: string): ng.resource.IResourceClass<ng.resource.IResource<any>> {
-    return this.resource = this.$resource(`${AppConfig.apiEndpoint}${url}/:id`);
+    return this.resource = this.$resource(`${AppConfig.apiEndpoint}${url}/:id`, {id: '@id'});
   }
 }
diff --git a/src/app/datasources/stores/model.store.ts b/src/app/datasources/stores/model.store.ts
index fa3ab06..0839cc7 100644
--- a/src/app/datasources/stores/model.store.ts
+++ b/src/app/datasources/stores/model.store.ts
@@ -18,6 +18,8 @@
     private ModelRest: IXosResourceService
   ) {
   }
+  // FIXME if called multiple time (for different collection),
+  // it return the same observable while it should return different ones
 
   query(model: string) {
     this.loadInitialData(model);
diff --git a/src/app/views/dashboard/dashboard.html b/src/app/views/dashboard/dashboard.html
new file mode 100644
index 0000000..de4c358
--- /dev/null
+++ b/src/app/views/dashboard/dashboard.html
@@ -0,0 +1,42 @@
+<section class="content">
+    <div class="container-fluid">
+        <!--<h1>Dashboard</h1>-->
+        <div class="row">
+            <div class="col-xs-4">
+                <div class="panel panel-filled">
+                    <div class="panel-body text-center">
+                        <h2 class="m-b-none">
+                            {{vm.nodes}}
+                            <!--<span class="slight"><i class="fa fa-play fa-rotate-270 text-warning"> </i> +20%</span>-->
+                        </h2>
+                        <h4>Nodes</h4>
+                        <!--<div class="small">% New Sessions</div>-->
+                        <!--<div class="slight m-t-sm"><i class="fa fa-clock-o"> </i> Updated: <span class="c-white">10:22pm</span></div>-->
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-xs-4">
+                <div class="panel panel-filled">
+                    <div class="panel-body text-center">
+                        <h2 class="m-b-none">
+                            {{vm.slices}}
+                        </h2>
+                        <h4>Slices</h4>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-xs-4">
+                <div class="panel panel-filled">
+                    <div class="panel-body text-center">
+                        <h2 class="m-b-none">
+                            {{vm.instances}}
+                        </h2>
+                        <h4>Instances</h4>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
\ No newline at end of file
diff --git a/src/app/views/dashboard/dashboard.ts b/src/app/views/dashboard/dashboard.ts
new file mode 100644
index 0000000..776acf6
--- /dev/null
+++ b/src/app/views/dashboard/dashboard.ts
@@ -0,0 +1,46 @@
+import {IModelStoreService} from '../../datasources/stores/model.store';
+import {IXosAuthService} from '../../datasources/rest/auth.rest';
+class DashboardController {
+  static $inject = ['$state', 'ModelStore', 'AuthService'];
+
+  public nodes: number;
+  public slices: number;
+  public instances: number;
+
+  constructor(
+    private $state: ng.ui.IStateService,
+    private store: IModelStoreService,
+    private auth: IXosAuthService
+  ) {
+
+    if (!this.auth.isAuthenticated()) {
+      this.$state.go('login');
+    }
+    else {
+      // this.store.query('node')
+      //   .subscribe((event) => {
+      //     console.log(`node`, event);
+      //     this.nodes = event.length;
+      // });
+      this.store.query('slice')
+        .subscribe((event) => {
+          // console.log('slice', event);
+          this.slices = event.length;
+      });
+      // this.store.query('instance')
+      //   .subscribe((event) => {
+      //     console.log('isntance', event);
+      //     this.instances = event.length;
+      // });
+      this.instances = 0;
+      this.nodes = 2;
+      this.slices = 3;
+    }
+  }
+}
+
+export const xosDashboard: angular.IComponentOptions = {
+  template: require('./dashboard.html'),
+  controllerAs: 'vm',
+  controller: DashboardController
+};
diff --git a/src/app/views/index.ts b/src/app/views/index.ts
index 495e2a4..ee87ef9 100644
--- a/src/app/views/index.ts
+++ b/src/app/views/index.ts
@@ -1,8 +1,10 @@
 import {xosCore} from '../core/index';
 import {xosCrud} from './crud/crud';
+import {xosDashboard} from './dashboard/dashboard';
 
 export const xosViews = 'xosViews';
 
 angular
   .module('xosViews', [xosCore])
-  .component('xosCrud', xosCrud);
+  .component('xosCrud', xosCrud)
+  .component('xosDashboard', xosDashboard);
