diff --git a/resources/data/.gitkeep b/resources/data/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/resources/data/en/.gitkeep b/resources/data/en/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/resources/data/en/test.json b/resources/data/en/test.json
deleted file mode 100644
index 728f87a6468d830a3d784df3a3076e5c6e6b44e6..0000000000000000000000000000000000000000
--- a/resources/data/en/test.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "test": {
-    "message": "Hello, DSpace!"
-  }
-}
diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts
index cc8e28535a0c0fabf864ef4160441f4f0e6150a2..99cf1068e443c6dfb1f97a912444644b80ef752f 100644
--- a/src/app/app.component.spec.ts
+++ b/src/app/app.component.spec.ts
@@ -25,8 +25,6 @@ import { HostWindowState } from './shared/host-window.reducer';
 import { HostWindowResizeAction } from './shared/host-window.actions';
 import { MockTranslateLoader } from './shared/testing/mock-translate-loader';
 
-import { BrowserCookiesModule } from '../modules/cookies/browser-cookies.module';
-import { BrowserDataLoaderModule } from '../modules/data-loader/browser-data-loader.module';
 import { BrowserTransferStateModule } from '../modules/transfer-state/browser-transfer-state.module';
 import { BrowserTransferStoreModule } from '../modules/transfer-store/browser-transfer-store.module';
 
@@ -52,8 +50,6 @@ describe('App component', () => {
             useClass: MockTranslateLoader
           }
         }),
-        BrowserCookiesModule,
-        BrowserDataLoaderModule,
         BrowserTransferStateModule,
         BrowserTransferStoreModule
       ],
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 15e2be330b3d967d40ba9da3be533c8968ec45ca..3ec0cdebab2f6533ede409951154bd572ec02d0b 100755
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -21,7 +21,6 @@ import { appMetaReducers, debugMetaReducers } from './app.metareducers';
 
 import { CoreModule } from './core/core.module';
 import { AppRoutingModule } from './app-routing.module';
-import { TransferHttpModule } from '../modules/transfer-http/transfer-http.module';
 
 import { AppComponent } from './app.component';
 import { HeaderComponent } from './header/header.component';
@@ -66,7 +65,6 @@ if (!ENV_CONFIG.production) {
     EffectsModule.forRoot(appEffects),
     StoreModule.forRoot(appReducers),
     StoreRouterConnectingModule,
-    TransferHttpModule,
     ...DEV_MODULES
   ],
   providers: [
diff --git a/src/app/browser-app.module.ts b/src/app/browser-app.module.ts
index 571a5266feeebb1c8b083fb97cb71cbf1c88cf90..a8e6b083127a1d06e15d3f4b6ecdb15f694d84a7 100644
--- a/src/app/browser-app.module.ts
+++ b/src/app/browser-app.module.ts
@@ -11,8 +11,6 @@ import { TranslateHttpLoader } from '@ngx-translate/http-loader';
 import { EffectsModule } from '@ngrx/effects';
 
 import { TransferState } from '../modules/transfer-state/transfer-state';
-import { BrowserCookiesModule } from '../modules/cookies/browser-cookies.module';
-import { BrowserDataLoaderModule } from '../modules/data-loader/browser-data-loader.module';
 import { BrowserTransferStateModule } from '../modules/transfer-state/browser-transfer-state.module';
 import { BrowserTransferStoreEffects } from '../modules/transfer-store/browser-transfer-store.effects';
 import { BrowserTransferStoreModule } from '../modules/transfer-store/browser-transfer-store.module';
@@ -39,10 +37,13 @@ export function createTranslateLoader(http: HttpClient) {
       appId: 'ds-app-id'
     }),
     HttpClientModule,
-    IdlePreloadModule.forRoot(), // forRoot ensures the providers are only created once
-    RouterModule.forRoot([], { useHash: false, preloadingStrategy: IdlePreload }),
-    BrowserCookiesModule,
-    BrowserDataLoaderModule,
+    // forRoot ensures the providers are only created once
+    IdlePreloadModule.forRoot(),
+    RouterModule.forRoot([], {
+      useHash: false,
+      preloadingStrategy:
+      IdlePreload
+    }),
     BrowserTransferStateModule,
     BrowserTransferStoreModule,
     TranslateModule.forRoot({
diff --git a/src/app/server-app.module.ts b/src/app/server-app.module.ts
index 09a9b9858985e90b95403d81018d69f67c5e8540..0b9a9fec1c911a744b6c17adca1cda5b392e82ef 100644
--- a/src/app/server-app.module.ts
+++ b/src/app/server-app.module.ts
@@ -23,10 +23,6 @@ import { TransferState } from '../modules/transfer-state/transfer-state';
 import { ServerTransferStoreEffects } from '../modules/transfer-store/server-transfer-store.effects';
 import { ServerTransferStoreModule } from '../modules/transfer-store/server-transfer-store.module';
 
-import { ServerCookiesModule } from '../modules/cookies/server-cookies.module';
-
-import { ServerDataLoaderModule } from '../modules/data-loader/server-data-loader.module';
-
 import { AppState } from './app.reducer';
 
 import { AppModule } from './app.module';
@@ -54,9 +50,9 @@ export function createTranslateLoader() {
     BrowserModule.withServerTransition({
       appId: 'ds-app-id'
     }),
-    RouterModule.forRoot([], { useHash: false }),
-    ServerCookiesModule,
-    ServerDataLoaderModule,
+    RouterModule.forRoot([], {
+      useHash: false
+    }),
     ServerTransferStateModule,
     ServerTransferStoreModule,
     TranslateModule.forRoot({
diff --git a/src/modules/cookies/browser-cookies.module.ts b/src/modules/cookies/browser-cookies.module.ts
deleted file mode 100644
index bd0340a7981d22231675243cb7c684dd36ab4728..0000000000000000000000000000000000000000
--- a/src/modules/cookies/browser-cookies.module.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { NgModule } from '@angular/core';
-
-import { Cookies } from './cookies';
-import { BrowserCookies } from './browser-cookies';
-
-@NgModule({
-  providers: [
-    { provide: Cookies, useClass: BrowserCookies }
-  ]
-})
-export class BrowserCookiesModule {
-
-}
diff --git a/src/modules/cookies/browser-cookies.ts b/src/modules/cookies/browser-cookies.ts
deleted file mode 100644
index 51c1835471b0038a37f9ef431d72cd4e57ca6ee6..0000000000000000000000000000000000000000
--- a/src/modules/cookies/browser-cookies.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Injectable } from '@angular/core';
-
-import { Cookies } from './cookies';
-
-@Injectable()
-export class BrowserCookies implements Cookies {
-
-  // TODO: improve - set domain from configuration value or ui baseUrl
-  set(name: string, value: string, days: number, path?: string): void {
-    const date: Date = new Date();
-    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
-    const expires: string = 'expires=' + date.toUTCString();
-    window.document.cookie = [name, '=', value, '; ', expires, path ? '; path=' + path : ''].join('');
-  }
-
-  get(name: string): string {
-    const cookies: string[] = window.document.cookie.split(';');
-    let cookie: string;
-    for (const cc of cookies) {
-      const c: string = cc.replace(/^\s\+/g, '');
-      if (c.indexOf(name + '=') === 0) {
-        cookie = c.substring(name.length + 1, c.length);
-        break;
-      }
-    }
-    return cookie;
-  }
-
-  // TODO: set path from environment configuration
-  remove(name: string): void {
-    this.set(name, '', 0, '/');
-  }
-
-}
diff --git a/src/modules/cookies/cookies.ts b/src/modules/cookies/cookies.ts
deleted file mode 100644
index 924012a4c40848a91be1bdd62cb485ff81e896f1..0000000000000000000000000000000000000000
--- a/src/modules/cookies/cookies.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export abstract class Cookies {
-
-  abstract set(name: string, value: string, days: number, path?: string): void;
-
-  abstract get(name: string): string;
-
-  abstract remove(name: string): void;
-
-}
diff --git a/src/modules/cookies/server-cookies.module.ts b/src/modules/cookies/server-cookies.module.ts
deleted file mode 100644
index f39daaf62a4e367e1e2381e6b8f2cc8466d9d8e8..0000000000000000000000000000000000000000
--- a/src/modules/cookies/server-cookies.module.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { NgModule } from '@angular/core';
-
-import { Cookies } from './cookies';
-import { ServerCookies } from './server-cookies';
-
-@NgModule({
-  providers: [
-    { provide: Cookies, useClass: ServerCookies }
-  ]
-})
-export class ServerCookiesModule {
-
-}
diff --git a/src/modules/cookies/server-cookies.ts b/src/modules/cookies/server-cookies.ts
deleted file mode 100644
index 5b83ca4d6a01614ab937ccd80a54f4a70ba46553..0000000000000000000000000000000000000000
--- a/src/modules/cookies/server-cookies.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Injectable } from '@angular/core';
-
-import { Cookies } from './cookies';
-
-@Injectable()
-export class ServerCookies implements Cookies {
-
-  // tslint:disable:no-empty
-  set(name: string, value: string, days: number, path?: string): void {
-
-  }
-  // tslint:enable:no-empty
-
-  get(name: string): string {
-    return undefined;
-  }
-
-  // tslint:disable:no-empty
-  remove(name: string): void {
-
-  }
-  // tslint:enable:no-empty
-
-}
diff --git a/src/modules/data-loader/browser-data-loader.module.ts b/src/modules/data-loader/browser-data-loader.module.ts
deleted file mode 100644
index e702b8358e60c7c0f98da9b101d49a23e39733d3..0000000000000000000000000000000000000000
--- a/src/modules/data-loader/browser-data-loader.module.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { NgModule } from '@angular/core';
-
-import { DataLoader } from './data-loader';
-import { BrowserDataLoader } from './browser-data-loader';
-
-@NgModule({
-  providers: [
-    { provide: DataLoader, useClass: BrowserDataLoader }
-  ]
-})
-export class BrowserDataLoaderModule {
-
-}
diff --git a/src/modules/data-loader/browser-data-loader.ts b/src/modules/data-loader/browser-data-loader.ts
deleted file mode 100644
index 2f95e5c47598b46b4915a4f9da5d0ad6d2503a0a..0000000000000000000000000000000000000000
--- a/src/modules/data-loader/browser-data-loader.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { Injectable } from '@angular/core';
-
-import { Http, Response } from '@angular/http';
-import { Observable } from 'rxjs/Observable';
-
-import { DataLoader } from './data-loader';
-
-@Injectable()
-export class BrowserDataLoader extends DataLoader {
-
-  protected prefix: string;
-
-  protected suffix: string;
-
-  constructor(private http: Http) {
-    super();
-    this.prefix = 'assets/data';
-    this.suffix = '.json';
-  }
-
-  public getData(name: string): Observable<any> {
-    return this.http.get(`${this.prefix}/${this.language}/${name}${this.suffix}`, {}).map((response: Response) => {
-      return response.json();
-    });
-  }
-
-}
diff --git a/src/modules/data-loader/data-loader.ts b/src/modules/data-loader/data-loader.ts
deleted file mode 100644
index 1a3eee7a96728f47050d9123996b381bfe40ef52..0000000000000000000000000000000000000000
--- a/src/modules/data-loader/data-loader.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Observable } from 'rxjs/Observable';
-
-export abstract class DataLoader {
-
-  protected language: string;
-
-  protected abstract prefix: string;
-
-  protected abstract suffix: string;
-
-  constructor() {
-    this.language = 'en';
-  }
-
-  public setLanguage(language: string): void {
-    this.language = language;
-  }
-
-  abstract getData(name: string): Observable<any>;
-
-}
diff --git a/src/modules/data-loader/server-data-loader.module.ts b/src/modules/data-loader/server-data-loader.module.ts
deleted file mode 100644
index e2418ef96863bcf611044f5fd896b7ed2a022b65..0000000000000000000000000000000000000000
--- a/src/modules/data-loader/server-data-loader.module.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { NgModule } from '@angular/core';
-
-import { DataLoader } from './data-loader';
-import { ServerDataLoader } from './server-data-loader';
-
-@NgModule({
-  providers: [
-    { provide: DataLoader, useClass: ServerDataLoader }
-  ]
-})
-export class ServerDataLoaderModule {
-
-}
diff --git a/src/modules/data-loader/server-data-loader.ts b/src/modules/data-loader/server-data-loader.ts
deleted file mode 100644
index 27bb321da7c29157ac76eddee3e63cb33b46e011..0000000000000000000000000000000000000000
--- a/src/modules/data-loader/server-data-loader.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Injectable } from '@angular/core';
-
-import { Observable } from 'rxjs/Observable';
-import * as fs from 'fs';
-
-import { DataLoader } from './data-loader';
-
-@Injectable()
-export class ServerDataLoader extends DataLoader {
-
-  protected prefix: string;
-
-  protected suffix: string;
-
-  constructor() {
-    super();
-    this.prefix = 'dist/assets/data';
-    this.suffix = '.json';
-  }
-
-  public getData(name: string): Observable<any> {
-    return Observable.create((observer: any) => {
-      observer.next(JSON.parse(fs.readFileSync(`${this.prefix}/${this.language}/${name}${this.suffix}`, 'utf8')));
-      observer.complete();
-    });
-  }
-
-}
diff --git a/src/modules/transfer-http/transfer-http.module.ts b/src/modules/transfer-http/transfer-http.module.ts
deleted file mode 100644
index 37897b40e93851151346b16583ca334ea7082180..0000000000000000000000000000000000000000
--- a/src/modules/transfer-http/transfer-http.module.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { NgModule } from '@angular/core';
-
-import { TransferHttp } from './transfer-http';
-
-@NgModule({
-  providers: [
-    TransferHttp
-  ]
-})
-export class TransferHttpModule {
-
-}
diff --git a/src/modules/transfer-http/transfer-http.ts b/src/modules/transfer-http/transfer-http.ts
deleted file mode 100644
index e24f1f8906f7e0a319739e85b02cb61d169352fe..0000000000000000000000000000000000000000
--- a/src/modules/transfer-http/transfer-http.ts
+++ /dev/null
@@ -1,132 +0,0 @@
-import { Injectable } from '@angular/core';
-import { ConnectionBackend, Http, Request, RequestOptions, RequestOptionsArgs, Response } from '@angular/http';
-
-import { Observable } from 'rxjs/Observable';
-
-import { TransferState } from '../transfer-state/transfer-state';
-
-import 'rxjs/add/operator/map';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/observable/of';
-
-@Injectable()
-export class TransferHttp {
-
-  constructor(private http: Http, protected transferState: TransferState) { }
-
-  request(uri: string | Request, options?: RequestOptionsArgs): Observable<any> {
-    // tslint:disable-next-line:no-shadowed-variable
-    return this.getData(uri, options, (url: string, options: RequestOptionsArgs) => {
-      return this.http.request(url, options);
-    });
-  }
-
-  get(url: string, options?: RequestOptionsArgs): Observable<any> {
-    // tslint:disable-next-line:no-shadowed-variable
-    return this.getData(url, options, (url: string, options: RequestOptionsArgs) => {
-      return this.http.get(url, options);
-    });
-  }
-
-  post(url: string, body: any, options?: RequestOptionsArgs): Observable<any> {
-    // tslint:disable-next-line:no-shadowed-variable
-    return this.getPostData(url, body, options, (url: string, body: any, options: RequestOptionsArgs) => {
-      return this.http.post(url, body, options);
-    });
-  }
-
-  put(url: string, body: any, options?: RequestOptionsArgs): Observable<any> {
-    // tslint:disable-next-line:no-shadowed-variable
-    return this.getData(url, options, (url: string, options: RequestOptionsArgs) => {
-      return this.http.put(url, options);
-    });
-  }
-
-  delete(url: string, options?: RequestOptionsArgs): Observable<any> {
-    // tslint:disable-next-line:no-shadowed-variable
-    return this.getData(url, options, (url: string, options: RequestOptionsArgs) => {
-      return this.http.delete(url, options);
-    });
-  }
-
-  patch(url: string, body: any, options?: RequestOptionsArgs): Observable<any> {
-    // tslint:disable-next-line:no-shadowed-variable
-    return this.getPostData(url, body, options, (url: string, body: any, options: RequestOptionsArgs) => {
-      return this.http.patch(url, body, options);
-    });
-  }
-
-  head(url: string, options?: RequestOptionsArgs): Observable<any> {
-    // tslint:disable-next-line:no-shadowed-variable
-    return this.getData(url, options, (url: string, options: RequestOptionsArgs) => {
-      return this.http.head(url, options);
-    });
-  }
-
-  options(url: string, options?: RequestOptionsArgs): Observable<any> {
-    // tslint:disable-next-line:no-shadowed-variable
-    return this.getData(url, options, (url: string, options: RequestOptionsArgs) => {
-      return this.http.options(url, options);
-    });
-  }
-
-  // tslint:disable-next-line:max-line-length
-  private getData(uri: string | Request, options: RequestOptionsArgs, callback: (uri: string | Request, options?: RequestOptionsArgs) => Observable<Response>) {
-
-    let url = uri;
-
-    if (typeof uri !== 'string') {
-      url = uri.url;
-    }
-
-    const key = url + JSON.stringify(options);
-
-    try {
-      return this.resolveData(key);
-    } catch (e) {
-      return callback(uri, options)
-        .map((res: Response) => res.json())
-        .do((data: any) => {
-          this.setCache(key, data);
-        });
-    }
-  }
-
-  private getPostData(uri: string | Request, body: any, options: RequestOptionsArgs, callback: (uri: string | Request, body: any, options?: RequestOptionsArgs) => Observable<Response>) {
-
-    let url = uri;
-
-    if (typeof uri !== 'string') {
-      url = uri.url;
-    }
-
-    const key = url + JSON.stringify(body) + JSON.stringify(options);
-
-    try {
-      return this.resolveData(key);
-    } catch (e) {
-      return callback(uri, body, options)
-        .map((res: Response) => res.json())
-        .do((data: any) => {
-          this.setCache(key, data);
-        });
-    }
-  }
-
-  private resolveData(key: string) {
-    const data = this.getFromCache(key);
-    if (!data) {
-      throw new Error();
-    }
-    return Observable.of(data);
-  }
-
-  private setCache(key, data) {
-    return this.transferState.set(key, data);
-  }
-
-  private getFromCache(key): any {
-    return this.transferState.get(key);
-  }
-
-}
diff --git a/webpack/webpack.common.js b/webpack/webpack.common.js
index 5abfea9e0451d4f57600b183e58a607f6cf2f6ed..6bf4620ca776993016450d24d3888ab47022f69e 100644
--- a/webpack/webpack.common.js
+++ b/webpack/webpack.common.js
@@ -91,9 +91,6 @@ module.exports = {
     }, {
       from: join(__dirname, '..', 'resources', 'images'),
       to: join('assets', 'images')
-    }, {
-      from: join(__dirname, '..', 'resources', 'data'),
-      to: join('assets', 'data')
     }, {
       from: join(__dirname, '..', 'resources', 'i18n'),
       to: join('assets', 'i18n')