diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index a5a1c39ec..1752d2fc5 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -24,7 +24,7 @@
  */
 
 import { BrowserModule } from '@angular/platform-browser';
-import { NgModule, APP_INITIALIZER } from '@angular/core';
+import { NgModule } from '@angular/core';
 import { RouterModule, RouteReuseStrategy } from '@angular/router';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -69,8 +69,6 @@ import { SearchResultsRowComponent } from './components/search/search-results-ro
 import { NodePermissionsDialogComponent } from './dialogs/node-permissions/node-permissions.dialog';
 import { PermissionsManagerComponent } from './components/permission-manager/permissions-manager.component';
 import { AppRouteReuseStrategy } from './app.routes.strategy';
-import { ViewUtilService} from './services/view-util.service';
-import { ExtensionService } from './extensions/extension.service';
 import { AppInfoDrawerModule } from './components/info-drawer/info.drawer.module';
 import { DirectivesModule } from './directives/directives.module';
 import { ToggleInfoDrawerComponent } from './components/toolbar/toggle-info-drawer/toggle-info-drawer.component';
@@ -78,9 +76,6 @@ import { DocumentDisplayModeComponent } from './components/toolbar/document-disp
 import { ToggleFavoriteComponent } from './components/toolbar/toggle-favorite/toggle-favorite.component';
 import { ContextMenuModule } from './components/context-menu/context-menu.module';
 
-export function setupExtensionServiceFactory(service: ExtensionService): Function {
-    return () => service.load();
-}
 @NgModule({
     imports: [
         BrowserModule,
@@ -147,14 +142,7 @@ export function setupExtensionServiceFactory(service: ExtensionService): Functio
         NodePermissionService,
         ProfileResolver,
         ExperimentalGuard,
-        ContentApiService,
-        {
-            provide: APP_INITIALIZER,
-            useFactory: setupExtensionServiceFactory,
-            deps: [ExtensionService],
-            multi: true
-        },
-        ViewUtilService
+        ContentApiService
     ],
     entryComponents: [
         LibraryDialogComponent,
diff --git a/src/app/components/preview/preview.component.ts b/src/app/components/preview/preview.component.ts
index 25cbe2b0e..915f41b93 100644
--- a/src/app/components/preview/preview.component.ts
+++ b/src/app/components/preview/preview.component.ts
@@ -33,8 +33,9 @@ import { PageComponent } from '../page.component';
 import { ContentApiService } from '../../services/content-api.service';
 import { ExtensionService } from '../../extensions/extension.service';
 import { ContentManagementService } from '../../services/content-management.service';
-import { ViewUtilService } from '../../services/view-util.service';
 import { ContentActionRef } from '../../extensions/action.extensions';
+import { ViewUtilService } from './view-util.service';
+
 @Component({
     selector: 'app-preview',
     templateUrl: 'preview.component.html',
diff --git a/src/app/components/preview/preview.module.ts b/src/app/components/preview/preview.module.ts
index f43f3bcfe..2e979d979 100644
--- a/src/app/components/preview/preview.module.ts
+++ b/src/app/components/preview/preview.module.ts
@@ -27,11 +27,12 @@ import { CoreModule } from '@alfresco/adf-core';
 import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
 import { Routes, RouterModule } from '@angular/router';
+import { ContentDirectiveModule } from '@alfresco/adf-content-services';
 import { CoreExtensionsModule } from '../../extensions/core.extensions.module';
 import { DirectivesModule } from '../../directives/directives.module';
 import { AppInfoDrawerModule } from '../info-drawer/info.drawer.module';
 import { PreviewComponent } from './preview.component';
-import { ContentDirectiveModule } from '@alfresco/adf-content-services';
+import { ViewUtilService } from './view-util.service';
 
 import * as pdfjsLib from 'pdfjs-dist';
 pdfjsLib.PDFJS.workerSrc = 'pdf.worker.js';
@@ -57,6 +58,9 @@ const routes: Routes = [
     declarations: [
         PreviewComponent,
     ],
+    providers: [
+        ViewUtilService
+    ],
     exports: [
         PreviewComponent
     ]
diff --git a/src/app/services/view-util.service.ts b/src/app/components/preview/view-util.service.ts
similarity index 98%
rename from src/app/services/view-util.service.ts
rename to src/app/components/preview/view-util.service.ts
index 64e7f33f1..36ba6760e 100644
--- a/src/app/services/view-util.service.ts
+++ b/src/app/components/preview/view-util.service.ts
@@ -1,7 +1,7 @@
 import {Injectable} from '@angular/core';
 import {AlfrescoApiService, LogService} from '@alfresco/adf-core';
 import {RenditionEntry} from 'alfresco-js-api';
-import {ContentApiService} from './content-api.service';
+import {ContentApiService} from './../../services/content-api.service';
 
 @Injectable()
 export class ViewUtilService {
diff --git a/src/app/extensions/core.extensions.module.ts b/src/app/extensions/core.extensions.module.ts
index 37efa528c..db935fca7 100644
--- a/src/app/extensions/core.extensions.module.ts
+++ b/src/app/extensions/core.extensions.module.ts
@@ -38,51 +38,48 @@ import { ToggleFavoriteComponent } from '../components/toolbar/toggle-favorite/t
 import { ToolbarButtonComponent } from './components/toolbar/toolbar-button.component';
 
 export function setupExtensions(extensions: ExtensionService): Function {
-    return () =>
-        new Promise(resolve => {
-            extensions.setComponents({
-                'app.layout.main': LayoutComponent,
-                'app.components.trashcan': TrashcanComponent,
-                'app.toolbar.toggleInfoDrawer': ToggleInfoDrawerComponent,
-                'app.toolbar.toggleFavorite': ToggleFavoriteComponent
-            });
+    extensions.setComponents({
+        'app.layout.main': LayoutComponent,
+        'app.components.trashcan': TrashcanComponent,
+        'app.toolbar.toggleInfoDrawer': ToggleInfoDrawerComponent,
+        'app.toolbar.toggleFavorite': ToggleFavoriteComponent
+    });
 
-            extensions.setAuthGuards({
-                'app.auth': AuthGuardEcm
-            });
+    extensions.setAuthGuards({
+        'app.auth': AuthGuardEcm
+    });
 
-            extensions.setEvaluators({
-                'app.selection.canDelete': app.canDeleteSelection,
-                'app.selection.canDownload': app.canDownloadSelection,
-                'app.selection.notEmpty': app.hasSelection,
-                'app.selection.canUnshare': app.canUnshareNodes,
-                'app.selection.canAddFavorite': app.canAddFavorite,
-                'app.selection.canRemoveFavorite': app.canRemoveFavorite,
-                'app.selection.first.canUpdate': app.canUpdateSelectedNode,
-                'app.selection.file': app.hasFileSelected,
-                'app.selection.file.canShare': app.canShareFile,
-                'app.selection.library': app.hasLibrarySelected,
-                'app.selection.folder': app.hasFolderSelected,
-                'app.selection.folder.canUpdate': app.canUpdateSelectedFolder,
+    extensions.setEvaluators({
+        'app.selection.canDelete': app.canDeleteSelection,
+        'app.selection.canDownload': app.canDownloadSelection,
+        'app.selection.notEmpty': app.hasSelection,
+        'app.selection.canUnshare': app.canUnshareNodes,
+        'app.selection.canAddFavorite': app.canAddFavorite,
+        'app.selection.canRemoveFavorite': app.canRemoveFavorite,
+        'app.selection.first.canUpdate': app.canUpdateSelectedNode,
+        'app.selection.file': app.hasFileSelected,
+        'app.selection.file.canShare': app.canShareFile,
+        'app.selection.library': app.hasLibrarySelected,
+        'app.selection.folder': app.hasFolderSelected,
+        'app.selection.folder.canUpdate': app.canUpdateSelectedFolder,
 
-                'app.navigation.folder.canCreate': app.canCreateFolder,
-                'app.navigation.folder.canUpload': app.canUpload,
-                'app.navigation.isTrashcan': nav.isTrashcan,
-                'app.navigation.isNotTrashcan': nav.isNotTrashcan,
-                'app.navigation.isLibraries': nav.isLibraries,
-                'app.navigation.isNotLibraries': nav.isNotLibraries,
-                'app.navigation.isSharedFiles': nav.isSharedFiles,
-                'app.navigation.isNotSharedFiles': nav.isNotSharedFiles,
-                'app.navigation.isFavorites': nav.isFavorites,
-                'app.navigation.isNotFavorites': nav.isNotFavorites,
-                'app.navigation.isRecentFiles': nav.isRecentFiles,
-                'app.navigation.isNotRecentFiles': nav.isNotRecentFiles,
-                'app.navigation.isSearchResults': nav.isSearchResults,
-                'app.navigation.isNotSearchResults': nav.isNotSearchResults
-            });
+        'app.navigation.folder.canCreate': app.canCreateFolder,
+        'app.navigation.folder.canUpload': app.canUpload,
+        'app.navigation.isTrashcan': nav.isTrashcan,
+        'app.navigation.isNotTrashcan': nav.isNotTrashcan,
+        'app.navigation.isLibraries': nav.isLibraries,
+        'app.navigation.isNotLibraries': nav.isNotLibraries,
+        'app.navigation.isSharedFiles': nav.isSharedFiles,
+        'app.navigation.isNotSharedFiles': nav.isNotSharedFiles,
+        'app.navigation.isFavorites': nav.isFavorites,
+        'app.navigation.isNotFavorites': nav.isNotFavorites,
+        'app.navigation.isRecentFiles': nav.isRecentFiles,
+        'app.navigation.isNotRecentFiles': nav.isNotRecentFiles,
+        'app.navigation.isSearchResults': nav.isSearchResults,
+        'app.navigation.isNotSearchResults': nav.isNotSearchResults
+    });
 
-            resolve(true);
-        });
+    return () => extensions.load();
 }
 
 @NgModule({
diff --git a/src/app/testing/app-testing.module.ts b/src/app/testing/app-testing.module.ts
index 6a4422636..939e66e73 100644
--- a/src/app/testing/app-testing.module.ts
+++ b/src/app/testing/app-testing.module.ts
@@ -60,7 +60,7 @@ import { NodeActionsService } from '../services/node-actions.service';
 import { NodePermissionService } from '../services/node-permission.service';
 import { ContentApiService } from '../services/content-api.service';
 import { ExtensionService } from '../extensions/extension.service';
-import {ViewUtilService} from '../services/view-util.service';
+import { ViewUtilService } from '../components/preview/view-util.service';
 
 @NgModule({
     imports: [