diff --git a/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.html b/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.html
index 4a07787..77d5967 100644
--- a/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.html
+++ b/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.html
@@ -14,9 +14,10 @@
 ~ limitations under the License.
 -->
 <div id="ov-app" (dragover)="onDragOver($event)" (dragleave)="onDragLeave($event)" (drop)="onDrop($event)">
+    <onos-flash id="appMsgFlash" message="{{ alertMsg }}" dwell="5000" warning="true" (closed)="alertMsg = ''"></onos-flash>
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
+    <onos-confirm title="{{ lionFn('dlg_confirm_action') }}" message="{{ confirmMsg }}" warning="{{ strongWarning }}" (chosen)="dOk($event)"></onos-confirm>
     <div class="tabular-header">
-        <onos-flash id="appMsgFlash" message="{{ alertMsg }}" dwell="5000" warning="true" (closed)="alertMsg = ''"></onos-flash>
-        <onos-confirm title="{{ lionFn('dlg_confirm_action') }}" message="{{ confirmMsg }}" warning="{{ strongWarning }}" (chosen)="dOk($event)"></onos-confirm>
         <h2>
             {{lionFn('title_apps')}}
             ({{ tableData.length }}
diff --git a/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.spec.ts b/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.spec.ts
index 5864743..3e541bb 100644
--- a/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.spec.ts
@@ -25,16 +25,14 @@
     FnService,
     IconService,
     LionService,
-    LoadingService,
     LogService,
-    TableBaseImpl, TableResponse, TableFilter, SortParams, SortDir,
     UrlFnService,
     WebSocketService,
     TableFilterPipe,
     ConfirmComponent,
     FlashComponent,
     IconComponent,
-    ThemeService,
+    ThemeService, LoadingComponent,
 } from 'gui2-fw-lib';
 
 import { AppsComponent } from './apps.component';
@@ -57,12 +55,6 @@
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockThemeService { }
 
 class MockUrlFnService { }
@@ -118,7 +110,8 @@
                 IconComponent,
                 AppsDetailsComponent,
                 TableFilterPipe,
-                FlashComponent
+                FlashComponent,
+                LoadingComponent
             ],
             providers: [
                 { provide: FnService, useValue: fs },
@@ -133,7 +126,6 @@
                         };
                     })
                 },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: LogService, useValue: logSpy },
                 { provide: ThemeService, useClass: MockThemeService },
                 { provide: UrlFnService, useClass: MockUrlFnService },
diff --git a/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.ts b/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.ts
index c933053..59d91ed 100644
--- a/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.ts
+++ b/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.ts
@@ -14,18 +14,16 @@
  * limitations under the License.
  */
 import { Component, OnInit, OnDestroy, Inject } from '@angular/core';
-import { HttpClient, HttpErrorResponse } from '@angular/common/http';
+import { HttpClient } from '@angular/common/http';
 
 import {
     FnService,
     IconService,
     LionService,
-    LoadingService,
     LogService,
-    TableBaseImpl, TableResponse, TableFilter, SortParams, SortDir,
+    TableBaseImpl, TableResponse, SortDir,
     UrlFnService,
-    WebSocketService,
-    TableFilterPipe
+    WebSocketService
 } from 'gui2-fw-lib';
 
 const INSTALLED = 'INSTALLED';
@@ -133,14 +131,13 @@
         protected fs: FnService,
         private is: IconService,
         private lion: LionService,
-        protected ls: LoadingService,
         protected log: LogService,
         private ufs: UrlFnService,
         protected wss: WebSocketService,
         @Inject('Window') private window: Window,
         private httpClient: HttpClient
     ) {
-        super(fs, null, log, wss, 'app');
+        super(fs, log, wss, 'app');
         this.responseCallback = this.appResponseCb;
         this.parentSelCb =  this.rowSelection;
         // pre-populate sort so active apps are at the top of the list
diff --git a/web/gui2/src/main/webapp/app/view/apps/appsdetails/appsdetails.component.ts b/web/gui2/src/main/webapp/app/view/apps/appsdetails/appsdetails.component.ts
index d01d409..0aa6c7c 100644
--- a/web/gui2/src/main/webapp/app/view/apps/appsdetails/appsdetails.component.ts
+++ b/web/gui2/src/main/webapp/app/view/apps/appsdetails/appsdetails.component.ts
@@ -18,7 +18,6 @@
 import {
     FnService,
     LionService,
-    LoadingService,
     LogService,
     DetailsPanelBaseImpl,
     WebSocketService
@@ -66,12 +65,11 @@
     lionFn; // Function
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected wss: WebSocketService,
         protected lion: LionService,
     ) {
-        super(fs, ls, log, wss, 'app');
+        super(fs, log, wss, 'app');
         if (this.lion.ubercache.length === 0) {
             this.lionFn = this.dummyLion;
             this.lion.loadCbs.set('appsdetails', () => this.doLion());
diff --git a/web/gui2/src/main/webapp/app/view/cluster/cluster-details.directive.ts b/web/gui2/src/main/webapp/app/view/cluster/cluster-details.directive.ts
index 17e5842..80fec4d 100644
--- a/web/gui2/src/main/webapp/app/view/cluster/cluster-details.directive.ts
+++ b/web/gui2/src/main/webapp/app/view/cluster/cluster-details.directive.ts
@@ -19,7 +19,6 @@
     LogService,
     MastService,
     DetailsPanelBaseImpl,
-    LoadingService,
     IconService,
     LionService,
     PanelService,
@@ -87,7 +86,6 @@
     lionFn; // Function
 
     constructor(protected fs: FnService,
-                protected ls: LoadingService,
                 protected is: IconService,
                 protected lion: LionService,
                 protected wss: WebSocketService,
@@ -96,7 +94,7 @@
                 protected ps: PanelService,
                 protected el: ElementRef,
                 @Inject('Window') private w: Window) {
-        super(fs, ls, log, wss, 'cluster');
+        super(fs, log, wss, 'cluster');
 
         if (this.lion.ubercache.length === 0) {
             this.lionFn = this.dummyLion;
diff --git a/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.html b/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.html
index 1bd61ec..1917d02 100644
--- a/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.html
+++ b/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-cluster">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>
             {{lionFn('title_cluster_nodes')}}
@@ -69,4 +70,4 @@
             </table>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.spec.ts b/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.spec.ts
index 4756b4e..6e976b4 100644
--- a/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.spec.ts
@@ -19,7 +19,6 @@
 
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     IconComponent,
@@ -27,7 +26,7 @@
     GlyphService,
     MastService,
     NavService,
-    ThemeService,
+    ThemeService, LoadingComponent,
 
 } from 'gui2-fw-lib';
 
@@ -54,14 +53,6 @@
 class MockGlyphService {
 }
 
-class MockLoadingService {
-    startAnim() {
-    }
-
-    stop() {
-    }
-}
-
 class MockNavService {
 }
 
@@ -116,12 +107,11 @@
 
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule, FormsModule, RouterTestingModule],
-            declarations: [ClusterComponent, IconComponent],
+            declarations: [ClusterComponent, IconComponent, LoadingComponent],
             providers: [
                 {provide: FnService, useValue: fs},
                 {provide: IconService, useClass: MockIconService},
                 {provide: GlyphService, useClass: MockGlyphService},
-                {provide: LoadingService, useClass: MockLoadingService},
                 {provide: MastService, useClass: MockMastService},
                 {provide: NavService, useClass: MockNavService},
                 {provide: LogService, useValue: logSpy},
diff --git a/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.ts b/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.ts
index f72b1d0..ee74446 100644
--- a/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.ts
+++ b/web/gui2/src/main/webapp/app/view/cluster/cluster/cluster.component.ts
@@ -16,7 +16,6 @@
 import {Component, OnDestroy, OnInit} from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     LionService,
@@ -59,12 +58,11 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected lion: LionService,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'cluster');
+        super(fs, log, wss, 'cluster');
         this.responseCallback = this.clusterResponseCb;
 
         this.sortParams = {
diff --git a/web/gui2/src/main/webapp/app/view/device/device/device.component.html b/web/gui2/src/main/webapp/app/view/device/device/device.component.html
index 7a22076..237b611 100644
--- a/web/gui2/src/main/webapp/app/view/device/device/device.component.html
+++ b/web/gui2/src/main/webapp/app/view/device/device/device.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-device">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>Devices ({{ tableData.length }} total)</h2>
         <div class="ctrl-btns">
@@ -118,4 +119,4 @@
     </div>
 
     <onos-devicedetails class="floatpanels" id="{{ selId }}" (closeEvent)="deselectRow($event)"></onos-devicedetails>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/device/device/device.component.spec.ts b/web/gui2/src/main/webapp/app/view/device/device/device.component.spec.ts
index 44bb0c3..5b1355d 100644
--- a/web/gui2/src/main/webapp/app/view/device/device/device.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/device/device/device.component.spec.ts
@@ -25,13 +25,12 @@
     IconService,
     GlyphService,
     IconComponent,
-    LoadingService,
     LogService,
     NavService,
     MastService,
     TableFilterPipe,
     ThemeService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { of } from 'rxjs';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@@ -52,11 +51,6 @@
 
 class MockGlyphService { }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-}
-
 class MockNavService { }
 
 class MockMastService { }
@@ -100,12 +94,17 @@
 
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule, FormsModule, RouterTestingModule],
-            declarations: [DeviceComponent, IconComponent, TableFilterPipe, DeviceDetailsComponent],
+            declarations: [
+                DeviceComponent,
+                IconComponent,
+                TableFilterPipe,
+                DeviceDetailsComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
                 { provide: GlyphService, useClass: MockGlyphService },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: MastService, useClass: MockMastService },
                 { provide: NavService, useClass: MockNavService },
                 { provide: LogService, useValue: logSpy },
diff --git a/web/gui2/src/main/webapp/app/view/device/device/device.component.ts b/web/gui2/src/main/webapp/app/view/device/device/device.component.ts
index e5b40c3..d810319 100644
--- a/web/gui2/src/main/webapp/app/view/device/device/device.component.ts
+++ b/web/gui2/src/main/webapp/app/view/device/device/device.component.ts
@@ -17,10 +17,8 @@
 
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
-    LionService,
     SortDir, TableBaseImpl, TableResponse
 } from 'gui2-fw-lib';
 
@@ -72,13 +70,12 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected as: ActivatedRoute,
         protected router: Router,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'device');
+        super(fs, log, wss, 'device');
         this.responseCallback = this.deviceResponseCb;
 
         this.as.queryParams.subscribe(params => {
diff --git a/web/gui2/src/main/webapp/app/view/device/devicedetails/devicedetails.component.ts b/web/gui2/src/main/webapp/app/view/device/devicedetails/devicedetails.component.ts
index 0d0eedb..a5c750a 100644
--- a/web/gui2/src/main/webapp/app/view/device/devicedetails/devicedetails.component.ts
+++ b/web/gui2/src/main/webapp/app/view/device/devicedetails/devicedetails.component.ts
@@ -18,8 +18,6 @@
 import {
     FnService,
     IconService,
-    LionService,
-    LoadingService,
     LogService,
     DetailsPanelBaseImpl,
     WebSocketService
@@ -64,12 +62,11 @@
     @Input() id: string;
 
     constructor(protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected is: IconService,
         protected wss: WebSocketService
     ) {
-        super(fs, ls, log, wss, 'device');
+        super(fs, log, wss, 'device');
     }
 
     ngOnInit() {
diff --git a/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.html b/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.html
index a1b23df..a0b97b7 100644
--- a/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.html
+++ b/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-flow" xmlns="http://www.w3.org/1999/html">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>
             {{lionFn('title_flows')}} {{id}} ({{ tableData.length }} {{ lionFn('total') }})
@@ -133,4 +134,4 @@
         </div>
     </div>
     <onos-flowdetails class="floatpanels" flowId="{{ selId }}" appId="{{ selRowAppId }}" (closeEvent)="deselectRow($event)"></onos-flowdetails>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.spec.ts b/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.spec.ts
index e049fcf..a758553 100644
--- a/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.spec.ts
@@ -24,13 +24,12 @@
     GlyphService,
     IconComponent,
     LionService,
-    LoadingService,
     LogService,
     NavService,
     MastService,
     TableFilterPipe,
     ThemeService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@@ -53,11 +52,6 @@
 
 class MockGlyphService { }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-}
-
 class MockNavService { }
 
 class MockMastService { }
@@ -111,7 +105,13 @@
 
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule, FormsModule, RouterTestingModule],
-            declarations: [FlowComponent, IconComponent, TableFilterPipe, FlowDetailsComponent],
+            declarations: [
+                FlowComponent,
+                IconComponent,
+                TableFilterPipe,
+                FlowDetailsComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
@@ -125,7 +125,6 @@
                         };
                     })
                 },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: MastService, useClass: MockMastService },
                 { provide: NavService, useClass: MockNavService },
                 { provide: LogService, useValue: logSpy },
diff --git a/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.ts b/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.ts
index 7a6c892..a54e0f6 100644
--- a/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.ts
+++ b/web/gui2/src/main/webapp/app/view/flow/flow/flow.component.ts
@@ -17,7 +17,6 @@
 import { Component, OnDestroy, OnInit } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     LionService,
@@ -70,13 +69,12 @@
     pipeconfTip: string;
 
     constructor(protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected as: ActivatedRoute,
         protected wss: WebSocketService,
         protected lion: LionService,
     ) {
-        super(fs, ls, log, wss, 'flow');
+        super(fs, log, wss, 'flow');
         this.as.queryParams.subscribe(params => {
             this.id = params['devId'];
 
diff --git a/web/gui2/src/main/webapp/app/view/flow/flowdetails/flowdetails/flowdetails.component.ts b/web/gui2/src/main/webapp/app/view/flow/flowdetails/flowdetails/flowdetails.component.ts
index 36d1b34..fbb3592 100644
--- a/web/gui2/src/main/webapp/app/view/flow/flowdetails/flowdetails/flowdetails.component.ts
+++ b/web/gui2/src/main/webapp/app/view/flow/flowdetails/flowdetails/flowdetails.component.ts
@@ -16,9 +16,7 @@
 import { Component, OnInit, OnDestroy, OnChanges, Input, Output, EventEmitter } from '@angular/core';
 import {
     FnService,
-    IconService,
     LionService,
-    LoadingService,
     LogService,
     DetailsPanelBaseImpl,
     WebSocketService
@@ -70,12 +68,11 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected wss: WebSocketService,
         protected lion: LionService,
     ) {
-        super(fs, ls, log, wss, 'flow');
+        super(fs, log, wss, 'flow');
         if (this.lion.ubercache.length === 0) {
             this.lionFn = this.dummyLion;
             this.lion.loadCbs.set('flowdetails', () => this.doLion());
diff --git a/web/gui2/src/main/webapp/app/view/group/group/group.component.html b/web/gui2/src/main/webapp/app/view/group/group/group.component.html
index 4b0afbb..48f85e2 100644
--- a/web/gui2/src/main/webapp/app/view/group/group/group.component.html
+++ b/web/gui2/src/main/webapp/app/view/group/group/group.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-group" xmlns="http://www.w3.org/1999/html">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>
             Groups for Device {{id}} ({{tableData.length}} total)
@@ -121,4 +122,4 @@
             </table>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/group/group/group.component.spec.ts b/web/gui2/src/main/webapp/app/view/group/group/group.component.spec.ts
index 2b0e4e6..c8bd2c8 100644
--- a/web/gui2/src/main/webapp/app/view/group/group/group.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/group/group/group.component.spec.ts
@@ -20,16 +20,12 @@
     ConsoleLoggerService,
     FnService,
     IconService,
-    GlyphService,
     IconComponent,
-    LoadingService,
     LogService,
-    NavService,
-    MastService,
     TableFilterPipe,
     ThemeService,
     UrlFnService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { ActivatedRoute, Params } from '@angular/router';
 import { of } from 'rxjs';
@@ -46,18 +42,10 @@
     }
 }
 
-class MockFnService { }
-
 class MockIconService {
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockThemeService { }
 
 class MockUrlFnService { }
@@ -108,11 +96,15 @@
 
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule, FormsModule, RouterTestingModule],
-            declarations: [GroupComponent, IconComponent, TableFilterPipe],
+            declarations: [
+                GroupComponent,
+                IconComponent,
+                TableFilterPipe,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: LogService, useValue: log },
                 { provide: ThemeService, useClass: MockThemeService },
                 { provide: UrlFnService, useClass: MockUrlFnService },
diff --git a/web/gui2/src/main/webapp/app/view/group/group/group.component.ts b/web/gui2/src/main/webapp/app/view/group/group/group.component.ts
index c7fa497..0d2efc5 100644
--- a/web/gui2/src/main/webapp/app/view/group/group/group.component.ts
+++ b/web/gui2/src/main/webapp/app/view/group/group/group.component.ts
@@ -16,10 +16,8 @@
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
-    LionService,
     SortDir, TableBaseImpl, TableResponse
 } from 'gui2-fw-lib';
 import { ActivatedRoute } from '@angular/router';
@@ -67,11 +65,10 @@
     constructor(
         protected log: LogService,
         protected fs: FnService,
-        protected ls: LoadingService,
         protected wss: WebSocketService,
         protected ar: ActivatedRoute,
     ) {
-        super(fs, ls, log, wss, 'group');
+        super(fs, log, wss, 'group');
         this.ar.queryParams.subscribe(params => {
             this.id = params['devId'];
         });
diff --git a/web/gui2/src/main/webapp/app/view/host/host/host.component.html b/web/gui2/src/main/webapp/app/view/host/host/host.component.html
index 7c7e32c..d8e92f8 100644
--- a/web/gui2/src/main/webapp/app/view/host/host/host.component.html
+++ b/web/gui2/src/main/webapp/app/view/host/host/host.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-host">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>Hosts ({{tableData.length}} total)</h2>
         <div class="ctrl-btns">
@@ -73,4 +74,4 @@
         </div>
     </div>
     <onos-hostdetails class="floatpanels" id="{{ selId }}" (closeEvent)="deselectRow($event)"></onos-hostdetails>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/host/host/host.component.spec.ts b/web/gui2/src/main/webapp/app/view/host/host/host.component.spec.ts
index d482cb2..8cbf464 100644
--- a/web/gui2/src/main/webapp/app/view/host/host/host.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/host/host/host.component.spec.ts
@@ -22,16 +22,12 @@
 import {
     FnService,
     IconService,
-    GlyphService,
     IconComponent,
-    LoadingService,
     LogService,
-    NavService,
-    MastService,
     TableFilterPipe,
     ThemeService,
     UrlFnService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { HostComponent } from './host.component';
 import { HostDetailsComponent } from '../hostdetails/hostdetails.component';
@@ -45,8 +41,6 @@
     }
 }
 
-class MockFnService { }
-
 class MockIconService {
     loadIconDef() { }
 }
@@ -106,11 +100,16 @@
 
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule, FormsModule],
-            declarations: [HostComponent, HostDetailsComponent, IconComponent, TableFilterPipe],
+            declarations: [
+                HostComponent,
+                HostDetailsComponent,
+                IconComponent,
+                TableFilterPipe,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: LogService, useValue: logSpy },
                 { provide: ThemeService, useClass: MockThemeService },
                 { provide: UrlFnService, useClass: MockUrlFnService },
diff --git a/web/gui2/src/main/webapp/app/view/host/host/host.component.ts b/web/gui2/src/main/webapp/app/view/host/host/host.component.ts
index 3ea91c7..bf692a2 100644
--- a/web/gui2/src/main/webapp/app/view/host/host/host.component.ts
+++ b/web/gui2/src/main/webapp/app/view/host/host/host.component.ts
@@ -16,7 +16,6 @@
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     SortDir, TableBaseImpl, TableResponse
@@ -50,11 +49,10 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'host');
+        super(fs, log, wss, 'host');
         this.responseCallback = this.hostResponseCb;
         this.sortParams = {
             firstCol: 'name',
diff --git a/web/gui2/src/main/webapp/app/view/host/hostdetails/hostdetails.component.ts b/web/gui2/src/main/webapp/app/view/host/hostdetails/hostdetails.component.ts
index 18cf106..5e70270 100644
--- a/web/gui2/src/main/webapp/app/view/host/hostdetails/hostdetails.component.ts
+++ b/web/gui2/src/main/webapp/app/view/host/hostdetails/hostdetails.component.ts
@@ -18,7 +18,6 @@
 import { trigger, state, style, animate, transition } from '@angular/animations';
 import {
     FnService,
-    LoadingService,
     LogService,
     DetailsPanelBaseImpl,
     WebSocketService
@@ -62,11 +61,10 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected wss: WebSocketService
     ) {
-        super(fs, ls, log, wss, 'host');
+        super(fs, log, wss, 'host');
     }
 
     ngOnInit() {
diff --git a/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.html b/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.html
index 98b2084..040b3c2 100644
--- a/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.html
+++ b/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-intent" xmlns="http://www.w3.org/1999/html">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <onos-flash id="intentActionFlash" message="{{ intentActionMsg }}"></onos-flash>
         <onos-confirm message="{{ warnMsg }}" (chosen)="dOk($event)"></onos-confirm>
@@ -106,4 +107,4 @@
             </table>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.spec.ts b/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.spec.ts
index 9a0a082..8a5a9a5 100644
--- a/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.spec.ts
@@ -25,10 +25,9 @@
     IconComponent,
     ConfirmComponent,
     FlashComponent,
-    LoadingService,
     LogService,
     TableFilterPipe,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 
 import { of } from 'rxjs';
@@ -47,12 +46,6 @@
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockWebSocketService {
     createWebSocket() { }
     isConnected() { return false; }
@@ -92,11 +85,17 @@
         fs = new FnService(ar, logSpy, windowMock);
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule, FormsModule],
-            declarations: [IntentComponent, IconComponent, TableFilterPipe, ConfirmComponent, FlashComponent],
+            declarations: [
+                IntentComponent,
+                IconComponent,
+                TableFilterPipe,
+                ConfirmComponent,
+                FlashComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: LogService, useValue: logSpy },
                 { provide: WebSocketService, useClass: MockWebSocketService },
                 { provide: 'Window', useValue: windowMock },
diff --git a/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.ts b/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.ts
index 6719564..585514d 100644
--- a/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.ts
+++ b/web/gui2/src/main/webapp/app/view/intent/intent/intent.component.ts
@@ -16,7 +16,6 @@
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     SortDir, TableBaseImpl, TableResponse
@@ -88,10 +87,9 @@
     constructor(
         protected log: LogService,
         protected fs: FnService,
-        protected ls: LoadingService,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'intent', 'key');
+        super(fs, log, wss, 'intent', 'key');
         this.responseCallback = this.intentResponseCb;
         this.parentSelCb = this.rowSelection;
         this.brief = true;
diff --git a/web/gui2/src/main/webapp/app/view/link/link/link.component.html b/web/gui2/src/main/webapp/app/view/link/link/link.component.html
index e90ede8..890a46b 100644
--- a/web/gui2/src/main/webapp/app/view/link/link/link.component.html
+++ b/web/gui2/src/main/webapp/app/view/link/link/link.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-link">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>Links ({{tableData.length}} total)</h2>
         <div class="ctrl-btns">
@@ -63,4 +64,4 @@
             </table>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/link/link/link.component.spec.ts b/web/gui2/src/main/webapp/app/view/link/link/link.component.spec.ts
index c50ed46..d84a34e 100644
--- a/web/gui2/src/main/webapp/app/view/link/link/link.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/link/link/link.component.spec.ts
@@ -22,12 +22,12 @@
     FnService,
     IconService,
     IconComponent,
-    LoadingService,
     LogService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { DebugElement } from '@angular/core';
 import { By } from '@angular/platform-browser';
+import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
 
 class MockActivatedRoute extends ActivatedRoute {
     constructor(params: Params) {
@@ -40,12 +40,6 @@
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockWebSocketService {
     createWebSocket() { }
     isConnected() { return false; }
@@ -83,11 +77,15 @@
         fs = new FnService(ar, logSpy, windowMock);
 
         TestBed.configureTestingModule({
-            declarations: [LinkComponent, IconComponent],
+            imports: [BrowserAnimationsModule],
+            declarations: [
+                LinkComponent,
+                IconComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: LogService, useValue: logSpy },
                 { provide: WebSocketService, useClass: MockWebSocketService },
             ]
diff --git a/web/gui2/src/main/webapp/app/view/link/link/link.component.ts b/web/gui2/src/main/webapp/app/view/link/link/link.component.ts
index 3e0b21f..fe3da34 100644
--- a/web/gui2/src/main/webapp/app/view/link/link/link.component.ts
+++ b/web/gui2/src/main/webapp/app/view/link/link/link.component.ts
@@ -16,7 +16,6 @@
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     SortDir, TableBaseImpl, TableResponse
@@ -53,11 +52,10 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'link');
+        super(fs, log, wss, 'link');
         this.responseCallback = this.linkResponseCb;
         this.sortParams = {
             firstCol: 'one',
diff --git a/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.html b/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.html
index bfeb407..b5cb7a9 100644
--- a/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.html
+++ b/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-meter">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2> Meter for Device {{id}} ({{tableData.length}} Total )</h2>
 
@@ -98,4 +99,4 @@
             </table>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.spec.ts b/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.spec.ts
index 1337cb8..6a298cf 100644
--- a/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.spec.ts
@@ -23,17 +23,13 @@
 import {
     FnService,
     IconService,
-    GlyphService,
     IconComponent,
     LionService,
-    LoadingService,
     LogService,
-    NavService,
-    MastService,
     TableFilterPipe,
     ThemeService,
     UrlFnService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { of, Subject } from 'rxjs';
 import { } from 'jasmine';
@@ -54,12 +50,6 @@
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockThemeService { }
 
 class MockUrlFnService { }
@@ -117,7 +107,12 @@
 
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule, FormsModule, RouterTestingModule],
-            declarations: [MeterComponent, IconComponent, TableFilterPipe],
+            declarations: [
+                MeterComponent,
+                IconComponent,
+                TableFilterPipe,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
@@ -130,7 +125,6 @@
                         };
                     })
                 },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: LogService, useValue: logSpy },
                 { provide: ThemeService, useClass: MockThemeService },
                 { provide: UrlFnService, useClass: MockUrlFnService },
diff --git a/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.ts b/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.ts
index b534c0a..914e062 100644
--- a/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.ts
+++ b/web/gui2/src/main/webapp/app/view/meter/meter/meter.component.ts
@@ -16,7 +16,6 @@
 import { Component, OnDestroy, OnInit } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     SortDir, TableBaseImpl, TableResponse
@@ -66,11 +65,10 @@
     constructor(
         protected fs: FnService,
         protected log: LogService,
-        protected ls: LoadingService,
         protected as: ActivatedRoute,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'meter');
+        super(fs, log, wss, 'meter');
         this.as.queryParams.subscribe(params => {
             this.id = params['devId'];
         });
diff --git a/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.html b/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.html
index 0adac19..f3e7927 100644
--- a/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.html
+++ b/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-partition">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>Partitions ({{tableData.length}} total)</h2>
         <div class="ctrl-btns">
@@ -53,4 +54,4 @@
             </table>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.spec.ts b/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.spec.ts
index ff43f9e..2757283 100644
--- a/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.spec.ts
@@ -21,14 +21,14 @@
     FnService,
     IconService,
     IconComponent,
-    LoadingService,
     LogService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { of } from 'rxjs';
 import { } from 'jasmine';
 import { RouterTestingModule } from '@angular/router/testing';
 import { PartitionComponent } from './partition.component';
+import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
 
 class MockActivatedRoute extends ActivatedRoute {
     constructor(params: Params) {
@@ -41,12 +41,6 @@
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockWebSocketService {
     createWebSocket() { }
     isConnected() { return false; }
@@ -83,11 +77,14 @@
         fs = new FnService(ar, logSpy, windowMock);
 
         TestBed.configureTestingModule({
-            imports: [RouterTestingModule],
-            declarations: [PartitionComponent, IconComponent],
+            imports: [BrowserAnimationsModule, RouterTestingModule],
+            declarations: [
+                PartitionComponent,
+                IconComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: IconService, useClass: MockIconService },
                 { provide: LogService, useValue: logSpy },
                 { provide: WebSocketService, useClass: MockWebSocketService },
diff --git a/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.ts b/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.ts
index aec5e85..f8518a4 100644
--- a/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.ts
+++ b/web/gui2/src/main/webapp/app/view/partition/partition/partition.component.ts
@@ -16,10 +16,9 @@
 import { Component, OnDestroy, OnInit } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
-    SortDir, TableBaseImpl, TableResponse
+    SortDir, TableBaseImpl
 } from 'gui2-fw-lib';
 import { ActivatedRoute } from '@angular/router';
 
@@ -36,11 +35,10 @@
     constructor(
         protected fs: FnService,
         protected log: LogService,
-        protected ls: LoadingService,
         protected as: ActivatedRoute,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'partition');
+        super(fs, log, wss, 'partition');
         this.sortParams = {
             firstCol: 'name',
             firstDir: SortDir.desc,
diff --git a/web/gui2/src/main/webapp/app/view/port/port/port.component.html b/web/gui2/src/main/webapp/app/view/port/port/port.component.html
index 8625d1a..32501b6 100644
--- a/web/gui2/src/main/webapp/app/view/port/port/port.component.html
+++ b/web/gui2/src/main/webapp/app/view/port/port/port.component.html
@@ -15,6 +15,7 @@
 -->
 <!-- Port partial HTML -->
 <div id="ov-port">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>
             Ports for Device {{devId}} ({{tableData.length}} Total)
@@ -133,4 +134,4 @@
         </div>
         <onos-portdetails class="floatpanels" id="{{ selId }}" devId="{{devId}}" (closeEvent)="deselectRow($event)"></onos-portdetails>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/port/port/port.component.spec.ts b/web/gui2/src/main/webapp/app/view/port/port/port.component.spec.ts
index a53bd1c..0f230c4 100644
--- a/web/gui2/src/main/webapp/app/view/port/port/port.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/port/port/port.component.spec.ts
@@ -24,14 +24,13 @@
     IconService,
     GlyphService,
     IconComponent,
-    LoadingService,
     LogService,
     NavService,
     MastService,
     PrefsService,
     TableFilterPipe,
     ThemeService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { FormsModule } from '@angular/forms';
@@ -39,6 +38,7 @@
 import { DebugElement } from '@angular/core';
 import { By } from '@angular/platform-browser';
 import { PortDetailsComponent } from '../portdetails/portdetails.component';
+
 class MockActivatedRoute extends ActivatedRoute {
     constructor(params: Params) {
         super();
@@ -59,11 +59,6 @@
 
 class MockGlyphService { }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-}
-
 class MockNavService { }
 
 class MockMastService { }
@@ -110,12 +105,17 @@
 
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule, FormsModule, RouterTestingModule],
-            declarations: [PortComponent, IconComponent, TableFilterPipe, PortDetailsComponent],
+            declarations: [
+                PortComponent,
+                IconComponent,
+                TableFilterPipe,
+                PortDetailsComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
                 { provide: GlyphService, useClass: MockGlyphService },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: MastService, useClass: MockMastService },
                 { provide: NavService, useClass: MockNavService },
                 { provide: PrefsService, useClass: MockPrefsService },
diff --git a/web/gui2/src/main/webapp/app/view/port/port/port.component.ts b/web/gui2/src/main/webapp/app/view/port/port/port.component.ts
index 0dcd114..1c66459 100644
--- a/web/gui2/src/main/webapp/app/view/port/port/port.component.ts
+++ b/web/gui2/src/main/webapp/app/view/port/port/port.component.ts
@@ -16,7 +16,6 @@
 import { Component, OnDestroy, OnInit } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     PrefsService,
     WebSocketService,
@@ -82,13 +81,12 @@
     toggleNZTip = 'Toggle non zero port statistics';
 
     constructor(protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected ar: ActivatedRoute,
         protected wss: WebSocketService,
         protected prefs: PrefsService,
     ) {
-        super(fs, ls, log, wss, 'port');
+        super(fs, log, wss, 'port');
         this.ar.queryParams.subscribe(params => {
             this.devId = params['devId'];
 
diff --git a/web/gui2/src/main/webapp/app/view/port/portdetails/portdetails.component.ts b/web/gui2/src/main/webapp/app/view/port/portdetails/portdetails.component.ts
index 0960cd6..76b628e 100644
--- a/web/gui2/src/main/webapp/app/view/port/portdetails/portdetails.component.ts
+++ b/web/gui2/src/main/webapp/app/view/port/portdetails/portdetails.component.ts
@@ -18,7 +18,6 @@
 import {
     FnService,
     IconService,
-    LoadingService,
     LogService,
     DetailsPanelBaseImpl,
     WebSocketService
@@ -60,12 +59,11 @@
     @Input() devId: string;
 
     constructor(protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected is: IconService,
         protected wss: WebSocketService
     ) {
-        super(fs, ls, log, wss, 'port');
+        super(fs, log, wss, 'port');
     }
 
     ngOnInit() {
diff --git a/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.html b/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.html
index 7073556..e8e13c5 100644
--- a/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.html
+++ b/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-processor">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>
             Packet Processors ({{tableData.length}} Processors total)
@@ -53,4 +54,4 @@
             </table>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.spec.ts b/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.spec.ts
index 53ad34c..9bc989f 100644
--- a/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.spec.ts
@@ -21,15 +21,15 @@
     FnService,
     IconService,
     IconComponent,
-    LoadingService,
     LogService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { of } from 'rxjs';
 import { } from 'jasmine';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ProcessorComponent } from './processor.component';
+import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
 
 class MockActivatedRoute extends ActivatedRoute {
     constructor(params: Params) {
@@ -43,12 +43,6 @@
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockWebSocketService {
     createWebSocket() { }
     isConnected() { return false; }
@@ -88,11 +82,14 @@
         fs = new FnService(ar, logSpy, windowMock);
 
         TestBed.configureTestingModule({
-            imports: [RouterTestingModule],
-            declarations: [ProcessorComponent, IconComponent],
+            imports: [BrowserAnimationsModule, RouterTestingModule],
+            declarations: [
+                ProcessorComponent,
+                IconComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: IconService, useClass: MockIconService },
                 { provide: LogService, useValue: logSpy },
                 { provide: WebSocketService, useClass: MockWebSocketService },
diff --git a/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.ts b/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.ts
index a42912f..6b0a9bc 100644
--- a/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.ts
+++ b/web/gui2/src/main/webapp/app/view/processor/processor/processor.component.ts
@@ -16,10 +16,9 @@
 import { Component, OnDestroy, OnInit } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
-    SortDir, TableBaseImpl, TableResponse
+    TableBaseImpl
 } from 'gui2-fw-lib';
 import { ActivatedRoute } from '@angular/router';
 
@@ -36,11 +35,10 @@
     constructor(
         protected fs: FnService,
         protected log: LogService,
-        protected ls: LoadingService,
         protected as: ActivatedRoute,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'processor');
+        super(fs, log, wss, 'processor');
     }
 
     ngOnInit() {
diff --git a/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.html b/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.html
index 7f88b51..65cae49 100644
--- a/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.html
+++ b/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-settings">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>Component Settings ({{tableData.length}} total)</h2>
         <div class="ctrl-btns">
@@ -60,4 +61,4 @@
         </div>
     </div>
     <onos-settingsdetails class="floatpanels" id="{{ selId }}" [settingsDetails]="settingsDetails" (closeEvent)="deselectRow($event)"></onos-settingsdetails>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.spec.ts b/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.spec.ts
index 7e0d8de..5ae73ce 100644
--- a/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.spec.ts
@@ -22,9 +22,8 @@
     FnService,
     IconService,
     IconComponent,
-    LoadingService,
     LogService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { DebugElement } from '@angular/core';
 import { By } from '@angular/platform-browser';
@@ -42,12 +41,6 @@
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockWebSocketService {
     createWebSocket() { }
     isConnected() { return false; }
@@ -85,11 +78,15 @@
     beforeEach(async(() => {
         TestBed.configureTestingModule({
             imports: [BrowserAnimationsModule],
-            declarations: [SettingsComponent, IconComponent, SettingsDetailsComponent],
+            declarations: [
+                SettingsComponent,
+                IconComponent,
+                SettingsDetailsComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: LogService, useValue: logSpy },
                 { provide: WebSocketService, useClass: MockWebSocketService },
             ]
diff --git a/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.ts b/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.ts
index a2bf6c4..b2444ad 100644
--- a/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.ts
+++ b/web/gui2/src/main/webapp/app/view/settings/settings/settings.component.ts
@@ -16,7 +16,6 @@
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     SortDir, TableBaseImpl, TableResponse
@@ -57,11 +56,10 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected wss: WebSocketService
     ) {
-        super(fs, ls, log, wss, 'setting');
+        super(fs, log, wss, 'setting');
         this.responseCallback = this.settingsResponseCb;
         this.parentSelCb = this.rowSelection;
 
diff --git a/web/gui2/src/main/webapp/app/view/settings/settingsdetails/settingsdetails.component.ts b/web/gui2/src/main/webapp/app/view/settings/settingsdetails/settingsdetails.component.ts
index 39cc9b8..6497e5d 100644
--- a/web/gui2/src/main/webapp/app/view/settings/settingsdetails/settingsdetails.component.ts
+++ b/web/gui2/src/main/webapp/app/view/settings/settingsdetails/settingsdetails.component.ts
@@ -16,8 +16,6 @@
 import { Component, OnInit, Input, OnDestroy, OnChanges } from '@angular/core';
 import {
     FnService,
-    IconService,
-    LoadingService,
     LogService,
     DetailsPanelBaseImpl,
     WebSocketService
@@ -63,11 +61,10 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected wss: WebSocketService
     ) {
-        super(fs, ls, log, wss, 'setting');
+        super(fs, log, wss, 'setting');
     }
 
     ngOnInit() {
diff --git a/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.html b/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.html
index 5829acf..2984d3e 100644
--- a/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.html
+++ b/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.html
@@ -14,6 +14,7 @@
 ~ limitations under the License.
 -->
 <div id="ov-tunnel">
+    <onos-loading [theme]="'light'" [running]="loadingIconShown"></onos-loading>
     <div class="tabular-header">
         <h2>Tunnels ({{tableData.length}} total)</h2>
         <div class="ctrl-btns">
@@ -71,4 +72,4 @@
             </table>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.spec.ts b/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.spec.ts
index 30c5ead..f5ab3d6 100644
--- a/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.spec.ts
@@ -22,12 +22,12 @@
     FnService,
     IconService,
     IconComponent,
-    LoadingService,
     LogService,
-    WebSocketService
+    WebSocketService, LoadingComponent
 } from 'gui2-fw-lib';
 import { DebugElement } from '@angular/core';
 import { By } from '@angular/platform-browser';
+import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
 
 class MockActivatedRoute extends ActivatedRoute {
     constructor(params: Params) {
@@ -40,12 +40,6 @@
     loadIconDef() { }
 }
 
-class MockLoadingService {
-    startAnim() { }
-    stop() { }
-    waiting() { }
-}
-
 class MockWebSocketService {
     createWebSocket() { }
     isConnected() { return false; }
@@ -83,11 +77,15 @@
         fs = new FnService(ar, logSpy, windowMock);
 
         TestBed.configureTestingModule({
-            declarations: [TunnelComponent, IconComponent],
+            imports: [BrowserAnimationsModule],
+            declarations: [
+                TunnelComponent,
+                IconComponent,
+                LoadingComponent
+            ],
             providers: [
                 { provide: FnService, useValue: fs },
                 { provide: IconService, useClass: MockIconService },
-                { provide: LoadingService, useClass: MockLoadingService },
                 { provide: LogService, useValue: logSpy },
                 { provide: WebSocketService, useClass: MockWebSocketService },
             ]
diff --git a/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.ts b/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.ts
index 388e69e..91eb7e6 100644
--- a/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.ts
+++ b/web/gui2/src/main/webapp/app/view/tunnel/tunnel/tunnel.component.ts
@@ -16,7 +16,6 @@
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import {
     FnService,
-    LoadingService,
     LogService,
     WebSocketService,
     SortDir, TableBaseImpl, TableResponse
@@ -55,11 +54,10 @@
 
     constructor(
         protected fs: FnService,
-        protected ls: LoadingService,
         protected log: LogService,
         protected wss: WebSocketService,
     ) {
-        super(fs, ls, log, wss, 'tunnel');
+        super(fs, log, wss, 'tunnel');
         this.responseCallback = this.tunnelResponseCb;
         this.sortParams = {
             firstCol: 'id',
