diff --git a/src/app/core/header/header.ts b/src/app/core/header/header.ts
index 620aecd..1f01bf8 100644
--- a/src/app/core/header/header.ts
+++ b/src/app/core/header/header.ts
@@ -48,10 +48,6 @@
       // tapToDismiss: false
     });
 
-    // this.$rootScope.$on('xos.core.modelSetup', () => {
-    //   this.states = _.uniqBy(this.states, 'state');
-    // });
-
     this.search = (query: string) => {
       return this.SearchService.search(query);
     };
@@ -61,7 +57,6 @@
       if (e.key === 'f') {
         $('.navbar-form input').focus();
       }
-      // console.log(this.SearchService.getStates());
     });
 
     // redirect to selected page
diff --git a/src/app/core/login/login.ts b/src/app/core/login/login.ts
index a08c17d..673d9a8 100644
--- a/src/app/core/login/login.ts
+++ b/src/app/core/login/login.ts
@@ -4,11 +4,12 @@
 import {IXosStyleConfig} from '../../../index';
 
 class LoginCtrl {
-  static $inject = ['AuthService', '$state', 'ModelSetup', 'StyleConfig'];
+  static $inject = ['$log', 'AuthService', '$state', 'ModelSetup', 'StyleConfig'];
   public loginStyle: any;
   public img: string;
   /** @ngInject */
   constructor(
+    private $log: ng.ILogService,
     private authService: AuthService,
     private $state: angular.ui.IStateService,
     private ModelSetup: IXosModelSetupService,
@@ -39,7 +40,7 @@
         this.$state.go('xos.dashboard');
       })
       .catch(e => {
-        console.error(e);
+        this.$log.error(e);
       });
   }
 
diff --git a/src/app/core/services/helpers/model-setup.helpers.ts b/src/app/core/services/helpers/model-setup.helpers.ts
index b0a2be6..e79899d 100644
--- a/src/app/core/services/helpers/model-setup.helpers.ts
+++ b/src/app/core/services/helpers/model-setup.helpers.ts
@@ -53,8 +53,7 @@
             parent: 'xos.core'
           });
         });
-        console.log('xos.core.modelSetup');
-        this.$rootScope.$emit('xos.core.modelSetup', {done: true});
+
         d.resolve();
       })
       .catch(d.reject);
diff --git a/src/app/core/validation/validation.ts b/src/app/core/validation/validation.ts
index 7481b3b..5a27045 100644
--- a/src/app/core/validation/validation.ts
+++ b/src/app/core/validation/validation.ts
@@ -7,7 +7,6 @@
   public config: any;
 
   $onInit() {
-    console.log('validation');
     this.config = {
       type: 'danger'
     };
diff --git a/src/app/datasources/stores/model.store.spec.ts b/src/app/datasources/stores/model.store.spec.ts
index 97ce890..a73e5ff 100644
--- a/src/app/datasources/stores/model.store.spec.ts
+++ b/src/app/datasources/stores/model.store.spec.ts
@@ -105,7 +105,6 @@
             }
           },
           err => {
-            console.log(err);
             done(err);
           }
         );
diff --git a/src/app/datasources/stores/model.store.ts b/src/app/datasources/stores/model.store.ts
index 4c6c09d..a070436 100644
--- a/src/app/datasources/stores/model.store.ts
+++ b/src/app/datasources/stores/model.store.ts
@@ -11,9 +11,10 @@
 }
 
 export class ModelStore {
-  static $inject = ['WebSocket', 'StoreHelpers', 'ModelRest'];
+  static $inject = ['$log', 'WebSocket', 'StoreHelpers', 'ModelRest'];
   private _collections: any; // NOTE contains a map of {model: BehaviourSubject}
   constructor(
+    private $log: ng.ILogService,
     private webSocket: IWSEventService,
     private storeHelpers: IStoreHelpersService,
     private ModelRest: IXosResourceService,
@@ -71,8 +72,9 @@
       .then(
         res => {
           this._collections[model].next(res);
-        },
-        err => console.log(`Error retrieving ${model}`, err)
+        })
+      .catch(
+        err => this.$log.log(`Error retrieving ${model}`, err)
       );
   }
 }
