diff --git a/src/app/core/services/helpers/config.helpers.spec.ts b/src/app/core/services/helpers/config.helpers.spec.ts
index ed1cc3b..f06fc4f 100644
--- a/src/app/core/services/helpers/config.helpers.spec.ts
+++ b/src/app/core/services/helpers/config.helpers.spec.ts
@@ -76,7 +76,9 @@
       name: 'updated',
       validators: []
     },
-  ]
+  ],
+  description: '',
+  verbose_name: ''
 };
 
 describe('The ConfigHelpers service', () => {
@@ -190,7 +192,7 @@
 
   describe('the modelFieldsToColumnsCfg method', () => {
     it('should return an array of columns', () => {
-      const cols = service.modelFieldsToColumnsCfg({fields: model.fields, name: 'testUrl', app: 'test'});
+      const cols = service.modelFieldsToColumnsCfg({fields: model.fields, name: 'testUrl', app: 'test', description: '', verbose_name: ''});
       expect(cols[0].label).toBe('Id');
       expect(cols[0].prop).toBe('id');
       expect(cols[0].link).toBeDefined();
diff --git a/src/app/datasources/helpers/model-discoverer.service.ts b/src/app/datasources/helpers/model-discoverer.service.ts
index bab0873..c6dcb7e 100644
--- a/src/app/datasources/helpers/model-discoverer.service.ts
+++ b/src/app/datasources/helpers/model-discoverer.service.ts
@@ -37,6 +37,8 @@
   clientUrl?: string; // the view url
   tableCfg?: IXosTableCfg;
   formCfg?: IXosFormCfg;
+  description: string;
+  verbose_name: string;
 }
 
 // Service
@@ -237,8 +239,9 @@
     const parentState: string = this.getParentStateFromModel(model);
 
     try {
+      const name = model.verbose_name ? model.verbose_name : model.name;
       this.XosNavigationService.add({
-        label: this.ConfigHelpers.pluralize(model.name),
+        label: this.ConfigHelpers.pluralize(name),
         state: stateName,
         parent: parentState
       });
diff --git a/src/app/datasources/helpers/model.discoverer.service.spec.ts b/src/app/datasources/helpers/model.discoverer.service.spec.ts
index 94a98e6..7a9e54f 100644
--- a/src/app/datasources/helpers/model.discoverer.service.spec.ts
+++ b/src/app/datasources/helpers/model.discoverer.service.spec.ts
@@ -31,7 +31,9 @@
     ],
     relations: [],
     name: 'Node',
-    app: 'core'
+    app: 'core',
+    description: '',
+    verbose_name: ''
   },
   {
     fields: [
@@ -40,7 +42,9 @@
     ],
     relations: [],
     name: 'VSGTenant',
-    app: 'service.vsg'
+    app: 'service.vsg',
+    description: '',
+    verbose_name: ''
   }
 ];
 
@@ -130,7 +134,9 @@
     const model = {
       name: 'Node',
       app: 'core',
-      fields: []
+      fields: [],
+      description: '',
+      verbose_name: ''
     };
     expect(service.getApiUrlFromModel(model)).toBe('/core/nodes');
   });
@@ -139,7 +145,9 @@
     const model = {
       name: 'Tenant',
       app: 'services.test',
-      fields: []
+      fields: [],
+      description: '',
+      verbose_name: ''
     };
     expect(service.getApiUrlFromModel(model)).toBe('/test/tenants');
   });
@@ -239,6 +247,13 @@
       state: 'xos.vsg.tenant',
       parent: 'xos.vsg'
     });
+
+    service['addNavItem']({name: 'Tenant', verbose_name: 'Verbose', app: 'services.vsg'});
+    expect(MockXosNavigationService.add).toHaveBeenCalledWith({
+      label: 'Verboses',
+      state: 'xos.vsg.tenant',
+      parent: 'xos.vsg'
+    });
   });
 
   it('should cache a model', () => {
diff --git a/src/app/datasources/helpers/search.service.ts b/src/app/datasources/helpers/search.service.ts
index 66748b1..80cef29 100644
--- a/src/app/datasources/helpers/search.service.ts
+++ b/src/app/datasources/helpers/search.service.ts
@@ -66,7 +66,7 @@
   public search(query: string): IXosSearchResult[] {
     this.$log.debug(`[XosSearchService] Searching for: ${query}`);
     const routes: IXosSearchResult[] = _.filter(this.states, s => {
-      return s.label.toLowerCase().indexOf(query) > -1;
+      return s.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
     }).map(r => {
       r.type = 'View';
       return r;
diff --git a/src/app/datasources/rest/modeldefs.rest.ts b/src/app/datasources/rest/modeldefs.rest.ts
index 981cac2..300b71b 100644
--- a/src/app/datasources/rest/modeldefs.rest.ts
+++ b/src/app/datasources/rest/modeldefs.rest.ts
@@ -42,6 +42,8 @@
   relations?: IXosModelDefsRelation[];
   name: string;
   app: string;
+  description: string;
+  verbose_name: string;
 }
 
 export interface IXosModeldefsService {
diff --git a/src/app/views/crud/crud.html b/src/app/views/crud/crud.html
index adeaaa4..b347c31 100644
--- a/src/app/views/crud/crud.html
+++ b/src/app/views/crud/crud.html
@@ -22,16 +22,17 @@
             <div class="pull-right text-right" style="line-height: 14px">
                 <!--<small>UI Elements<br>General<br> <span class="c-white">Grid system</span></small>-->
                 <a class="btn btn-default" ng-if="vm.list" href="{{vm.baseUrl}}add">Add</a>
-                <a class="btn btn-default" ng-if="!vm.list" href="{{vm.baseUrl}}">Back to {{vm.title.toLowerCase()}} list</a>
+                <a class="btn btn-default" ng-if="!vm.list" href="{{vm.baseUrl}}">Back to {{vm.pluralTitle.toLowerCase()}} list</a>
             </div>
             <div class="header-icon">
                 <i class="pe page-header-icon pe-7s-note2"></i>
             </div>
             <div class="header-title">
-                <h3>{{vm.title}}</h3>
-                <!--<small>-->
-                    <!--Responsive, mobile first fluid grid system.-->
-                <!--</small>-->
+                <h3 ng-if="vm.list">{{vm.pluralTitle}}</h3>
+                <h3 ng-if="!vm.list">{{vm.singularTitle}}</h3>
+                <small>
+                    {{vm.modelDef.description}}
+                </small>
             </div>
         </div>
         <hr>
diff --git a/src/app/views/crud/crud.ts b/src/app/views/crud/crud.ts
index 325790f..bcac6a9 100644
--- a/src/app/views/crud/crud.ts
+++ b/src/app/views/crud/crud.ts
@@ -22,7 +22,7 @@
 import * as _ from 'lodash';
 import {IXosResourceService} from '../../datasources/rest/model.rest';
 import {IStoreHelpersService} from '../../datasources/helpers/store.helpers';
-import {IXosModelDiscovererService} from '../../datasources/helpers/model-discoverer.service';
+import {IXosModelDiscovererService, IXosModel} from '../../datasources/helpers/model-discoverer.service';
 import './crud.scss';
 import {IXosCrudRelationService} from './crud.relations.service';
 import {IXosDebugService, IXosDebugStatus} from '../../core/debug/debug.service';
@@ -57,9 +57,12 @@
   public formCfg: any;
   public baseUrl: string;
   public list: boolean;
-  public title: string;
+  public modelName: string;
+  public pluralTitle: string;
+  public singularTitle: string;
   public tableData: any[];
-  public model: any;
+  public model: any; // holds the real model
+  public modelDef: IXosModel;
   public related: {manytoone: IXosModelRelation[], onetomany: IXosModelRelation[]} = {
     manytoone: [],
     onetomany: []
@@ -87,16 +90,18 @@
     this.$log.info('[XosCrud] Setup', $state.current.data);
 
     this.data = this.$state.current.data;
-    this.model = this.XosModelDiscovererService.get(this.data.model);
-    this.title = this.ConfigHelpers.pluralize(this.data.model);
+    this.modelDef = this.XosModelDiscovererService.get(this.data.model);
+    this.modelName = this.modelDef.verbose_name ? this.modelDef.verbose_name : this.modelDef.name;
+    this.pluralTitle = this.ConfigHelpers.pluralize(this.modelName);
+    this.singularTitle = this.ConfigHelpers.pluralize(this.modelName, 1);
 
     this.list = true;
 
     // TODO get the proper URL from model discoverer
-    this.baseUrl = '#/' + this.model.clientUrl.replace(':id?', '');
+    this.baseUrl = '#/' + this.modelDef.clientUrl.replace(':id?', '');
 
-    this.tableCfg = this.model.tableCfg;
-    this.formCfg = this.model.formCfg;
+    this.tableCfg = this.modelDef.tableCfg;
+    this.formCfg = this.modelDef.formCfg;
 
     this.debugTab = this.XosDebug.status.modelsTab;
     this.$scope.$on('xos.debug.status', (e, status: IXosDebugStatus) => {
@@ -109,7 +114,6 @@
         (event) => {
           // NOTE Observable mess with $digest cycles, we need to schedule the expression later
           $scope.$evalAsync(() => {
-            this.title = this.ConfigHelpers.pluralize(this.data.model, event.length);
             this.tableData = event;
 
             // if it is a detail page for an existing model
