diff --git a/src/app/core/nav/nav.ts b/src/app/core/nav/nav.ts
index f537e5e..2082efb 100644
--- a/src/app/core/nav/nav.ts
+++ b/src/app/core/nav/nav.ts
@@ -21,10 +21,6 @@
     private XosSidePanel: IXosSidePanelService,
     private XosComponentInjector: IXosComponentInjectorService
   ) {
-    // NOTE we'll need to have:
-    // - Base routes (defined from configuration based on BRAND)
-    // - Autogenerated routes (nested somewhere)
-    // - Service Routes (dynamically added)
     this.routes = [];
     this.$scope.$watch(() => this.navigationService.query(), (routes) => {
       this.routes = routes;
diff --git a/src/app/datasources/helpers/model-discoverer.service.ts b/src/app/datasources/helpers/model-discoverer.service.ts
index deaed33..da6f265 100644
--- a/src/app/datasources/helpers/model-discoverer.service.ts
+++ b/src/app/datasources/helpers/model-discoverer.service.ts
@@ -62,6 +62,7 @@
 
         const pArray = [];
         _.forEach(modelsDef, (model: IXosModeldef) => {
+          this.$log.debug(`[XosModelDiscovererService] Loading: ${model.name}`);
           let p = this.cacheModelEntries(model)
             .then(model => {
               return this.addState(model);
@@ -167,15 +168,20 @@
       },
       component: 'xosCrud',
     };
-    this.XosRuntimeStates.addState(
-      this.stateNameFromModel(model),
-      state
-    );
 
-    // extend model
-    model.clientUrl = `${this.serviceNameFromAppName(model.app)}${clientUrl}`;
+    try {
+      this.XosRuntimeStates.addState(
+        this.stateNameFromModel(model),
+        state
+      );
 
-    d.resolve(model);
+      // extend model
+      model.clientUrl = `${this.serviceNameFromAppName(model.app)}${clientUrl}`;
+
+      d.resolve(model);
+    } catch (e) {
+      d.reject(e);
+    }
     return d.promise;
   }
 
@@ -186,13 +192,17 @@
 
     const parentState: string = this.getParentStateFromModel(model);
 
-    this.XosNavigationService.add({
-      label: this.ConfigHelpers.pluralize(model.name),
-      state: stateName,
-      parent: parentState
-    });
+    try {
+      this.XosNavigationService.add({
+        label: this.ConfigHelpers.pluralize(model.name),
+        state: stateName,
+        parent: parentState
+      });
+      d.resolve(model);
+    } catch (e) {
+      d.reject(e);
+    }
 
-    d.resolve(model);
 
     return d.promise;
   }
