diff --git a/src/app/config/app.config.ts b/src/app/config/app.config.ts
index 50570d7..c8a1b1d 100644
--- a/src/app/config/app.config.ts
+++ b/src/app/config/app.config.ts
@@ -1,5 +1,5 @@
 import {IAppConfig} from './interfaces';
 export const AppConfig: IAppConfig = {
-    apiEndpoint: 'http://xos.dev:3000/api',
-    websocketClient: 'http://xos.dev:3000'
+    apiEndpoint: 'http://localhost:4000/api',
+    websocketClient: 'http://localhost:4000'
 };
diff --git a/src/app/datasources/rest/auth.rest.ts b/src/app/datasources/rest/auth.rest.ts
index f963799..520952d 100644
--- a/src/app/datasources/rest/auth.rest.ts
+++ b/src/app/datasources/rest/auth.rest.ts
@@ -37,6 +37,7 @@
     const d = this.$q.defer();
     this.$http.post(`${AppConfig.apiEndpoint}/utility/login/`, data)
       .then((res: IAuthResponseData) => {
+        console.log(res.data);
         this.$cookies.put('xoscsrftoken', res.data.xoscsrftoken);
         this.$cookies.put('xossessionid', res.data.xossessionid);
         this.$cookies.put('xosuser', res.data.user);
diff --git a/src/app/datasources/rest/model.rest.ts b/src/app/datasources/rest/model.rest.ts
index eca4221..51e41d3 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`, {id: '@id'});
+    return this.resource = this.$resource(`${AppConfig.apiEndpoint}${url}/:id/`, {id: '@id'});
   }
 }
diff --git a/src/app/datasources/stores/model.store.spec.ts b/src/app/datasources/stores/model.store.spec.ts
index a484003..dfe0d24 100644
--- a/src/app/datasources/stores/model.store.spec.ts
+++ b/src/app/datasources/stores/model.store.spec.ts
@@ -138,7 +138,6 @@
               .subscribe(second => {
                 sevent++;
                 if (sevent === 2) {
-                  console.log(first, second);
                   expect(first).not.toEqual(second);
                   done();
                 }
diff --git a/src/interceptors.ts b/src/interceptors.ts
index ef765c0..5dde746 100644
--- a/src/interceptors.ts
+++ b/src/interceptors.ts
@@ -13,10 +13,7 @@
 
   const checkLogin = (res) => {
     if (res.status === 403) {
-      $state.go('login');
-    }
-    else if (res.data.status === 403) {
-      $state.go('login');
+      // $state.go('login');
     }
     return res;
   };
@@ -33,7 +30,7 @@
       if (!$cookies.get('xoscsrftoken') || !$cookies.get('xossessionid')) {
         return req;
       }
-      req.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
+      // req.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
       req.headers['x-csrftoken'] = $cookies.get('xoscsrftoken');
       req.headers['x-sessionid'] = $cookies.get('xossessionid');
       return req;
