diff --git a/src/app/AppModule.ts b/src/app/AppModule.ts
index 02fa736..5cfa65b 100644
--- a/src/app/AppModule.ts
+++ b/src/app/AppModule.ts
@@ -19,7 +19,7 @@
  * @file Instance Module file
  */
 import { CommonModule, LOCATION_INITIALIZED } from '@angular/common';
-import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';
+import { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
 import { APP_INITIALIZER, Injector, NgModule } from '@angular/core';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 import { BrowserModule } from '@angular/platform-browser';
@@ -143,7 +143,7 @@
         }),
         NgbModule,
         NgSelectModule,
-        RouterModule.forRoot(appRoutes, { useHash: false }),
+        RouterModule.forRoot(appRoutes, { useHash: false, relativeLinkResolution: 'legacy' }),
         NgIdleKeepaliveModule.forRoot(),
         LoaderModule
     ],
diff --git a/src/app/dashboard/DashboardComponent.ts b/src/app/dashboard/DashboardComponent.ts
index 31a8516..8df0e7c 100644
--- a/src/app/dashboard/DashboardComponent.ts
+++ b/src/app/dashboard/DashboardComponent.ts
@@ -107,7 +107,7 @@
     public message: string = 'PLEASEWAIT';
 
     /** List of NS Success Instances @public */
-    public nsRunningInstance: {}[] = [];
+    public nsRunningInstance: string[] = [];
 
     /** List of color for Instances @private */
     private backgroundColor: string[] = [];
@@ -281,7 +281,7 @@
             if (operationalStatus === 'failed' || configStatus === 'failed') {
                 this.nsFailedInstances.push(nsdInstanceData);
             } else if (operationalStatus === 'running' && configStatus === 'configured') {
-                this.nsRunningInstance.push({ name: nsdInstanceData.name, id: nsdInstanceData.id });
+                this.nsRunningInstance.push(nsdInstanceData.name);
                 this.backgroundColor.push(this.sharedService.generateColor());
                 this.createdTimes.push(((nsdInstanceData._admin.created).toString()).slice(0, this.sliceLimit));
             }
@@ -315,28 +315,10 @@
                         el.style.cursor = item[0] ? 'pointer' : 'default';
                     }
                 },
-                onClick(evt: Event, item: {}): void {
-                    if (item[0] !== undefined) {
-                        const location: string = '/instances/ns/' + item[0]._chart.data.labels[item[0]._index].id;
-                        window.open(location);
-                    }
-                },
                 legend: { display: false },
                 scales: {
                     xAxes: [{
                         display: true,
-                        ticks: {
-                            // tslint:disable-next-line: no-any
-                            callback: (label: any, index: number, labels: string): string => {
-                                const length: number = 20;
-                                const ending: string = '...';
-                                if (label.name.length > length) {
-                                    return label.name.substring(0, length - ending.length) + ending;
-                                } else {
-                                    return label.name;
-                                }
-                            }
-                        },
                         scaleLabel: {
                             display: true,
                             labelString: this.translateService.instant('INSTANCES')
diff --git a/src/app/login/LoginComponent.scss b/src/app/login/LoginComponent.scss
index 28ac159..293e50c 100644
--- a/src/app/login/LoginComponent.scss
+++ b/src/app/login/LoginComponent.scss
@@ -21,7 +21,7 @@
 .login-container {
   @include wh-value(100%, 100vh);
   @include flexbox(flex, center, null, null, center, null);
-  @include background(url("../../assets/images/login_background.jpg"), null, cover, no-repeat, center);
+  @include background(url("../../images/login_background.jpg"), null, cover, no-repeat, center);
   background-attachment: fixed;
   flex-wrap: wrap;
   .wrap-login {
