From 18dd06a9bb3229dce3b87bd845a80401b2e83a07 Mon Sep 17 00:00:00 2001
From: FORESTIER Fabien <fabien.forestier@soprasteria.com>
Date: Wed, 20 Nov 2019 14:18:44 +0100
Subject: [PATCH] Reorganize modules

---
 .gitlab-ci.yml                                |   4 +-
 src/app/app-routing.module.ts                 |   6 +-
 src/app/app.routing.spec.ts                   | 151 ------------------
 .../main/header/header.component.ts           |  13 +-
 .../core/components/main/main.component.ts    |   8 +-
 .../main/side-menu/side-menu.component.html   |   5 +-
 .../main/side-menu/side-menu.component.ts     |  10 +-
 src/app/core/core-routing.module.ts           |   4 +-
 src/app/core/core.module.ts                   |  20 +--
 .../http-error-response-interceptor.ts        |   9 +-
 src/app/core/services/error.service.spec.ts   |  55 -------
 .../{file-service.ts => file.service.ts}      |   4 +-
 src/app/core/services/index.ts                |  16 +-
 .../services/notification.service.spec.ts     |  37 -----
 ...aset-data-detail-properties.component.html |   0
 ...aset-data-detail-properties.component.scss |   2 +-
 ...ataset-data-detail-properties.component.ts |   0
 .../dataset-data-details.component.html       |   0
 .../dataset-data-details.component.scss       |   2 +-
 .../dataset-data-details.component.ts         |   4 +-
 .../dataset-detail.component.html             |   0
 .../dataset-detail.component.scss             |   0
 .../dataset-detail.component.ts               |  22 ++-
 .../dataset-info/dataset-info.component.html  |   0
 .../dataset-info/dataset-info.component.scss  |   4 +-
 .../dataset-info.component.spec.ts            |   0
 .../dataset-info/dataset-info.component.ts    |  16 +-
 .../dataset-map/dataset-map.component.html    |   0
 .../dataset-map/dataset-map.component.scss    |   2 +-
 .../dataset-map/dataset-map.component.ts      |  15 +-
 .../dataset-resources.component.html          |   0
 .../dataset-resources.component.scss          |   4 +-
 .../dataset-resources.component.spec.ts       |   0
 .../dataset-resources.component.ts            |  16 +-
 .../icon-format/icon-format.component.html    |   0
 .../icon-format/icon-format.component.scss    |   0
 .../icon-format/icon-format.component.ts      |   0
 .../resource-downloadable.component.html      |   0
 .../resource-downloadable.component.scss      |   2 +-
 .../resource-downloadable.component.ts        |   6 +-
 .../resource-queryable.component.html         |   0
 .../resource-queryable.component.scss         |   2 +-
 .../resource-queryable.component.ts           |  18 +--
 .../resources-queryable.component.html        |   0
 .../resources-queryable.component.scss        |   2 +-
 .../resources-queryable.component.ts          |  10 +-
 .../dataset-table-map.component.html          |   0
 .../dataset-table-map.component.scss          |  10 +-
 .../dataset-table-map.component.ts            |   8 +-
 .../dataset-table.component.html              |   0
 .../dataset-table.component.scss              |   4 +-
 .../dataset-table/dataset-table.component.ts  |  16 +-
 src/app/dataset-detail/components/index.ts    |  33 ++++
 .../dataset-detail-routing.module.ts}         |  34 +---
 .../dataset-detail/dataset-detail.module.ts   |  29 ++++
 .../models/dataset-child.model.ts             |   0
 src/app/dataset-detail/models/index.ts        |   4 +
 .../models/projection.model.ts                |   0
 .../models/resource.model.ts                  |   2 +-
 .../resolvers/dataset-detail.resolver.ts      |   6 +-
 .../resolvers/index.ts                        |   6 +-
 .../services/dataset-detail.service.ts        |  16 +-
 src/app/dataset-detail/services/index.ts      |  10 ++
 .../services/resources.service.ts             |   0
 .../filter-detail.component.html              |   0
 .../filter-detail.component.scss              |   0
 .../filter-detail.component.spec.ts           |   0
 .../filter-detail/filter-detail.component.ts  |   5 +-
 .../filter-list/filter-list.component.html    |   0
 .../filter-list/filter-list.component.scss    |   0
 .../filter-list/filter-list.component.spec.ts |   0
 .../filter-list/filter-list.component.ts      |  12 +-
 src/app/datasets/components/index.ts          |  23 +++
 .../result-dataset.component.html             |   0
 .../result-dataset.component.scss             |   0
 .../result-dataset.component.spec.ts          |   0
 .../result-dataset.component.ts               |   7 +-
 .../result-post/result-post.component.html    |   0
 .../result-post/result-post.component.scss    |   0
 .../result-post/result-post.component.ts      |   0
 .../results-tab-scope.component.html          |   0
 .../results-tab-scope.component.scss          |   0
 .../results-tab-scope.component.spec.ts       |   0
 .../results-tab-scope.component.ts            |   5 +-
 .../components/results/results.component.html |   0
 .../components/results/results.component.scss |   0
 .../results/results.component.spec.ts         |   0
 .../components/results/results.component.ts   |  16 +-
 .../search-bar/search-bar.component.html      |   0
 .../search-bar/search-bar.component.scss      |   0
 .../search-bar/search-bar.component.spec.ts   |   5 +-
 .../search-bar/search-bar.component.ts        |  11 +-
 .../components/sort/sort.component.html       |   0
 .../components/sort/sort.component.scss       |   0
 .../components/sort/sort.component.spec.ts    |   0
 .../components/sort/sort.component.ts         |   0
 src/app/datasets/datasets-routing.module.ts   |  28 ++++
 src/app/datasets/datasets.module.ts           |  24 +++
 .../services/dataset-research.service.ts      |  25 ++-
 src/app/datasets/services/index.ts            |   8 +
 .../cms-post-detail.component.ts              |  13 +-
 .../cms-drafts-list.component.ts              |   2 +-
 .../components/home/home.component.html       |   2 +-
 .../components/home/home.component.ts         |  19 +--
 .../organizations/organizations.component.ts  |  18 +--
 .../reuse-detail/reuse-detail.component.ts    |  15 +-
 .../site-map/site-map.component.html          |   2 +-
 .../editorialisation.module.ts                |  16 +-
 .../services/editorialisation.service.ts      |   3 +-
 src/app/elasticsearch/elasticsearch.module.ts |  14 ++
 .../models/data.model.ts                      |   0
 .../models/dataset.model.ts                   |   6 +-
 .../models/editorial-metadata.model.ts        |   0
 .../models/elasticsearch-options.model.ts     |  46 +++---
 .../models/elasticsearch-response.model.ts}   |  20 ++-
 .../models/filter.model.ts                    |   0
 .../models/highlights.model.ts                |   0
 src/app/elasticsearch/models/index.ts         |  15 ++
 .../models/metadata.model.ts                  |   2 +-
 .../models/scopes-research.ts                 |   0
 .../models/search-completion.model.ts         |   0
 .../models/sort-option.model.ts               |   0
 .../models/suggestion.model.ts                |   0
 .../services/elasticsearch.service.ts         |  17 +-
 src/app/geosource/components/index.ts         |  74 ---------
 .../research/research.component.html          |   1 -
 .../research/research.component.scss          |   9 --
 .../research/research.component.spec.ts       |  45 ------
 .../components/research/research.component.ts |  27 ----
 src/app/geosource/geosource.module.ts         |  40 -----
 .../geosource/models/dataset-service.model.ts |   7 -
 .../models/elasticsearch-response.model.ts    |  12 --
 src/app/geosource/models/index.ts             |  14 --
 .../services/dataset-detail.service.spec.ts   |   3 -
 .../services/dataset-research.service.spec.ts |   3 -
 .../services/elasticsearch-response-mock.json |  40 -----
 .../services/elasticsearch.service.spec.ts    | 111 -------------
 src/app/geosource/services/index.ts           |  14 --
 src/app/map/components/map.component.ts       |  10 +-
 src/app/routes.ts                             |   7 -
 .../available-data.component.ts               |   4 +-
 .../user-services/user-services.component.ts  |   4 +-
 src/assets/config/config.json                 |   2 +-
 src/tsconfig.app.json                         |   2 +-
 144 files changed, 463 insertions(+), 992 deletions(-)
 delete mode 100644 src/app/app.routing.spec.ts
 delete mode 100644 src/app/core/services/error.service.spec.ts
 rename src/app/core/services/{file-service.ts => file.service.ts} (93%)
 delete mode 100644 src/app/core/services/notification.service.spec.ts
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.scss (95%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.ts (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-data-details/dataset-data-details.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-data-details/dataset-data-details.component.scss (93%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-data-details/dataset-data-details.component.ts (90%)
 rename src/app/{geosource => dataset-detail}/components/dataset-detail/dataset-detail.component.html (100%)
 rename src/app/{geosource => dataset-detail}/components/dataset-detail/dataset-detail.component.scss (100%)
 rename src/app/{geosource => dataset-detail}/components/dataset-detail/dataset-detail.component.ts (93%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-info/dataset-info.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-info/dataset-info.component.scss (94%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-info/dataset-info.component.spec.ts (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-info/dataset-info.component.ts (87%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-map/dataset-map.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-map/dataset-map.component.scss (95%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-map/dataset-map.component.ts (91%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/dataset-resources.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/dataset-resources.component.scss (94%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/dataset-resources.component.spec.ts (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/dataset-resources.component.ts (88%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/icon-format/icon-format.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/icon-format/icon-format.component.scss (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/icon-format/icon-format.component.ts (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resource-downloadable/resource-downloadable.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resource-downloadable/resource-downloadable.component.scss (95%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resource-downloadable/resource-downloadable.component.ts (89%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.scss (98%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.ts (96%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resources-queryable/resources-queryable.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resources-queryable/resources-queryable.component.scss (93%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-resources/resources-queryable/resources-queryable.component.ts (74%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-table-map/dataset-table-map.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-table-map/dataset-table-map.component.scss (96%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-table-map/dataset-table-map.component.ts (97%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-table/dataset-table.component.html (100%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-table/dataset-table.component.scss (95%)
 rename src/app/{geosource/components/dataset-detail => dataset-detail/components}/dataset-table/dataset-table.component.ts (92%)
 create mode 100644 src/app/dataset-detail/components/index.ts
 rename src/app/{geosource/geosource-routing.module.ts => dataset-detail/dataset-detail-routing.module.ts} (59%)
 create mode 100644 src/app/dataset-detail/dataset-detail.module.ts
 rename src/app/{geosource => dataset-detail}/models/dataset-child.model.ts (100%)
 create mode 100644 src/app/dataset-detail/models/index.ts
 rename src/app/{geosource => dataset-detail}/models/projection.model.ts (100%)
 rename src/app/{geosource => dataset-detail}/models/resource.model.ts (97%)
 rename src/app/{geosource => dataset-detail}/resolvers/dataset-detail.resolver.ts (80%)
 rename src/app/{geosource => dataset-detail}/resolvers/index.ts (65%)
 rename src/app/{geosource => dataset-detail}/services/dataset-detail.service.ts (96%)
 create mode 100644 src/app/dataset-detail/services/index.ts
 rename src/app/{geosource => dataset-detail}/services/resources.service.ts (100%)
 rename src/app/{geosource => datasets}/components/filter-list/filter-detail/filter-detail.component.html (100%)
 rename src/app/{geosource => datasets}/components/filter-list/filter-detail/filter-detail.component.scss (100%)
 rename src/app/{geosource => datasets}/components/filter-list/filter-detail/filter-detail.component.spec.ts (100%)
 rename src/app/{geosource => datasets}/components/filter-list/filter-detail/filter-detail.component.ts (93%)
 rename src/app/{geosource => datasets}/components/filter-list/filter-list.component.html (100%)
 rename src/app/{geosource => datasets}/components/filter-list/filter-list.component.scss (100%)
 rename src/app/{geosource => datasets}/components/filter-list/filter-list.component.spec.ts (100%)
 rename src/app/{geosource => datasets}/components/filter-list/filter-list.component.ts (88%)
 create mode 100644 src/app/datasets/components/index.ts
 rename src/app/{geosource => datasets}/components/results/result-dataset/result-dataset.component.html (100%)
 rename src/app/{geosource => datasets}/components/results/result-dataset/result-dataset.component.scss (100%)
 rename src/app/{geosource => datasets}/components/results/result-dataset/result-dataset.component.spec.ts (100%)
 rename src/app/{geosource => datasets}/components/results/result-dataset/result-dataset.component.ts (90%)
 rename src/app/{geosource => datasets}/components/results/result-post/result-post.component.html (100%)
 rename src/app/{geosource => datasets}/components/results/result-post/result-post.component.scss (100%)
 rename src/app/{geosource => datasets}/components/results/result-post/result-post.component.ts (100%)
 rename src/app/{geosource => datasets}/components/results/results-tab-scope/results-tab-scope.component.html (100%)
 rename src/app/{geosource => datasets}/components/results/results-tab-scope/results-tab-scope.component.scss (100%)
 rename src/app/{geosource => datasets}/components/results/results-tab-scope/results-tab-scope.component.spec.ts (100%)
 rename src/app/{geosource => datasets}/components/results/results-tab-scope/results-tab-scope.component.ts (71%)
 rename src/app/{geosource => datasets}/components/results/results.component.html (100%)
 rename src/app/{geosource => datasets}/components/results/results.component.scss (100%)
 rename src/app/{geosource => datasets}/components/results/results.component.spec.ts (100%)
 rename src/app/{geosource => datasets}/components/results/results.component.ts (94%)
 rename src/app/{geosource => datasets}/components/search-bar/search-bar.component.html (100%)
 rename src/app/{geosource => datasets}/components/search-bar/search-bar.component.scss (100%)
 rename src/app/{geosource => datasets}/components/search-bar/search-bar.component.spec.ts (91%)
 rename src/app/{geosource => datasets}/components/search-bar/search-bar.component.ts (95%)
 rename src/app/{geosource => datasets}/components/sort/sort.component.html (100%)
 rename src/app/{geosource => datasets}/components/sort/sort.component.scss (100%)
 rename src/app/{geosource => datasets}/components/sort/sort.component.spec.ts (100%)
 rename src/app/{geosource => datasets}/components/sort/sort.component.ts (100%)
 create mode 100644 src/app/datasets/datasets-routing.module.ts
 create mode 100644 src/app/datasets/datasets.module.ts
 rename src/app/{geosource => datasets}/services/dataset-research.service.ts (96%)
 create mode 100644 src/app/datasets/services/index.ts
 create mode 100644 src/app/elasticsearch/elasticsearch.module.ts
 rename src/app/{geosource => elasticsearch}/models/data.model.ts (100%)
 rename src/app/{geosource => elasticsearch}/models/dataset.model.ts (93%)
 rename src/app/{geosource => elasticsearch}/models/editorial-metadata.model.ts (100%)
 rename src/app/{geosource => elasticsearch}/models/elasticsearch-options.model.ts (87%)
 rename src/app/{geosource/models/elasticsearch-hit.model.ts => elasticsearch/models/elasticsearch-response.model.ts} (51%)
 rename src/app/{geosource => elasticsearch}/models/filter.model.ts (100%)
 rename src/app/{geosource => elasticsearch}/models/highlights.model.ts (100%)
 create mode 100644 src/app/elasticsearch/models/index.ts
 rename src/app/{geosource => elasticsearch}/models/metadata.model.ts (99%)
 rename src/app/{geosource => elasticsearch}/models/scopes-research.ts (100%)
 rename src/app/{geosource => elasticsearch}/models/search-completion.model.ts (100%)
 rename src/app/{geosource => elasticsearch}/models/sort-option.model.ts (100%)
 rename src/app/{geosource => elasticsearch}/models/suggestion.model.ts (100%)
 rename src/app/{geosource => elasticsearch}/services/elasticsearch.service.ts (98%)
 delete mode 100644 src/app/geosource/components/index.ts
 delete mode 100644 src/app/geosource/components/research/research.component.html
 delete mode 100644 src/app/geosource/components/research/research.component.scss
 delete mode 100644 src/app/geosource/components/research/research.component.spec.ts
 delete mode 100644 src/app/geosource/components/research/research.component.ts
 delete mode 100644 src/app/geosource/geosource.module.ts
 delete mode 100644 src/app/geosource/models/dataset-service.model.ts
 delete mode 100644 src/app/geosource/models/elasticsearch-response.model.ts
 delete mode 100644 src/app/geosource/models/index.ts
 delete mode 100644 src/app/geosource/services/dataset-detail.service.spec.ts
 delete mode 100644 src/app/geosource/services/dataset-research.service.spec.ts
 delete mode 100644 src/app/geosource/services/elasticsearch-response-mock.json
 delete mode 100644 src/app/geosource/services/elasticsearch.service.spec.ts
 delete mode 100644 src/app/geosource/services/index.ts

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 01fe9672..5c12447e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,7 +17,7 @@ build_development:
     - build
   only:
     - development
-    - fusion-table-map-universe
+    - refacto
   script:
     - export TAG=dev
     - export NGINX_PORT=8081
@@ -46,7 +46,7 @@ deploy_development:
   stage: deploy
   only:
     - development
-    - fusion-table-map-universe
+    - refacto
   script:
     - export TAG=dev
     - export NGINX_PORT=8081
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 7c4461b1..d818dfc9 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -1,12 +1,8 @@
 import { NgModule } from '@angular/core';
-import { Routes, RouterModule, PreloadAllModules } from '@angular/router';
+import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
 import { AppRoutes } from './routes';
 
 export const routes: Routes = [
-  // {
-  //   path: AppRoutes.research.uri,
-  //   loadChildren: './geosource/geosource.module#GeosourceModule',
-  // },
   {
     path: '**',
     redirectTo: AppRoutes.page404.uri,
diff --git a/src/app/app.routing.spec.ts b/src/app/app.routing.spec.ts
deleted file mode 100644
index af5765e1..00000000
--- a/src/app/app.routing.spec.ts
+++ /dev/null
@@ -1,151 +0,0 @@
-// import { TestBed, async } from '@angular/core/testing';
-// import { Router, Routes } from '@angular/router';
-// import { RouterTestingModule } from '@angular/router/testing';
-// import { AppComponent } from './app.component';
-// import { FormsModule } from '@angular/forms';
-
-// // importing routes from the different routing files
-// import { routes as AppRoutes } from './app-routing.module';
-// import { routes as GeosourceRoutes } from './geosource/geosource-routing.module';
-// import { routes as CoreRoutes } from './core/core-routing.module';
-// import { routes as EditorialisationRoutes } from './editorialisation/editorialisation-routing.module';
-
-// import { AppRoutes as RouteNames } from './routes';
-
-// // importing components
-// import { CoreComponents } from './core/components';
-// import { GeosourceComponents } from './geosource/components';
-// import { EditorialisationComponents } from './editorialisation/components';
-// import { SharedModule } from './shared/shared.module';
-// import { EditorialisationService, EditorialisationServices } from './editorialisation/services';
-// import { HttpClientModule } from '@angular/common/http';
-// import { GeosourceServices } from './geosource/services';
-// import { PostDetailResolver, PostsListResolver, PostVideoResolver } from './editorialisation/resolvers';
-// import { EditorialisationServiceMock } from './editorialisation/services/editorialisation.service.mock';
-// import { PageResolver } from './editorialisation/resolvers/page.resolver';
-
-// describe('App routing', () => {
-//   const routeNames = RouteNames;
-//   let router: Router;
-//   const routes: Routes = [
-//     ...AppRoutes,
-//     ...GeosourceRoutes,
-//     ...CoreRoutes,
-//     ...EditorialisationRoutes,
-//   ];
-
-//   beforeEach(async(() => {
-//     TestBed.configureTestingModule({
-//       imports: [
-//         FormsModule,
-//         SharedModule,
-//         HttpClientModule,
-//         RouterTestingModule.withRoutes(routes),
-//       ],
-//       declarations: [
-//         AppComponent,
-//         ...CoreComponents,
-//         ...GeosourceComponents,
-//         ...EditorialisationComponents,
-//       ],
-//       providers: [
-//         {
-//           provide: EditorialisationService,
-//           useValue: EditorialisationServiceMock,
-//         },
-//         {
-//           provide: PageResolver,
-//           useValue: { resolve() { } },
-//         },
-//         {
-//           provide: PostDetailResolver,
-//           useValue: { resolve() { } },
-//         },
-//         {
-//           provide: PostsListResolver,
-//           useValue: { resolve() { } },
-//         },
-//         {
-//           provide: PostVideoResolver,
-//           useValue: { resolve() { } },
-//         },
-//         ...GeosourceServices,
-//       ],
-//     }).compileComponents();
-//   }));
-
-//   beforeEach(() => {
-//     router = TestBed.get(Router);
-//     router.initialNavigation();
-//   });
-
-//   // ********* From geosource module ********* //
-
-//   it('navigate to "/recherche" redirects you to /recherche/datasets', (done) => {
-//     router.navigateByUrl('/' + routeNames.research).then(() => {
-//       expect(router.routerState.snapshot.url).toBe('/' + routeNames.research + '/' + routeNames.datasets);
-//       done();
-//     });
-//   });
-
-//   it('navigate to "/recherche/datasets" takes you to /datasets', (done) => {
-//     router.navigateByUrl('/' + routeNames.research + '/' + routeNames.datasets).then(() => {
-//       expect(router.routerState.snapshot.url).toBe('/' + routeNames.research + '/' + routeNames.datasets);
-//       done();
-//     });
-//   });
-
-//   it('navigate to "/recherche/datasets/abcdef" takes you to /recherche/datasets/abcdef', (done) => {
-//     router.navigateByUrl('/' + routeNames.research + '/' + routeNames.datasets + '/abcdef').then(() => {
-//       expect(router.routerState.snapshot.url).toBe(
-//         '/' + routeNames.research + '/' + routeNames.datasets + '/abcdef/' + routeNames.info);
-//       done();
-//     });
-//   });
-
-//   // ********* From core module ********* //
-
-//   it('navigate to "" redirects you to /accueil', (done) => {
-//     router.navigateByUrl('/').then(() => {
-//       expect(router.routerState.snapshot.url).toBe('/' + routeNames.home);
-//       done();
-//     });
-//   });
-
-//   // ********* From editorialisation module ********* //
-
-//   it('navigate to "/accueil" takes you to /accueil', (done) => {
-//     router.navigateByUrl('/' + routeNames.home).then(() => {
-//       expect(router.routerState.snapshot.url).toBe('/' + routeNames.home);
-//       done();
-//     });
-//   });
-
-//   it('navigate to "/demarche" takes you to /demarche', (done) => {
-//     router.navigateByUrl('/' + routeNames.approach).then(() => {
-//       expect(router.routerState.snapshot.url).toBe('/' + routeNames.approach);
-//       done();
-//     });
-//   });
-
-//   it('navigate to "/accessibilite" takes you to /accessibilite', (done) => {
-//     router.navigateByUrl('/' + routeNames.accessibility).then(() => {
-//       expect(router.routerState.snapshot.url).toBe('/' + routeNames.accessibility);
-//       done();
-//     });
-//   });
-
-//   it('navigate to "/plan-du-site" takes you to /plan-du-site', (done) => {
-//     router.navigateByUrl('/' + routeNames.siteMap).then(() => {
-//       expect(router.routerState.snapshot.url).toBe('/' + routeNames.siteMap);
-//       done();
-//     });
-//   });
-
-//   it('navigate to "/mentions-legales" takes you to /mentions-legales', (done) => {
-//     router.navigateByUrl('/' + routeNames.legalNotices).then(() => {
-//       expect(router.routerState.snapshot.url).toBe('/' + routeNames.legalNotices);
-//       done();
-//     });
-//   });
-// });
diff --git a/src/app/core/components/main/header/header.component.ts b/src/app/core/components/main/header/header.component.ts
index aadc9987..8793e17a 100644
--- a/src/app/core/components/main/header/header.component.ts
+++ b/src/app/core/components/main/header/header.component.ts
@@ -1,10 +1,9 @@
 import { Component, OnInit } from '@angular/core';
+import { NavigationEnd, Router } from '@angular/router';
+import { Angulartics2Piwik } from 'angulartics2/piwik';
 import { AppRoutes } from '../../../../routes';
-import { DatasetResearchService } from '../../../../geosource/services';
-import { Router, NavigationEnd } from '@angular/router';
 import { UserService } from '../../../../user/services';
 import { AppStateService } from '../../../services';
-import { Angulartics2Piwik } from 'angulartics2/piwik';
 
 @Component({
   selector: 'app-header',
@@ -20,7 +19,6 @@ export class HeaderComponent implements OnInit {
   AppRoutes = AppRoutes;
 
   constructor(
-    private _datasetResearchService: DatasetResearchService,
     private _router: Router,
     private _userService: UserService,
     private _appStateService: AppStateService,
@@ -28,13 +26,6 @@ export class HeaderComponent implements OnInit {
   ) { }
 
   ngOnInit() {
-    this._datasetResearchService.searchChange$.subscribe(() => {
-      // Redirect to results page if this is not the current page
-      if (this._router.url.split('/').pop() !== AppRoutes.research.uri) {
-        this._router.navigate(['/', AppRoutes.research.uri]);
-      }
-    });
-
     this._router.events.subscribe((event) => {
 
       if (event instanceof NavigationEnd) {
diff --git a/src/app/core/components/main/main.component.ts b/src/app/core/components/main/main.component.ts
index 4b4281a0..5a037155 100644
--- a/src/app/core/components/main/main.component.ts
+++ b/src/app/core/components/main/main.component.ts
@@ -1,8 +1,8 @@
-import { Component, OnInit, OnDestroy } from '@angular/core';
-import { Router, NavigationEnd } from '@angular/router';
-import { AppRoutes } from '../../../routes';
-import { EmailService, AppStateService } from '../../services';
+import { Component, OnDestroy, OnInit } from '@angular/core';
+import { NavigationEnd, Router } from '@angular/router';
 import { Subscription } from 'rxjs';
+import { AppRoutes } from '../../../routes';
+import { AppStateService } from '../../services';
 
 @Component({
   selector: 'app-main',
diff --git a/src/app/core/components/main/side-menu/side-menu.component.html b/src/app/core/components/main/side-menu/side-menu.component.html
index a6758b40..01b343ce 100644
--- a/src/app/core/components/main/side-menu/side-menu.component.html
+++ b/src/app/core/components/main/side-menu/side-menu.component.html
@@ -20,7 +20,7 @@
       </a>
     </li>
     <li>
-      <a [routerLink]="['/', AppRoutes.research.uri]" routerLinkActive="active-link" [tabIndex]="isOpened ? 0 : -1">
+      <a [routerLink]="['/', AppRoutes.datasets.uri]" routerLinkActive="active-link" [tabIndex]="isOpened ? 0 : -1">
         <div class="icon-item">
           <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 23">
             <path class="main" fill-rule="evenodd"
@@ -31,8 +31,7 @@
       </a>
     </li>
     <li *ngIf="APP_CONFIG.theFunctionalitiesInterruptor.partners">
-      <a [routerLink]="['/', AppRoutes.partners.uri]" routerLinkActive="active-link"
-        [tabIndex]="isOpened ? 0 : -1">
+      <a [routerLink]="['/', AppRoutes.partners.uri]" routerLinkActive="active-link" [tabIndex]="isOpened ? 0 : -1">
         <div class="icon-item">
           <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 23">
             <g id="picto_x5F_acteur">
diff --git a/src/app/core/components/main/side-menu/side-menu.component.ts b/src/app/core/components/main/side-menu/side-menu.component.ts
index 5e95051f..2a5c28c6 100644
--- a/src/app/core/components/main/side-menu/side-menu.component.ts
+++ b/src/app/core/components/main/side-menu/side-menu.component.ts
@@ -1,11 +1,11 @@
-import { Component, OnInit, Input, EventEmitter, Output, OnDestroy } from '@angular/core';
-import { AppRoutes } from '../../../../routes';
-import { Router, NavigationEnd, ActivatedRoute, NavigationStart } from '@angular/router';
+import { Component, Input, OnDestroy, OnInit } from '@angular/core';
+import { NavigationEnd, NavigationStart, Router } from '@angular/router';
+import { Subscription } from 'rxjs';
 import { environment } from '../../../../../environments/environment';
+import { ElasticsearchService } from '../../../../elasticsearch/services/elasticsearch.service';
+import { AppRoutes } from '../../../../routes';
 import { UserService } from '../../../../user/services';
-import { ElasticsearchService } from '../../../../geosource/services';
 import { AppStateService } from '../../../services';
-import { Subscription } from 'rxjs';
 import { APP_CONFIG } from '../../../services/app-config.service';
 
 @Component({
diff --git a/src/app/core/core-routing.module.ts b/src/app/core/core-routing.module.ts
index 8d7648c4..7374399a 100644
--- a/src/app/core/core-routing.module.ts
+++ b/src/app/core/core-routing.module.ts
@@ -1,5 +1,5 @@
 import { NgModule } from '@angular/core';
-import { Routes, RouterModule } from '@angular/router';
+import { RouterModule, Routes } from '@angular/router';
 import { AppRoutes } from '../routes';
 import { ContactComponent } from './components';
 import { PageNotFoundComponent } from './components/page-not-found/page-not-found.component';
@@ -28,6 +28,6 @@ export const routes: Routes = [
 
 @NgModule({
   imports: [RouterModule.forChild(routes)],
-  exports: [RouterModule]
+  exports: [RouterModule],
 })
 export class CoreRoutingModule { }
diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts
index 5fd7cc81..a717641c 100644
--- a/src/app/core/core.module.ts
+++ b/src/app/core/core.module.ts
@@ -1,17 +1,17 @@
-import { NgModule, ErrorHandler } from '@angular/core';
 import { CommonModule } from '@angular/common';
-
-import { CoreRoutingModule } from './core-routing.module';
-import { CoreComponents, MainComponent, FeedbackComponent } from './components';
+import { HTTP_INTERCEPTORS } from '@angular/common/http';
+import { ErrorHandler, NgModule } from '@angular/core';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { CookieService } from 'ngx-cookie-service';
+import { DatasetsModule } from '../datasets/datasets.module';
 import { SharedModule } from '../shared/shared.module';
+import { CoreComponents, MainComponent } from './components';
+import { CloseMenuDirective } from './components/main/close-menu-directive';
+import { CoreRoutingModule } from './core-routing.module';
 import { ErrorsHandler } from './handlers/errors-handler';
 import { HttpErrorResponseInterceptor } from './interceptors/http-error-response-interceptor';
-import { HTTP_INTERCEPTORS } from '@angular/common/http';
 import { CoreServices } from './services';
-import { ReactiveFormsModule, FormsModule } from '@angular/forms';
-import { GeosourceModule } from '../geosource/geosource.module';
-import { CookieService } from 'ngx-cookie-service';
-import { CloseMenuDirective } from './components/main/close-menu-directive';
+
 
 @NgModule({
   imports: [
@@ -20,7 +20,7 @@ import { CloseMenuDirective } from './components/main/close-menu-directive';
     SharedModule,
     ReactiveFormsModule,
     FormsModule,
-    GeosourceModule.forRoot(),
+    DatasetsModule,
   ],
   declarations: [...CoreComponents, CloseMenuDirective],
   providers: [
diff --git a/src/app/core/interceptors/http-error-response-interceptor.ts b/src/app/core/interceptors/http-error-response-interceptor.ts
index 184be714..e97d4dad 100644
--- a/src/app/core/interceptors/http-error-response-interceptor.ts
+++ b/src/app/core/interceptors/http-error-response-interceptor.ts
@@ -1,13 +1,10 @@
 // http-service-interceptor.ts
+// tslint:disable-next-line: max-line-length
+import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';
 import { Injectable } from '@angular/core';
+import { Router } from '@angular/router';
 import { Observable } from 'rxjs';
-import {
-  HttpInterceptor, HttpRequest, HttpHandler,
-  HttpEvent, HttpResponse, HttpErrorResponse,
-} from '@angular/common/http';
 import { tap } from 'rxjs/operators';
-import { Router } from '@angular/router';
-import { AppRoutes } from '../../routes';
 import { UserService } from '../../user/services';
 
 @Injectable()
diff --git a/src/app/core/services/error.service.spec.ts b/src/app/core/services/error.service.spec.ts
deleted file mode 100644
index 49c1840e..00000000
--- a/src/app/core/services/error.service.spec.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { HttpErrorResponse } from '@angular/common/http';
-import { ErrorService, NotificationService } from '../../core/services';
-import { BehaviorSubject } from 'rxjs';
-import { Notification } from '../models';
-
-describe('ErrorService', () => {
-
-  let errorService: ErrorService;
-  let notificationServiceMock: NotificationService;
-
-  beforeEach(() => {
-    const subject = new BehaviorSubject(null);
-    notificationServiceMock = {
-      get notification$(): BehaviorSubject<Notification> {
-        return subject;
-      },
-      notify(notification: Notification) {
-        subject.next(notification);
-      },
-    } as NotificationService;
-    errorService = new ErrorService(notificationServiceMock);
-  });
-
-  describe('handleError(err, opt)', () => {
-
-    // it('should return the same HTTPERROR', () => {
-    //   // given
-    //   const error = new HttpErrorResponse({
-    //     error: 'User unauthenticated',
-    //     status: 401,
-    //     url: 'https://data.reloaded-dev.alpha.grandlyon.com/fr',
-    //   });
-    //   // when
-    //   const result = errorService.handleError(error, { message: 'Custom message' });
-
-    //   // then
-    //   expect(result).toBe(error);
-    //   expect(result instanceof HttpErrorResponse).toBeTruthy();
-    // });
-
-    it('should transform the error with an friendly error message', () => {
-      // given
-      const friendlyMessage = 'Friendly message';
-      const stack = 'ugly stack';
-      const error = new Error('ugly error message');
-      error.stack = stack;
-
-      // when
-      const result = errorService.handleError(error, { message: friendlyMessage });
-      // then
-      expect(result.message).toBe(friendlyMessage);
-      expect(result['stack']).toBe(stack);
-    });
-  });
-});
diff --git a/src/app/core/services/file-service.ts b/src/app/core/services/file.service.ts
similarity index 93%
rename from src/app/core/services/file-service.ts
rename to src/app/core/services/file.service.ts
index cd4ff1e3..e76b10ff 100644
--- a/src/app/core/services/file-service.ts
+++ b/src/app/core/services/file.service.ts
@@ -1,7 +1,7 @@
-import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
+import { Injectable } from '@angular/core';
 import { Observable } from 'rxjs';
-import { map, catchError } from 'rxjs/operators';
+import { catchError } from 'rxjs/operators';
 import { notificationMessages } from '../../../i18n/traductions';
 import { ErrorService } from './error.service';
 
diff --git a/src/app/core/services/index.ts b/src/app/core/services/index.ts
index 020738bf..eef3ec75 100644
--- a/src/app/core/services/index.ts
+++ b/src/app/core/services/index.ts
@@ -1,17 +1,15 @@
+import { AppConfigService } from './app-config.service';
+import { AppStateService } from './app-state.service';
+import { EmailService } from './email.service';
 import { ErrorService } from './error.service';
-import { NotificationService } from './notification.service';
+import { FileService } from './file.service';
 import { MatomoService } from './matomo.service';
 import { NavigationHistoryService } from './navigation-history.service';
+import { NotificationService } from './notification.service';
 import { StorageService } from './storage.service';
-import { EmailService } from './email.service';
-import { FileService } from './file-service';
-import { AppConfigService } from './app-config.service';
-import { AppStateService } from './app-state.service';
 
-export {
-  ErrorService, NotificationService, MatomoService, NavigationHistoryService, EmailService, FileService,
-  AppConfigService, AppStateService,
-};
+// tslint:disable-next-line: max-line-length
+export { ErrorService, NotificationService, MatomoService, NavigationHistoryService, EmailService, FileService, AppConfigService, AppStateService, };
 
 // tslint:disable-next-line:variable-name
 export const CoreServices = [
diff --git a/src/app/core/services/notification.service.spec.ts b/src/app/core/services/notification.service.spec.ts
deleted file mode 100644
index 8161d862..00000000
--- a/src/app/core/services/notification.service.spec.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { NotificationService } from '../../core/services';
-import { BehaviorSubject } from 'rxjs';
-import { Notification } from '../models';
-
-describe('NotificationService', () => {
-
-  let notificationService: NotificationService;
-
-  beforeEach(() => {
-    notificationService = new NotificationService();
-  });
-
-  describe('get notification$()', () => {
-
-    it('should return a behaviorSubject<Notification>', () => {
-      // given
-
-      // when
-      const result = notificationService.notification$;
-
-      // then
-      expect(result instanceof BehaviorSubject).toBeTruthy();
-    });
-
-    it('should call next function of the _notification BehaviorSubject', () => {
-      // Given
-      const nextSpy = spyOn(notificationService.notification$, 'next').and.callThrough();
-      const notification = new Notification({ message: 'Error', type: 'error' });
-
-      // When
-      notificationService.notify(notification);
-
-      // Then
-      expect(nextSpy).toHaveBeenCalledWith(notification);
-    });
-  });
-});
diff --git a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.html b/src/app/dataset-detail/components/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.html
rename to src/app/dataset-detail/components/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.scss b/src/app/dataset-detail/components/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.scss
similarity index 95%
rename from src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.scss
rename to src/app/dataset-detail/components/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.scss
index 04acad21..e8589c4b 100644
--- a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.scss
+++ b/src/app/dataset-detail/components/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.scss
@@ -1,4 +1,4 @@
-@import "../../../../../../scss/variables";
+@import "../../../../../scss/variables";
 
 .property-value {
   font-size: 0.875rem;
diff --git a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.ts b/src/app/dataset-detail/components/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.ts
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.ts
rename to src/app/dataset-detail/components/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component.ts
diff --git a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-details.component.html b/src/app/dataset-detail/components/dataset-data-details/dataset-data-details.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-details.component.html
rename to src/app/dataset-detail/components/dataset-data-details/dataset-data-details.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-details.component.scss b/src/app/dataset-detail/components/dataset-data-details/dataset-data-details.component.scss
similarity index 93%
rename from src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-details.component.scss
rename to src/app/dataset-detail/components/dataset-data-details/dataset-data-details.component.scss
index 619e851a..4840767e 100644
--- a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-details.component.scss
+++ b/src/app/dataset-detail/components/dataset-data-details/dataset-data-details.component.scss
@@ -1,4 +1,4 @@
-@import "../../../../../scss/variables";
+@import "../../../../scss/variables";
 
 $details-header-height: 36px;
 
diff --git a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-details.component.ts b/src/app/dataset-detail/components/dataset-data-details/dataset-data-details.component.ts
similarity index 90%
rename from src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-details.component.ts
rename to src/app/dataset-detail/components/dataset-data-details/dataset-data-details.component.ts
index d12bf86d..9420f99b 100644
--- a/src/app/geosource/components/dataset-detail/dataset-data-details/dataset-data-details.component.ts
+++ b/src/app/dataset-detail/components/dataset-data-details/dataset-data-details.component.ts
@@ -1,5 +1,5 @@
-import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
-import { DatasetDetailService } from '../../../services';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { DatasetDetailService } from '../../services';
 
 @Component({
   selector: 'app-dataset-data-details',
diff --git a/src/app/geosource/components/dataset-detail/dataset-detail.component.html b/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-detail.component.html
rename to src/app/dataset-detail/components/dataset-detail/dataset-detail.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-detail.component.scss b/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.scss
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-detail.component.scss
rename to src/app/dataset-detail/components/dataset-detail/dataset-detail.component.scss
diff --git a/src/app/geosource/components/dataset-detail/dataset-detail.component.ts b/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts
similarity index 93%
rename from src/app/geosource/components/dataset-detail/dataset-detail.component.ts
rename to src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts
index c4066637..6c91207b 100644
--- a/src/app/geosource/components/dataset-detail/dataset-detail.component.ts
+++ b/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts
@@ -1,15 +1,14 @@
-import { filter } from 'rxjs/operators';
-import { Component, OnInit, OnDestroy } from '@angular/core';
-import { Metadata } from '../../models';
+import { Component, OnDestroy, OnInit } from '@angular/core';
 import { ActivatedRoute, Router, Scroll } from '@angular/router';
-import { DatasetDetailService } from '../../services';
-import { typesMetadata } from '../../models/metadata.model';
-import { AppRoutes } from '../../../routes';
-import { NotificationService, NavigationHistoryService } from '../../../core/services';
-import { ViewportScroller } from '../../../../../node_modules/@angular/common';
 import { Subscription } from 'rxjs';
-import { IPageHeaderInfo } from '../../../shared/models';
+import { filter } from 'rxjs/operators';
+import { ViewportScroller } from '../../../../../node_modules/@angular/common';
 import { datatsetDataRepresentationType, geosource } from '../../../../i18n/traductions';
+import { NavigationHistoryService } from '../../../core/services';
+import { Metadata, typesMetadata } from '../../../elasticsearch/models';
+import { AppRoutes } from '../../../routes';
+import { IPageHeaderInfo } from '../../../shared/models';
+import { DatasetDetailService } from '../../services';
 
 @Component({
   selector: 'app-dataset-detail',
@@ -31,7 +30,6 @@ export class DatasetDetailComponent implements OnInit, OnDestroy {
     private _route: ActivatedRoute,
     private _datasetDetailService: DatasetDetailService,
     private _router: Router,
-    private _notificationService: NotificationService,
     private _scroller: ViewportScroller,
     private _navigationHistoryService: NavigationHistoryService,
   ) { }
@@ -125,7 +123,7 @@ export class DatasetDetailComponent implements OnInit, OnDestroy {
       if (this.hasTable || this.hasMap) {
         this._router.navigate([
           `/${AppRoutes.datasets.uri}/${this._datasetDetailService.dataset.slug}/${AppRoutes.data.uri}`,
-        // tslint:disable-next-line: align
+          // tslint:disable-next-line: align
         ], { queryParamsHandling: 'preserve' });
       } else {
         this._router.navigate([
@@ -164,7 +162,7 @@ export class DatasetDetailComponent implements OnInit, OnDestroy {
 
     // If url is null then redirect to research page
     if (url == null) {
-      url = `/${AppRoutes.research.uri}`;
+      url = `/${AppRoutes.datasets.uri}`;
     }
 
     this._router.navigateByUrl(url);
diff --git a/src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.html b/src/app/dataset-detail/components/dataset-info/dataset-info.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.html
rename to src/app/dataset-detail/components/dataset-info/dataset-info.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.scss b/src/app/dataset-detail/components/dataset-info/dataset-info.component.scss
similarity index 94%
rename from src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.scss
rename to src/app/dataset-detail/components/dataset-info/dataset-info.component.scss
index 1a66f88e..2845766f 100644
--- a/src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.scss
+++ b/src/app/dataset-detail/components/dataset-info/dataset-info.component.scss
@@ -1,5 +1,5 @@
-@import "../../../../../scss/variables";
-@import "../../../../../../node_modules/bulma/sass/utilities/_all";
+@import "../../../../scss/variables";
+@import "../../../../../node_modules/bulma/sass/utilities/_all";
 
 span,
 p {
diff --git a/src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.spec.ts b/src/app/dataset-detail/components/dataset-info/dataset-info.component.spec.ts
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.spec.ts
rename to src/app/dataset-detail/components/dataset-info/dataset-info.component.spec.ts
diff --git a/src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.ts b/src/app/dataset-detail/components/dataset-info/dataset-info.component.ts
similarity index 87%
rename from src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.ts
rename to src/app/dataset-detail/components/dataset-info/dataset-info.component.ts
index cb6cce62..4bede400 100644
--- a/src/app/geosource/components/dataset-detail/dataset-info/dataset-info.component.ts
+++ b/src/app/dataset-detail/components/dataset-info/dataset-info.component.ts
@@ -1,13 +1,9 @@
-import { Component, OnInit, OnDestroy } from '@angular/core';
-import { geosource, datatsetDataRepresentationType, notificationMessages } from '../../../../../i18n/traductions';
-import { Metadata, IMetadataLink } from '../../../models';
-import { typesMetadata, IResponsibleParty } from '../../../models/metadata.model';
-
-import { DatasetDetailService } from '../../../services';
+import { Component, OnDestroy, OnInit } from '@angular/core';
 import { Subscription } from 'rxjs';
-import { AppRoutes } from '../../../../routes';
-import { CMSContent } from '../../../../editorialisation/models';
-import { EditorialisationService } from '../../../../editorialisation/services';
+import { datatsetDataRepresentationType, geosource } from '../../../../i18n/traductions';
+import { IResponsibleParty, Metadata, typesMetadata } from '../../../elasticsearch/models';
+import { AppRoutes } from '../../../routes';
+import { DatasetDetailService } from '../../services';
 
 @Component({
   selector: 'app-dataset-info',
@@ -66,7 +62,7 @@ export class DatasetInfoComponent implements OnInit, OnDestroy {
           maxNorth: `${this.metadata.max_north} nord,`,
           maxWest: `${this.metadata.max_west} ouest`,
         },
-        coordinatesSystem: this.metadata.crs ,
+        coordinatesSystem: this.metadata.crs,
       };
     }
 
diff --git a/src/app/geosource/components/dataset-detail/dataset-map/dataset-map.component.html b/src/app/dataset-detail/components/dataset-map/dataset-map.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-map/dataset-map.component.html
rename to src/app/dataset-detail/components/dataset-map/dataset-map.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-map/dataset-map.component.scss b/src/app/dataset-detail/components/dataset-map/dataset-map.component.scss
similarity index 95%
rename from src/app/geosource/components/dataset-detail/dataset-map/dataset-map.component.scss
rename to src/app/dataset-detail/components/dataset-map/dataset-map.component.scss
index 6390d536..c488234d 100644
--- a/src/app/geosource/components/dataset-detail/dataset-map/dataset-map.component.scss
+++ b/src/app/dataset-detail/components/dataset-map/dataset-map.component.scss
@@ -1,4 +1,4 @@
-@import "../../../../../scss/variables";
+@import "../../../../scss/variables";
 
 div {
   height: 100%;
diff --git a/src/app/geosource/components/dataset-detail/dataset-map/dataset-map.component.ts b/src/app/dataset-detail/components/dataset-map/dataset-map.component.ts
similarity index 91%
rename from src/app/geosource/components/dataset-detail/dataset-map/dataset-map.component.ts
rename to src/app/dataset-detail/components/dataset-map/dataset-map.component.ts
index e7270a1b..811ca820 100644
--- a/src/app/geosource/components/dataset-detail/dataset-map/dataset-map.component.ts
+++ b/src/app/dataset-detail/components/dataset-map/dataset-map.component.ts
@@ -1,12 +1,11 @@
-import { Component, OnInit, ViewChild, Input, Output, EventEmitter, OnDestroy, ElementRef } from '@angular/core';
-import { MapService } from '../../../../map/services/map.service';
-import { DatasetDetailService } from '../../../services';
+import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';
 import { Subscription } from 'rxjs';
-import { Metadata, Data } from '../../../models';
-import { MapComponent } from '../../../../map/components';
-import { MapOptions } from '../../../../map/models/map-options';
-import { linkFormats } from '../../../models/metadata.model';
-import { APP_CONFIG } from '../../../../core/services/app-config.service';
+import { APP_CONFIG } from '../../../core/services/app-config.service';
+import { Data, linkFormats, Metadata } from '../../../elasticsearch/models';
+import { MapComponent } from '../../../map/components';
+import { MapOptions } from '../../../map/models/map-options';
+import { MapService } from '../../../map/services/map.service';
+import { DatasetDetailService } from '../../services';
 
 @Component({
   selector: 'app-dataset-map',
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.html b/src/app/dataset-detail/components/dataset-resources/dataset-resources.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.html
rename to src/app/dataset-detail/components/dataset-resources/dataset-resources.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.scss b/src/app/dataset-detail/components/dataset-resources/dataset-resources.component.scss
similarity index 94%
rename from src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.scss
rename to src/app/dataset-detail/components/dataset-resources/dataset-resources.component.scss
index 8e8591eb..63ae774f 100644
--- a/src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.scss
+++ b/src/app/dataset-detail/components/dataset-resources/dataset-resources.component.scss
@@ -1,5 +1,5 @@
-@import "../../../../../scss/variables";
-@import "../../../../../../node_modules/bulma/sass/utilities/_all";
+@import "../../../../scss/variables";
+@import "../../../../../node_modules/bulma/sass/utilities/_all";
 
 .resource-container {
   padding: 2rem 1.25rem 1.25rem 1.25rem;
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.spec.ts b/src/app/dataset-detail/components/dataset-resources/dataset-resources.component.spec.ts
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.spec.ts
rename to src/app/dataset-detail/components/dataset-resources/dataset-resources.component.spec.ts
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.ts b/src/app/dataset-detail/components/dataset-resources/dataset-resources.component.ts
similarity index 88%
rename from src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.ts
rename to src/app/dataset-detail/components/dataset-resources/dataset-resources.component.ts
index 9dda24ea..b697c2e8 100644
--- a/src/app/geosource/components/dataset-detail/dataset-resources/dataset-resources.component.ts
+++ b/src/app/dataset-detail/components/dataset-resources/dataset-resources.component.ts
@@ -1,11 +1,11 @@
-import { Component, OnInit, OnDestroy } from '@angular/core';
-import { DatasetDetailService, ResourcesService } from '../../../services';
-import { Metadata, Resource } from '../../../models';
-import { Subscription, forkJoin } from 'rxjs';
-import { IMetadataLink } from '../../../models/metadata.model';
-import { NotificationService } from '../../../../core/services';
-import { notificationMessages } from '../../../../../i18n/traductions';
-import { Notification } from '../../../../core/models';
+import { Component, OnDestroy, OnInit } from '@angular/core';
+import { Subscription } from 'rxjs';
+import { notificationMessages } from '../../../../i18n/traductions';
+import { Notification } from '../../../core/models';
+import { NotificationService } from '../../../core/services';
+import { IMetadataLink, Metadata } from '../../../elasticsearch/models';
+import { Resource } from '../../models';
+import { DatasetDetailService, ResourcesService } from '../../services';
 
 @Component({
   selector: 'app-dataset-resources',
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/icon-format/icon-format.component.html b/src/app/dataset-detail/components/dataset-resources/icon-format/icon-format.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-resources/icon-format/icon-format.component.html
rename to src/app/dataset-detail/components/dataset-resources/icon-format/icon-format.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/icon-format/icon-format.component.scss b/src/app/dataset-detail/components/dataset-resources/icon-format/icon-format.component.scss
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-resources/icon-format/icon-format.component.scss
rename to src/app/dataset-detail/components/dataset-resources/icon-format/icon-format.component.scss
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/icon-format/icon-format.component.ts b/src/app/dataset-detail/components/dataset-resources/icon-format/icon-format.component.ts
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-resources/icon-format/icon-format.component.ts
rename to src/app/dataset-detail/components/dataset-resources/icon-format/icon-format.component.ts
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component.html b/src/app/dataset-detail/components/dataset-resources/resource-downloadable/resource-downloadable.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component.html
rename to src/app/dataset-detail/components/dataset-resources/resource-downloadable/resource-downloadable.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component.scss b/src/app/dataset-detail/components/dataset-resources/resource-downloadable/resource-downloadable.component.scss
similarity index 95%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component.scss
rename to src/app/dataset-detail/components/dataset-resources/resource-downloadable/resource-downloadable.component.scss
index 0e2b726c..60fc8792 100644
--- a/src/app/geosource/components/dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component.scss
+++ b/src/app/dataset-detail/components/dataset-resources/resource-downloadable/resource-downloadable.component.scss
@@ -1,4 +1,4 @@
-@import '../../../../../../scss/variables.scss';
+@import '../../../../../scss/variables.scss';
 
 .resource {
   background-color: white;
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component.ts b/src/app/dataset-detail/components/dataset-resources/resource-downloadable/resource-downloadable.component.ts
similarity index 89%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component.ts
rename to src/app/dataset-detail/components/dataset-resources/resource-downloadable/resource-downloadable.component.ts
index fa58db23..0db15fc4 100644
--- a/src/app/geosource/components/dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component.ts
+++ b/src/app/dataset-detail/components/dataset-resources/resource-downloadable/resource-downloadable.component.ts
@@ -1,6 +1,6 @@
-import { Component, OnInit, Input } from '@angular/core';
-import { IMetadataLink } from '../../../../models';
-import { NotificationService, FileService } from '../../../../../core/services';
+import { Component, Input, OnInit } from '@angular/core';
+import { FileService, NotificationService } from '../../../../core/services';
+import { IMetadataLink } from '../../../../elasticsearch/models';
 
 @Component({
   selector: 'app-resource-downloadable',
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.html b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.html
rename to src/app/dataset-detail/components/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.scss b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.scss
similarity index 98%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.scss
rename to src/app/dataset-detail/components/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.scss
index 1c9d6847..c721abd3 100644
--- a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.scss
+++ b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.scss
@@ -1,4 +1,4 @@
-@import '../../../../../../../scss/variables.scss';
+@import '../../../../../../scss/variables.scss';
 
 .resource-item {
   display: grid;
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.ts b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.ts
similarity index 96%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.ts
rename to src/app/dataset-detail/components/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.ts
index 75d3923c..c68be847 100644
--- a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.ts
+++ b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component.ts
@@ -1,14 +1,12 @@
-import { Component, OnInit, Input } from '@angular/core';
-import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
-import { Resource, Metadata } from '../../../../../models';
-import { Format } from '../../../../../models/resource.model';
-import { communeInsee } from '../../../../../../../assets/resources/commune-insee';
-import { DatasetDetailService } from '../../../../../services';
-import { linkFormats } from '../../../../../models/metadata.model';
-import { geosource, notificationMessages } from '../../../../../../../i18n/traductions';
+import { Component, Input, OnInit } from '@angular/core';
+import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
 import { saveAs } from 'file-saver';
-import { NotificationService } from '../../../../../../core/services';
-import { Projection } from '../../../../../models/projection.model';
+import { communeInsee } from '../../../../../../assets/resources/commune-insee';
+import { geosource, notificationMessages } from '../../../../../../i18n/traductions';
+import { NotificationService } from '../../../../../core/services';
+import { linkFormats, Metadata } from '../../../../../elasticsearch/models';
+import { Format, Projection, Resource } from '../../../../models';
+import { DatasetDetailService } from '../../../../services';
 
 @Component({
   selector: 'app-resource-queryable',
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resources-queryable.component.html b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resources-queryable.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resources-queryable.component.html
rename to src/app/dataset-detail/components/dataset-resources/resources-queryable/resources-queryable.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resources-queryable.component.scss b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resources-queryable.component.scss
similarity index 93%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resources-queryable.component.scss
rename to src/app/dataset-detail/components/dataset-resources/resources-queryable/resources-queryable.component.scss
index b6e32fcc..c10f4a94 100644
--- a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resources-queryable.component.scss
+++ b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resources-queryable.component.scss
@@ -1,4 +1,4 @@
-@import '../../../../../../scss/variables.scss';
+@import '../../../../../scss/variables.scss';
 
 .resources {
   margin: 0;
diff --git a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resources-queryable.component.ts b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resources-queryable.component.ts
similarity index 74%
rename from src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resources-queryable.component.ts
rename to src/app/dataset-detail/components/dataset-resources/resources-queryable/resources-queryable.component.ts
index cf82a39b..65f88233 100644
--- a/src/app/geosource/components/dataset-detail/dataset-resources/resources-queryable/resources-queryable.component.ts
+++ b/src/app/dataset-detail/components/dataset-resources/resources-queryable/resources-queryable.component.ts
@@ -1,8 +1,8 @@
-import { Component, OnInit, Input } from '@angular/core';
-import { Resource, Metadata } from '../../../../models';
-import { ResourcesService } from '../../../../services';
-import { Projection } from '../../../../models/projection.model';
-import { environment } from '../../../../../../environments/environment';
+import { Component, Input, OnInit } from '@angular/core';
+import { environment } from '../../../../../environments/environment';
+import { Metadata } from '../../../../elasticsearch/models';
+import { Projection, Resource } from '../../../models';
+import { ResourcesService } from '../../../services';
 
 @Component({
   selector: 'app-resources-queryable',
diff --git a/src/app/geosource/components/dataset-detail/dataset-table-map/dataset-table-map.component.html b/src/app/dataset-detail/components/dataset-table-map/dataset-table-map.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-table-map/dataset-table-map.component.html
rename to src/app/dataset-detail/components/dataset-table-map/dataset-table-map.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-table-map/dataset-table-map.component.scss b/src/app/dataset-detail/components/dataset-table-map/dataset-table-map.component.scss
similarity index 96%
rename from src/app/geosource/components/dataset-detail/dataset-table-map/dataset-table-map.component.scss
rename to src/app/dataset-detail/components/dataset-table-map/dataset-table-map.component.scss
index 784feda7..2193eabd 100644
--- a/src/app/geosource/components/dataset-detail/dataset-table-map/dataset-table-map.component.scss
+++ b/src/app/dataset-detail/components/dataset-table-map/dataset-table-map.component.scss
@@ -1,5 +1,5 @@
-@import "../../../../../scss/variables";
-@import "../../../../../../node_modules/bulma/sass/utilities/_all";
+@import "../../../../scss/variables.scss";
+@import "../../../../../node_modules/bulma/sass/utilities/_all";
 
 .component-wrapper {
   max-width: 100vw;
@@ -76,7 +76,7 @@
   }
 
   .properties-dropdown button {
-    background-image: url('../../../../../assets/img/picto_colonnes.svg');
+    background-image: url('../../../../assets/img/picto_colonnes.svg');
     background-size: 36px 36px;
     background-repeat: no-repeat;
     background-position: center;
@@ -294,14 +294,14 @@
 }
 
 .btn-exit-fullscreen {
-  background-image: url('../../../../../assets/img/picto_fullscreen_off.svg');
+  background-image: url('../../../../assets/img/picto_fullscreen_off.svg');
   background-size: 36px 36px;
   background-repeat: no-repeat;
   background-position: center;
 }
 
 .btn-fullscreen {
-  background-image: url('../../../../../assets/img/picto_fullscreen_on.svg');
+  background-image: url('../../../../assets/img/picto_fullscreen_on.svg');
   background-size: 36px 36px;
   background-repeat: no-repeat;
   background-position: center;
diff --git a/src/app/geosource/components/dataset-detail/dataset-table-map/dataset-table-map.component.ts b/src/app/dataset-detail/components/dataset-table-map/dataset-table-map.component.ts
similarity index 97%
rename from src/app/geosource/components/dataset-detail/dataset-table-map/dataset-table-map.component.ts
rename to src/app/dataset-detail/components/dataset-table-map/dataset-table-map.component.ts
index 0b91d5b5..d33a0de1 100644
--- a/src/app/geosource/components/dataset-detail/dataset-table-map/dataset-table-map.component.ts
+++ b/src/app/dataset-detail/components/dataset-table-map/dataset-table-map.component.ts
@@ -1,9 +1,9 @@
-import { Component, OnInit, ViewChild, OnDestroy, ElementRef, AfterViewInit } from '@angular/core';
-import { DatasetDetailService } from '../../../services';
-import { DatasetMapComponent } from '../dataset-map/dataset-map.component';
+import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
 import { FormControl } from '@angular/forms';
-import { Data } from '../../../models';
 import { Subscription } from 'rxjs';
+import { Data } from '../../../elasticsearch/models';
+import { DatasetDetailService } from '../../services';
+import { DatasetMapComponent } from '../dataset-map/dataset-map.component';
 
 @Component({
   selector: 'app-dataset-table-map',
diff --git a/src/app/geosource/components/dataset-detail/dataset-table/dataset-table.component.html b/src/app/dataset-detail/components/dataset-table/dataset-table.component.html
similarity index 100%
rename from src/app/geosource/components/dataset-detail/dataset-table/dataset-table.component.html
rename to src/app/dataset-detail/components/dataset-table/dataset-table.component.html
diff --git a/src/app/geosource/components/dataset-detail/dataset-table/dataset-table.component.scss b/src/app/dataset-detail/components/dataset-table/dataset-table.component.scss
similarity index 95%
rename from src/app/geosource/components/dataset-detail/dataset-table/dataset-table.component.scss
rename to src/app/dataset-detail/components/dataset-table/dataset-table.component.scss
index e72c230c..e4d11fe3 100644
--- a/src/app/geosource/components/dataset-detail/dataset-table/dataset-table.component.scss
+++ b/src/app/dataset-detail/components/dataset-table/dataset-table.component.scss
@@ -1,5 +1,5 @@
-@import "../../../../../scss/variables";
-@import "../../../../../../node_modules/bulma/sass/utilities/_all";
+@import "../../../../scss/variables";
+@import "../../../../../node_modules/bulma/sass/utilities/_all";
 
 .data-table {
   display: grid;
diff --git a/src/app/geosource/components/dataset-detail/dataset-table/dataset-table.component.ts b/src/app/dataset-detail/components/dataset-table/dataset-table.component.ts
similarity index 92%
rename from src/app/geosource/components/dataset-detail/dataset-table/dataset-table.component.ts
rename to src/app/dataset-detail/components/dataset-table/dataset-table.component.ts
index a59f4ea3..9fb3bd1c 100644
--- a/src/app/geosource/components/dataset-detail/dataset-table/dataset-table.component.ts
+++ b/src/app/dataset-detail/components/dataset-table/dataset-table.component.ts
@@ -1,12 +1,10 @@
-import {
-  Component, OnInit, ElementRef, QueryList, ViewChildren,
-  OnDestroy, Input, Output, EventEmitter
-} from '@angular/core';
-import { DatasetDetailService } from '../../../services';
-import { Data } from '../../../models';
-import { Subscription } from '../../../../../../node_modules/rxjs';
-import { geosource } from '../../../../../i18n/traductions';
-import { AppRoutes } from '../../../../routes';
+// tslint:disable-next-line: max-line-length
+import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, QueryList, ViewChildren } from '@angular/core';
+import { Subscription } from 'rxjs';
+import { geosource } from '../../../../i18n/traductions';
+import { Data } from '../../../elasticsearch/models';
+import { AppRoutes } from '../../../routes';
+import { DatasetDetailService } from '../../services';
 
 @Component({
   selector: 'app-dataset-table',
diff --git a/src/app/dataset-detail/components/index.ts b/src/app/dataset-detail/components/index.ts
new file mode 100644
index 00000000..f4b4a10c
--- /dev/null
+++ b/src/app/dataset-detail/components/index.ts
@@ -0,0 +1,33 @@
+// tslint:disable-next-line: max-line-length
+import { DatasetDataDetailPropertiesComponent } from './dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component';
+import { DatasetDataDetailsComponent } from './dataset-data-details/dataset-data-details.component';
+import { DatasetDetailComponent } from './dataset-detail/dataset-detail.component';
+import { DatasetInfoComponent } from './dataset-info/dataset-info.component';
+import { DatasetMapComponent } from './dataset-map/dataset-map.component';
+import { DatasetResourcesComponent } from './dataset-resources/dataset-resources.component';
+import { IconFormatComponent } from './dataset-resources/icon-format/icon-format.component';
+// tslint:disable-next-line:max-line-length
+import { ResourceDownloadableComponent } from './dataset-resources/resource-downloadable/resource-downloadable.component';
+// tslint:disable-next-line:max-line-length
+import { ResourceQueryableComponent } from './dataset-resources/resources-queryable/resource-queryable/resource-queryable.component';
+import { ResourcesQueryableComponent } from './dataset-resources/resources-queryable/resources-queryable.component';
+import { DatasetTableMapComponent } from './dataset-table-map/dataset-table-map.component';
+import { DatasetTableComponent } from './dataset-table/dataset-table.component';
+
+export { DatasetDetailComponent, DatasetResourcesComponent, ResourceQueryableComponent, ResourceDownloadableComponent, DatasetMapComponent, DatasetInfoComponent, DatasetTableMapComponent, DatasetTableComponent, ResourcesQueryableComponent, IconFormatComponent, DatasetDataDetailsComponent, DatasetDataDetailPropertiesComponent };
+
+// tslint:disable-next-line:variable-name
+export const DatasetDetailComponents = [
+  DatasetDetailComponent,
+  DatasetResourcesComponent,
+  ResourceQueryableComponent,
+  ResourceDownloadableComponent,
+  DatasetMapComponent,
+  DatasetInfoComponent,
+  DatasetTableMapComponent,
+  DatasetTableComponent,
+  ResourcesQueryableComponent,
+  IconFormatComponent,
+  DatasetDataDetailsComponent,
+  DatasetDataDetailPropertiesComponent,
+];
diff --git a/src/app/geosource/geosource-routing.module.ts b/src/app/dataset-detail/dataset-detail-routing.module.ts
similarity index 59%
rename from src/app/geosource/geosource-routing.module.ts
rename to src/app/dataset-detail/dataset-detail-routing.module.ts
index b195df07..0485df6d 100644
--- a/src/app/geosource/geosource-routing.module.ts
+++ b/src/app/dataset-detail/dataset-detail-routing.module.ts
@@ -1,39 +1,15 @@
 import { NgModule } from '@angular/core';
-import { Routes, RouterModule } from '@angular/router';
-import {
-  ResultsComponent, DatasetDetailComponent, ResearchComponent, DatasetInfoComponent,
-  DatasetResourcesComponent,
-  DatasetTableMapComponent,
-} from './components';
+import { RouterModule, Routes } from '@angular/router';
 import { AppRoutes } from '../routes';
+// tslint:disable-next-line: max-line-length
+import { DatasetDetailComponent, DatasetInfoComponent, DatasetResourcesComponent, DatasetTableMapComponent } from './components';
 import { DatasetDetailResolver } from './resolvers';
 
 export const routes: Routes = [
-  {
-    path: AppRoutes.research.uri,
-    component: ResearchComponent,
-    data: {
-      title: AppRoutes.research.title,
-    },
-    children: [
-      {
-        path: '',
-        component: ResultsComponent,
-        data: {
-          title: AppRoutes.datasets.title,
-        },
-        pathMatch: 'full',
-      },
-    ],
-  },
   // Some of the parteners already used the english version of this routing so in order to not break again there link
   // we implemented a fallback routes that redirects to the new routing
   {
-    path: 'datasets/:id',
-    redirectTo: `${AppRoutes.datasets.uri}/:id`,
-  },
-  {
-    path: `${AppRoutes.datasets.uri}/:id`,
+    path: '',
     component: DatasetDetailComponent,
     resolve: {
       dataset: DatasetDetailResolver,
@@ -68,4 +44,4 @@ export const routes: Routes = [
   exports: [RouterModule],
   imports: [RouterModule.forChild(routes)],
 })
-export class GeosourceRoutingModule { }
+export class DatasetDetailRoutingModule { }
diff --git a/src/app/dataset-detail/dataset-detail.module.ts b/src/app/dataset-detail/dataset-detail.module.ts
new file mode 100644
index 00000000..d635bbee
--- /dev/null
+++ b/src/app/dataset-detail/dataset-detail.module.ts
@@ -0,0 +1,29 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { InlineSVGModule } from 'ng-inline-svg';
+import { InfiniteScrollModule } from 'ngx-infinite-scroll';
+import { ElasticsearchModule } from '../elasticsearch/elasticsearch.module';
+import { MapModule } from '../map/map.module';
+import { SharedModule } from '../shared/shared.module';
+import { DatasetDetailComponents } from './components';
+import { DatasetDetailRoutingModule } from './dataset-detail-routing.module';
+import { DatasetDetailResolvers } from './resolvers';
+import { DatasetDetailServices } from './services';
+
+@NgModule({
+  declarations: [...DatasetDetailComponents],
+  imports: [
+    CommonModule,
+    DatasetDetailRoutingModule,
+    ElasticsearchModule,
+    FormsModule,
+    ReactiveFormsModule,
+    MapModule,
+    SharedModule,
+    InlineSVGModule.forRoot(),
+    InfiniteScrollModule,
+  ],
+  providers: [...DatasetDetailServices, ...DatasetDetailResolvers],
+})
+export class DatasetDetailModule { }
diff --git a/src/app/geosource/models/dataset-child.model.ts b/src/app/dataset-detail/models/dataset-child.model.ts
similarity index 100%
rename from src/app/geosource/models/dataset-child.model.ts
rename to src/app/dataset-detail/models/dataset-child.model.ts
diff --git a/src/app/dataset-detail/models/index.ts b/src/app/dataset-detail/models/index.ts
new file mode 100644
index 00000000..60f20910
--- /dev/null
+++ b/src/app/dataset-detail/models/index.ts
@@ -0,0 +1,4 @@
+export { DatasetChild, IDatasetRawChild } from './dataset-child.model';
+export { IProjection, Projection } from './projection.model';
+export { Format, IFormat, IResource, IResourceFormat, Resource } from './resource.model';
+
diff --git a/src/app/geosource/models/projection.model.ts b/src/app/dataset-detail/models/projection.model.ts
similarity index 100%
rename from src/app/geosource/models/projection.model.ts
rename to src/app/dataset-detail/models/projection.model.ts
diff --git a/src/app/geosource/models/resource.model.ts b/src/app/dataset-detail/models/resource.model.ts
similarity index 97%
rename from src/app/geosource/models/resource.model.ts
rename to src/app/dataset-detail/models/resource.model.ts
index 644ca166..4455d79d 100644
--- a/src/app/geosource/models/resource.model.ts
+++ b/src/app/dataset-detail/models/resource.model.ts
@@ -1,4 +1,4 @@
-import { IMetadataLink } from '.';
+import { IMetadataLink } from "../../elasticsearch/models";
 
 export interface IFormat {
   id: number;
diff --git a/src/app/geosource/resolvers/dataset-detail.resolver.ts b/src/app/dataset-detail/resolvers/dataset-detail.resolver.ts
similarity index 80%
rename from src/app/geosource/resolvers/dataset-detail.resolver.ts
rename to src/app/dataset-detail/resolvers/dataset-detail.resolver.ts
index f372e944..00be768c 100644
--- a/src/app/geosource/resolvers/dataset-detail.resolver.ts
+++ b/src/app/dataset-detail/resolvers/dataset-detail.resolver.ts
@@ -1,9 +1,9 @@
-import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
 import { Injectable } from '@angular/core';
-import { catchError, map } from 'rxjs/operators';
+import { ActivatedRouteSnapshot, Resolve } from '@angular/router';
 import { of } from 'rxjs';
+import { catchError } from 'rxjs/operators';
+import { Dataset } from '../../elasticsearch/models';
 import { DatasetDetailService } from '../services';
-import { Dataset, Metadata, IMetadata } from '../models';
 
 @Injectable()
 export class DatasetDetailResolver implements Resolve<Dataset> {
diff --git a/src/app/geosource/resolvers/index.ts b/src/app/dataset-detail/resolvers/index.ts
similarity index 65%
rename from src/app/geosource/resolvers/index.ts
rename to src/app/dataset-detail/resolvers/index.ts
index af5791ad..c60a08bb 100644
--- a/src/app/geosource/resolvers/index.ts
+++ b/src/app/dataset-detail/resolvers/index.ts
@@ -1,10 +1,8 @@
 import { DatasetDetailResolver } from './dataset-detail.resolver';
 
-export {
-  DatasetDetailResolver,
-};
+export { DatasetDetailResolver };
 
 // tslint:disable-next-line:variable-name
-export const GeosourceResolvers = [
+export const DatasetDetailResolvers = [
   DatasetDetailResolver,
 ];
diff --git a/src/app/geosource/services/dataset-detail.service.ts b/src/app/dataset-detail/services/dataset-detail.service.ts
similarity index 96%
rename from src/app/geosource/services/dataset-detail.service.ts
rename to src/app/dataset-detail/services/dataset-detail.service.ts
index ba06147f..56aafcad 100644
--- a/src/app/geosource/services/dataset-detail.service.ts
+++ b/src/app/dataset-detail/services/dataset-detail.service.ts
@@ -1,14 +1,12 @@
 import { Injectable } from '@angular/core';
-import { ElasticsearchService } from './elasticsearch.service';
-import {
-  Metadata, Dataset, DatasetChild, Data, IElasticsearchResponse, ElasticsearchOptions,
-  EditorialMetadata,
-} from '../models';
-import { Observable, Subject, of, forkJoin } from 'rxjs';
-import { map, catchError, flatMap, tap, finalize } from 'rxjs/operators';
-import { ErrorService, MatomoService } from '../../core/services';
+import { Observable, of, Subject } from 'rxjs';
+import { catchError, finalize, flatMap, map, tap } from 'rxjs/operators';
 import { notificationMessages } from '../../../i18n/traductions';
-import { IDatasetRawChild } from '../models/dataset-child.model';
+import { ErrorService, MatomoService } from '../../core/services';
+// tslint:disable-next-line: max-line-length
+import { Data, Dataset, EditorialMetadata, ElasticsearchOptions, IElasticsearchResponse, Metadata } from '../../elasticsearch/models';
+import { ElasticsearchService } from '../../elasticsearch/services/elasticsearch.service';
+import { DatasetChild, IDatasetRawChild } from '../models';
 
 @Injectable()
 export class DatasetDetailService {
diff --git a/src/app/dataset-detail/services/index.ts b/src/app/dataset-detail/services/index.ts
new file mode 100644
index 00000000..d72f59e5
--- /dev/null
+++ b/src/app/dataset-detail/services/index.ts
@@ -0,0 +1,10 @@
+import { DatasetDetailService } from './dataset-detail.service';
+import { ResourcesService } from './resources.service';
+
+export { DatasetDetailService, ResourcesService };
+
+// tslint:disable-next-line:variable-name
+export const DatasetDetailServices = [
+  DatasetDetailService,
+  ResourcesService,
+];
diff --git a/src/app/geosource/services/resources.service.ts b/src/app/dataset-detail/services/resources.service.ts
similarity index 100%
rename from src/app/geosource/services/resources.service.ts
rename to src/app/dataset-detail/services/resources.service.ts
diff --git a/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.html b/src/app/datasets/components/filter-list/filter-detail/filter-detail.component.html
similarity index 100%
rename from src/app/geosource/components/filter-list/filter-detail/filter-detail.component.html
rename to src/app/datasets/components/filter-list/filter-detail/filter-detail.component.html
diff --git a/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.scss b/src/app/datasets/components/filter-list/filter-detail/filter-detail.component.scss
similarity index 100%
rename from src/app/geosource/components/filter-list/filter-detail/filter-detail.component.scss
rename to src/app/datasets/components/filter-list/filter-detail/filter-detail.component.scss
diff --git a/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.spec.ts b/src/app/datasets/components/filter-list/filter-detail/filter-detail.component.spec.ts
similarity index 100%
rename from src/app/geosource/components/filter-list/filter-detail/filter-detail.component.spec.ts
rename to src/app/datasets/components/filter-list/filter-detail/filter-detail.component.spec.ts
diff --git a/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.ts b/src/app/datasets/components/filter-list/filter-detail/filter-detail.component.ts
similarity index 93%
rename from src/app/geosource/components/filter-list/filter-detail/filter-detail.component.ts
rename to src/app/datasets/components/filter-list/filter-detail/filter-detail.component.ts
index a714cddb..5005ff01 100644
--- a/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.ts
+++ b/src/app/datasets/components/filter-list/filter-detail/filter-detail.component.ts
@@ -1,7 +1,6 @@
+import { Component, Input, OnInit } from '@angular/core';
+import { Aggregation, Filter } from '../../../../elasticsearch/models';
 import { DatasetResearchService } from '../../../services';
-import { Component, OnInit, Input } from '@angular/core';
-import { Filter } from '../../../models';
-import { Aggregation } from '../../../models/filter.model';
 
 @Component({
   selector: 'app-filter-detail',
diff --git a/src/app/geosource/components/filter-list/filter-list.component.html b/src/app/datasets/components/filter-list/filter-list.component.html
similarity index 100%
rename from src/app/geosource/components/filter-list/filter-list.component.html
rename to src/app/datasets/components/filter-list/filter-list.component.html
diff --git a/src/app/geosource/components/filter-list/filter-list.component.scss b/src/app/datasets/components/filter-list/filter-list.component.scss
similarity index 100%
rename from src/app/geosource/components/filter-list/filter-list.component.scss
rename to src/app/datasets/components/filter-list/filter-list.component.scss
diff --git a/src/app/geosource/components/filter-list/filter-list.component.spec.ts b/src/app/datasets/components/filter-list/filter-list.component.spec.ts
similarity index 100%
rename from src/app/geosource/components/filter-list/filter-list.component.spec.ts
rename to src/app/datasets/components/filter-list/filter-list.component.spec.ts
diff --git a/src/app/geosource/components/filter-list/filter-list.component.ts b/src/app/datasets/components/filter-list/filter-list.component.ts
similarity index 88%
rename from src/app/geosource/components/filter-list/filter-list.component.ts
rename to src/app/datasets/components/filter-list/filter-list.component.ts
index c40913b5..702bdfdf 100644
--- a/src/app/geosource/components/filter-list/filter-list.component.ts
+++ b/src/app/datasets/components/filter-list/filter-list.component.ts
@@ -1,10 +1,8 @@
-import { Component, OnInit, OnDestroy } from '@angular/core';
-import { DatasetResearchService } from '../../services';
+import { Component, OnDestroy, OnInit } from '@angular/core';
 import { Subscription } from 'rxjs';
-import { Filter } from '../../models';
-import { Aggregation, IActiveFiltersTemplate } from '../../models/filter.model';
-import { scopesResearch } from '../../models/scopes-research';
 import { geosource } from '../../../../i18n/traductions';
+import { Aggregation, Filter, IActiveFiltersTemplate, scopesResearch } from '../../../elasticsearch/models';
+import { DatasetResearchService } from '../../services';
 
 @Component({
   selector: 'app-filter-list',
@@ -91,8 +89,8 @@ export class FilterListComponent implements OnInit, OnDestroy {
     const parentKey = (aggregationToRemove.aggregation.parentAggregation) ?
       aggregationToRemove.aggregation.parentAggregation.key : '';
     this._datasetResearchService.updateAggregation(aggregationToRemove.filter.field,
-                                                   aggregationToRemove.aggregation.key, false,
-                                                   parentKey);
+      aggregationToRemove.aggregation.key, false,
+      parentKey);
     this._datasetResearchService.triggerSearchChange();
 
   }
diff --git a/src/app/datasets/components/index.ts b/src/app/datasets/components/index.ts
new file mode 100644
index 00000000..0c4188fe
--- /dev/null
+++ b/src/app/datasets/components/index.ts
@@ -0,0 +1,23 @@
+import { FilterDetailComponent } from './filter-list/filter-detail/filter-detail.component';
+import { FilterListComponent } from './filter-list/filter-list.component';
+import { ResultDatasetComponent } from './results/result-dataset/result-dataset.component';
+import { ResultPostComponent } from './results/result-post/result-post.component';
+import { ResultsTabScopeComponent } from './results/results-tab-scope/results-tab-scope.component';
+import { ResultsComponent } from './results/results.component';
+// tslint:disable-next-line:max-line-length
+import { SearchBarComponent } from './search-bar/search-bar.component';
+import { SortComponent } from './sort/sort.component';
+
+export { ResultsComponent, SearchBarComponent, SortComponent, FilterListComponent, FilterDetailComponent, ResultDatasetComponent, ResultsTabScopeComponent, ResultPostComponent };
+
+// tslint:disable-next-line:variable-name
+export const DatasetsComponents = [
+  ResultsComponent,
+  SearchBarComponent,
+  SortComponent,
+  FilterListComponent,
+  FilterDetailComponent,
+  ResultDatasetComponent,
+  ResultsTabScopeComponent,
+  ResultPostComponent,
+];
diff --git a/src/app/geosource/components/results/result-dataset/result-dataset.component.html b/src/app/datasets/components/results/result-dataset/result-dataset.component.html
similarity index 100%
rename from src/app/geosource/components/results/result-dataset/result-dataset.component.html
rename to src/app/datasets/components/results/result-dataset/result-dataset.component.html
diff --git a/src/app/geosource/components/results/result-dataset/result-dataset.component.scss b/src/app/datasets/components/results/result-dataset/result-dataset.component.scss
similarity index 100%
rename from src/app/geosource/components/results/result-dataset/result-dataset.component.scss
rename to src/app/datasets/components/results/result-dataset/result-dataset.component.scss
diff --git a/src/app/geosource/components/results/result-dataset/result-dataset.component.spec.ts b/src/app/datasets/components/results/result-dataset/result-dataset.component.spec.ts
similarity index 100%
rename from src/app/geosource/components/results/result-dataset/result-dataset.component.spec.ts
rename to src/app/datasets/components/results/result-dataset/result-dataset.component.spec.ts
diff --git a/src/app/geosource/components/results/result-dataset/result-dataset.component.ts b/src/app/datasets/components/results/result-dataset/result-dataset.component.ts
similarity index 90%
rename from src/app/geosource/components/results/result-dataset/result-dataset.component.ts
rename to src/app/datasets/components/results/result-dataset/result-dataset.component.ts
index 14f9cb60..411f518d 100644
--- a/src/app/geosource/components/results/result-dataset/result-dataset.component.ts
+++ b/src/app/datasets/components/results/result-dataset/result-dataset.component.ts
@@ -1,8 +1,7 @@
-import { Component, OnInit, Input } from '@angular/core';
-import { Dataset } from '../../../models';
-import { AppRoutes } from '../../../../routes';
+import { Component, Input, OnInit } from '@angular/core';
 import { geosource } from '../../../../../i18n/traductions';
-import { typesMetadata } from '../../../models/metadata.model';
+import { Dataset, typesMetadata } from '../../../../elasticsearch/models';
+import { AppRoutes } from '../../../../routes';
 
 @Component({
   selector: 'app-result-dataset',
diff --git a/src/app/geosource/components/results/result-post/result-post.component.html b/src/app/datasets/components/results/result-post/result-post.component.html
similarity index 100%
rename from src/app/geosource/components/results/result-post/result-post.component.html
rename to src/app/datasets/components/results/result-post/result-post.component.html
diff --git a/src/app/geosource/components/results/result-post/result-post.component.scss b/src/app/datasets/components/results/result-post/result-post.component.scss
similarity index 100%
rename from src/app/geosource/components/results/result-post/result-post.component.scss
rename to src/app/datasets/components/results/result-post/result-post.component.scss
diff --git a/src/app/geosource/components/results/result-post/result-post.component.ts b/src/app/datasets/components/results/result-post/result-post.component.ts
similarity index 100%
rename from src/app/geosource/components/results/result-post/result-post.component.ts
rename to src/app/datasets/components/results/result-post/result-post.component.ts
diff --git a/src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.html b/src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.html
similarity index 100%
rename from src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.html
rename to src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.html
diff --git a/src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.scss b/src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.scss
similarity index 100%
rename from src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.scss
rename to src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.scss
diff --git a/src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.spec.ts b/src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.spec.ts
similarity index 100%
rename from src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.spec.ts
rename to src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.spec.ts
diff --git a/src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.ts b/src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.ts
similarity index 71%
rename from src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.ts
rename to src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.ts
index a5582a56..9505a8d2 100644
--- a/src/app/geosource/components/results/results-tab-scope/results-tab-scope.component.ts
+++ b/src/app/datasets/components/results/results-tab-scope/results-tab-scope.component.ts
@@ -1,6 +1,5 @@
-import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';
-import { scopesResearch } from '../../../models/scopes-research';
-import { IScope } from '../../../models/elasticsearch-options.model';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { IScope, scopesResearch } from '../../../../elasticsearch/models';
 
 @Component({
   selector: 'app-results-tab-scope',
diff --git a/src/app/geosource/components/results/results.component.html b/src/app/datasets/components/results/results.component.html
similarity index 100%
rename from src/app/geosource/components/results/results.component.html
rename to src/app/datasets/components/results/results.component.html
diff --git a/src/app/geosource/components/results/results.component.scss b/src/app/datasets/components/results/results.component.scss
similarity index 100%
rename from src/app/geosource/components/results/results.component.scss
rename to src/app/datasets/components/results/results.component.scss
diff --git a/src/app/geosource/components/results/results.component.spec.ts b/src/app/datasets/components/results/results.component.spec.ts
similarity index 100%
rename from src/app/geosource/components/results/results.component.spec.ts
rename to src/app/datasets/components/results/results.component.spec.ts
diff --git a/src/app/geosource/components/results/results.component.ts b/src/app/datasets/components/results/results.component.ts
similarity index 94%
rename from src/app/geosource/components/results/results.component.ts
rename to src/app/datasets/components/results/results.component.ts
index bf783d22..2cf9ee24 100644
--- a/src/app/geosource/components/results/results.component.ts
+++ b/src/app/datasets/components/results/results.component.ts
@@ -1,16 +1,14 @@
-import { Component, OnInit, OnDestroy } from '@angular/core';
-import { DatasetResearchService } from '../../services';
-import { Dataset, IMetadataLink, SearchSuggestion } from '../../models';
+import { DatePipe, ViewportScroller } from '@angular/common';
+import { Component, OnDestroy, OnInit } from '@angular/core';
 import { Subscription } from 'rxjs';
-import { PaginatorOptions } from '../../../shared/models';
-import { AppRoutes } from '../../../routes';
-import { NotificationService } from '../../../core/services';
 import { Notification } from '../../../core/models';
-import { DatePipe, ViewportScroller } from '@angular/common';
+import { NotificationService } from '../../../core/services';
 import { MatomoService } from '../../../core/services/matomo.service';
 import { CMSContent } from '../../../editorialisation/models';
-import { scopesResearch } from '../../models/scopes-research';
-import { IScope, ICountScope } from '../../models/elasticsearch-options.model';
+import { Dataset, IMetadataLink, IScope, SearchSuggestion } from '../../../elasticsearch/models';
+import { AppRoutes } from '../../../routes';
+import { PaginatorOptions } from '../../../shared/models';
+import { DatasetResearchService } from '../../services';
 
 @Component({
   selector: 'app-results',
diff --git a/src/app/geosource/components/search-bar/search-bar.component.html b/src/app/datasets/components/search-bar/search-bar.component.html
similarity index 100%
rename from src/app/geosource/components/search-bar/search-bar.component.html
rename to src/app/datasets/components/search-bar/search-bar.component.html
diff --git a/src/app/geosource/components/search-bar/search-bar.component.scss b/src/app/datasets/components/search-bar/search-bar.component.scss
similarity index 100%
rename from src/app/geosource/components/search-bar/search-bar.component.scss
rename to src/app/datasets/components/search-bar/search-bar.component.scss
diff --git a/src/app/geosource/components/search-bar/search-bar.component.spec.ts b/src/app/datasets/components/search-bar/search-bar.component.spec.ts
similarity index 91%
rename from src/app/geosource/components/search-bar/search-bar.component.spec.ts
rename to src/app/datasets/components/search-bar/search-bar.component.spec.ts
index 57189c13..d0cd5e28 100644
--- a/src/app/geosource/components/search-bar/search-bar.component.spec.ts
+++ b/src/app/datasets/components/search-bar/search-bar.component.spec.ts
@@ -1,4 +1,4 @@
-import { ElasticsearchService } from '../../services/elasticsearch.service';
+
 import { DatasetResearchService } from '../../services';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
@@ -8,6 +8,7 @@ import { FormsModule } from '@angular/forms';
 import { HttpClientModule } from '@angular/common/http';
 import { ErrorService, NotificationService } from '../../../core/services';
 import { StorageService } from '../../../core/services/storage.service';
+import { ElasticsearchService } from '../../../elasticsearch/services/elasticsearch.service';
 
 describe('SearchBarComponent', () => {
   let component: SearchBarComponent;
@@ -31,7 +32,7 @@ describe('SearchBarComponent', () => {
         NotificationService,
       ],
     })
-    .compileComponents();
+      .compileComponents();
   }));
 
   beforeEach(() => {
diff --git a/src/app/geosource/components/search-bar/search-bar.component.ts b/src/app/datasets/components/search-bar/search-bar.component.ts
similarity index 95%
rename from src/app/geosource/components/search-bar/search-bar.component.ts
rename to src/app/datasets/components/search-bar/search-bar.component.ts
index d6e6348d..a9d425b4 100644
--- a/src/app/geosource/components/search-bar/search-bar.component.ts
+++ b/src/app/datasets/components/search-bar/search-bar.component.ts
@@ -1,11 +1,10 @@
-import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';
-import { DatasetResearchService } from '../../services';
-import { SearchCompletion } from '../../models';
-import { debounceTime } from 'rxjs/operators';
-import { Subject } from 'rxjs';
 import { ViewportScroller } from '@angular/common';
-import { IScope } from '../../models/elasticsearch-options.model';
+import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
+import { Subject } from 'rxjs';
+import { debounceTime } from 'rxjs/operators';
 import { geosource } from '../../../../i18n/traductions';
+import { IScope, SearchCompletion } from '../../../elasticsearch/models';
+import { DatasetResearchService } from '../../services';
 
 @Component({
   selector: 'app-search-bar',
diff --git a/src/app/geosource/components/sort/sort.component.html b/src/app/datasets/components/sort/sort.component.html
similarity index 100%
rename from src/app/geosource/components/sort/sort.component.html
rename to src/app/datasets/components/sort/sort.component.html
diff --git a/src/app/geosource/components/sort/sort.component.scss b/src/app/datasets/components/sort/sort.component.scss
similarity index 100%
rename from src/app/geosource/components/sort/sort.component.scss
rename to src/app/datasets/components/sort/sort.component.scss
diff --git a/src/app/geosource/components/sort/sort.component.spec.ts b/src/app/datasets/components/sort/sort.component.spec.ts
similarity index 100%
rename from src/app/geosource/components/sort/sort.component.spec.ts
rename to src/app/datasets/components/sort/sort.component.spec.ts
diff --git a/src/app/geosource/components/sort/sort.component.ts b/src/app/datasets/components/sort/sort.component.ts
similarity index 100%
rename from src/app/geosource/components/sort/sort.component.ts
rename to src/app/datasets/components/sort/sort.component.ts
diff --git a/src/app/datasets/datasets-routing.module.ts b/src/app/datasets/datasets-routing.module.ts
new file mode 100644
index 00000000..f464b059
--- /dev/null
+++ b/src/app/datasets/datasets-routing.module.ts
@@ -0,0 +1,28 @@
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+import { AppRoutes } from '../routes';
+import { ResultsComponent } from './components';
+
+export const routes: Routes = [
+  {
+    path: AppRoutes.datasets.uri,
+    component: ResultsComponent,
+    data: {
+      title: AppRoutes.datasets.title,
+    },
+  },
+  {
+    path: 'datasets/:id',
+    redirectTo: `${AppRoutes.datasets.uri}/:id`,
+  },
+  {
+    path: `${AppRoutes.datasets.uri}/:id`,
+    loadChildren: '../dataset-detail/dataset-detail.module#DatasetDetailModule',
+  },
+];
+
+@NgModule({
+  exports: [RouterModule],
+  imports: [RouterModule.forChild(routes)],
+})
+export class DatasetsRoutingModule { }
diff --git a/src/app/datasets/datasets.module.ts b/src/app/datasets/datasets.module.ts
new file mode 100644
index 00000000..bbfa95e0
--- /dev/null
+++ b/src/app/datasets/datasets.module.ts
@@ -0,0 +1,24 @@
+import { CommonModule, DatePipe } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { ElasticsearchModule } from '../elasticsearch/elasticsearch.module';
+import { SharedModule } from '../shared/shared.module';
+import { DatasetsComponents, SearchBarComponent } from './components';
+import { DatasetsRoutingModule } from './datasets-routing.module';
+import { DatasetsServices } from './services';
+
+@NgModule({
+  declarations: [...DatasetsComponents],
+  exports: [
+    SearchBarComponent,
+  ],
+  imports: [
+    CommonModule,
+    DatasetsRoutingModule,
+    ElasticsearchModule,
+    SharedModule,
+    FormsModule,
+  ],
+  providers: [...DatasetsServices, DatePipe],
+})
+export class DatasetsModule { }
diff --git a/src/app/geosource/services/dataset-research.service.ts b/src/app/datasets/services/dataset-research.service.ts
similarity index 96%
rename from src/app/geosource/services/dataset-research.service.ts
rename to src/app/datasets/services/dataset-research.service.ts
index 31b8e934..2ed96e99 100644
--- a/src/app/geosource/services/dataset-research.service.ts
+++ b/src/app/datasets/services/dataset-research.service.ts
@@ -1,21 +1,16 @@
 import { Injectable } from '@angular/core';
-
+import { Router } from '@angular/router';
+import { Angulartics2Piwik } from 'angulartics2/piwik';
 import { Observable, Subject } from 'rxjs';
-
-import {
-  ISortOption, ElasticsearchOptions, IElasticsearchHit, Dataset, Highlights,
-  SearchCompletion, SearchSuggestion,
-} from '../models';
-import { ElasticsearchService } from './elasticsearch.service';
-import { map, catchError, tap } from 'rxjs/operators';
-import { notificationMessages, geosource } from '../../../i18n/traductions';
+import { catchError, map, tap } from 'rxjs/operators';
+import { geosource, notificationMessages } from '../../../i18n/traductions';
 import { ErrorService } from '../../core/services';
-import { Aggregation, Filter } from '../models/filter.model';
 import { CMSContent } from '../../editorialisation/models';
-import { IScope, ICountScope } from '../models/elasticsearch-options.model';
-import { scopesResearch } from '../models/scopes-research';
 import { IESCMSResponse } from '../../editorialisation/models/cms-content.model';
-import { Angulartics2Piwik } from 'angulartics2/piwik';
+// tslint:disable-next-line: max-line-length
+import { Aggregation, Dataset, ElasticsearchOptions, Filter, Highlights, ICountScope, IElasticsearchHit, IScope, ISortOption, scopesResearch, SearchCompletion, SearchSuggestion } from '../../elasticsearch/models';
+import { ElasticsearchService } from '../../elasticsearch/services/elasticsearch.service';
+import { AppRoutes } from '../../routes';
 
 @Injectable()
 export class DatasetResearchService {
@@ -32,6 +27,7 @@ export class DatasetResearchService {
     private _errorService: ErrorService,
     private _elasticsearchService: ElasticsearchService,
     private angulartics2Piwik: Angulartics2Piwik,
+    private _router: Router,
   ) {
     this._searchChangeSubject = new Subject<any>();
     this._datasetsReloadedSubject = new Subject<any>();
@@ -430,6 +426,9 @@ export class DatasetResearchService {
     this._elasticsearchOptions.searchString = value;
     this._elasticsearchOptions.pageIndex = 0;
     this._elasticsearchOptions.shouldAggregateResultCount = true;
+    if (this._router.url.split('/').pop() !== AppRoutes.datasets.uri) {
+      this._router.navigate(['/', AppRoutes.datasets.uri]);
+    }
     this._searchChangeSubject.next();
   }
 
diff --git a/src/app/datasets/services/index.ts b/src/app/datasets/services/index.ts
new file mode 100644
index 00000000..181021dc
--- /dev/null
+++ b/src/app/datasets/services/index.ts
@@ -0,0 +1,8 @@
+import { DatasetResearchService } from './dataset-research.service';
+
+export { DatasetResearchService };
+
+// tslint:disable-next-line:variable-name
+export const DatasetsServices = [
+  DatasetResearchService,
+];
diff --git a/src/app/editorialisation/components/cms-post-detail/cms-post-detail.component.ts b/src/app/editorialisation/components/cms-post-detail/cms-post-detail.component.ts
index c04ec94d..d06fbe21 100644
--- a/src/app/editorialisation/components/cms-post-detail/cms-post-detail.component.ts
+++ b/src/app/editorialisation/components/cms-post-detail/cms-post-detail.component.ts
@@ -1,14 +1,13 @@
+import { DatePipe } from '@angular/common';
 import { Component, OnInit } from '@angular/core';
+import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
 import { ActivatedRoute, Router } from '@angular/router';
-import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
-import { CMSContent } from '../../models/cms-content.model';
-import { IPageHeaderInfo } from '../../../shared/models';
-import { DatePipe } from '@angular/common';
 import { notificationMessages } from '../../../../i18n/traductions';
+import { Metadata, typesMetadata } from '../../../elasticsearch/models';
+import { ElasticsearchService } from '../../../elasticsearch/services/elasticsearch.service';
 import { AppRoutes } from '../../../routes';
-import { ElasticsearchService } from '../../../geosource/services';
-import { Metadata } from '../../../geosource/models';
-import { typesMetadata } from '../../../geosource/models/metadata.model';
+import { IPageHeaderInfo } from '../../../shared/models';
+import { CMSContent } from '../../models/cms-content.model';
 
 @Component({
   selector: 'app-cms-post-detail',
diff --git a/src/app/editorialisation/components/cms-posts-list/cms-drafts-list.component.ts b/src/app/editorialisation/components/cms-posts-list/cms-drafts-list.component.ts
index 9ebb6703..d18fc6a3 100644
--- a/src/app/editorialisation/components/cms-posts-list/cms-drafts-list.component.ts
+++ b/src/app/editorialisation/components/cms-posts-list/cms-drafts-list.component.ts
@@ -1,7 +1,7 @@
 import { Component, OnInit } from '@angular/core';
-import { ElasticsearchService } from '../../../geosource/services';
 import { AppRoutes } from '../../../routes';
 import { CMSContent, IESCMSResponse } from '../../models/cms-content.model';
+import { ElasticsearchService } from '../../../elasticsearch/services/elasticsearch.service';
 
 @Component({
   selector: 'app-cms-drafts-list',
diff --git a/src/app/editorialisation/components/home/home.component.html b/src/app/editorialisation/components/home/home.component.html
index bdb35223..b249bb81 100644
--- a/src/app/editorialisation/components/home/home.component.html
+++ b/src/app/editorialisation/components/home/home.component.html
@@ -15,7 +15,7 @@
     </div>
     <div class="search column is-7-desktop is-8-tablet ">
       <app-search-bar class="app-search-bar"></app-search-bar>
-      <a class="explore-link" [routerLink]="['/', AppRoutes.research.uri]" (click)="trackExploreButtonEvent()">
+      <a class="explore-link" [routerLink]="['/', AppRoutes.datasets.uri]" (click)="trackExploreButtonEvent()">
         <button class="button explore-button" i18n="@@home.explore">Explore</button>
       </a>
     </div>
diff --git a/src/app/editorialisation/components/home/home.component.ts b/src/app/editorialisation/components/home/home.component.ts
index 8991a565..b6fd0a3b 100644
--- a/src/app/editorialisation/components/home/home.component.ts
+++ b/src/app/editorialisation/components/home/home.component.ts
@@ -1,15 +1,16 @@
 import { Component, OnInit } from '@angular/core';
-import { CMSContent, IESCMSResponse } from '../../models/cms-content.model';
 import { Router } from '@angular/router';
-import { ElasticsearchService, DatasetResearchService } from '../../../geosource/services';
-import { AppRoutes } from '../../../routes';
-import { scopesResearch } from '../../../geosource/models/scopes-research';
-import { environment } from '../../../../environments/environment';
+import { Angulartics2Piwik } from 'angulartics2/piwik';
 import { forkJoin } from 'rxjs/internal/observable/forkJoin';
-import { NotificationService } from '../../../core/services';
-import { Notification } from '../../../core/models';
+import { environment } from '../../../../environments/environment';
 import { notificationMessages } from '../../../../i18n/traductions';
-import { Angulartics2Piwik } from 'angulartics2/piwik';
+import { Notification } from '../../../core/models';
+import { NotificationService } from '../../../core/services';
+import { DatasetResearchService } from '../../../datasets/services';
+import { scopesResearch } from '../../../elasticsearch/models';
+import { ElasticsearchService } from '../../../elasticsearch/services/elasticsearch.service';
+import { AppRoutes } from '../../../routes';
+import { CMSContent, IESCMSResponse } from '../../models/cms-content.model';
 
 @Component({
   selector: 'app-home',
@@ -99,7 +100,7 @@ export class HomeComponent implements OnInit {
   goToPostsResearch() {
     this._datasetResearchService.resetResearch();
     this._datasetResearchService.scopeReasearch = scopesResearch.post;
-    this._router.navigate(['/', AppRoutes.research.uri]);
+    this._router.navigate(['/', AppRoutes.datasets.uri]);
   }
 
   trackExploreButtonEvent() {
diff --git a/src/app/editorialisation/components/organizations/organizations.component.ts b/src/app/editorialisation/components/organizations/organizations.component.ts
index 793a8fe2..536202a1 100644
--- a/src/app/editorialisation/components/organizations/organizations.component.ts
+++ b/src/app/editorialisation/components/organizations/organizations.component.ts
@@ -1,14 +1,14 @@
 import { Component, OnInit } from '@angular/core';
-import { OrganizationsService } from '../../services/organizations.service';
-import { Organization } from '../../models';
-import { ElasticsearchService, DatasetResearchService } from '../../../geosource/services';
 import { Router } from '@angular/router';
+import { notificationMessages, pageTitles } from '../../../../i18n/traductions';
+import { NotificationService } from '../../../core/services';
+import { DatasetResearchService } from '../../../datasets/services';
+import { Aggregation, scopesResearch } from '../../../elasticsearch/models';
+import { ElasticsearchService } from '../../../elasticsearch/services/elasticsearch.service';
 import { AppRoutes } from '../../../routes';
-import { Aggregation } from '../../../geosource/models/filter.model';
-import { scopesResearch } from '../../../geosource/models/scopes-research';
 import { IPageHeaderInfo } from '../../../shared/models';
-import { pageTitles, notificationMessages } from '../../../../i18n/traductions';
-import { NotificationService } from '../../../core/services';
+import { Organization } from '../../models';
+import { OrganizationsService } from '../../services/organizations.service';
 
 @Component({
   selector: 'app-organizations',
@@ -70,7 +70,7 @@ export class OrganizationsComponent implements OnInit {
     this._datasetResearchService.getResults().subscribe(() => {
       this._datasetResearchService.updateAggregation('metadata-fr.responsibleParty.organisationName', name, true);
       this._datasetResearchService.scopeReasearch = scopesResearch.datasets;
-      this._router.navigate(['/', AppRoutes.research.uri]);
+      this._router.navigate(['/', AppRoutes.datasets.uri]);
     });
   }
 
@@ -80,7 +80,7 @@ export class OrganizationsComponent implements OnInit {
     this._datasetResearchService.getResults().subscribe(() => {
       this._datasetResearchService.updateAggregation('metadata-fr.responsibleParty.organisationName', name, true);
       this._datasetResearchService.scopeReasearch = scopesResearch.services;
-      this._router.navigate(['/', AppRoutes.research.uri]);
+      this._router.navigate(['/', AppRoutes.datasets.uri]);
     });
 
   }
diff --git a/src/app/editorialisation/components/reuse-detail/reuse-detail.component.ts b/src/app/editorialisation/components/reuse-detail/reuse-detail.component.ts
index e6da59e0..5ec7ecf3 100644
--- a/src/app/editorialisation/components/reuse-detail/reuse-detail.component.ts
+++ b/src/app/editorialisation/components/reuse-detail/reuse-detail.component.ts
@@ -1,14 +1,13 @@
 import { Component, OnInit } from '@angular/core';
-import { IPageHeaderInfo } from '../../../shared/models';
-import { ReusesService } from '../../services';
-import { filter, switchMap, map } from 'rxjs/operators';
-import { ParamMap, ActivatedRoute } from '@angular/router';
-import { IReuse, Reuse } from '../../models';
-import { ElasticsearchService } from '../../../geosource/services';
-import { Metadata, IElasticsearchResponse } from '../../../geosource/models';
-import { typesMetadata } from '../../../geosource/models/metadata.model';
+import { ActivatedRoute, ParamMap } from '@angular/router';
 import { forkJoin } from 'rxjs';
+import { filter, map, switchMap } from 'rxjs/operators';
+import { Metadata, typesMetadata } from '../../../elasticsearch/models';
+import { ElasticsearchService } from '../../../elasticsearch/services/elasticsearch.service';
 import { AppRoutes } from '../../../routes';
+import { IPageHeaderInfo } from '../../../shared/models';
+import { Reuse } from '../../models';
+import { ReusesService } from '../../services';
 
 @Component({
   selector: 'app-reuse-detail',
diff --git a/src/app/editorialisation/components/site-map/site-map.component.html b/src/app/editorialisation/components/site-map/site-map.component.html
index 88414fc4..25442c32 100644
--- a/src/app/editorialisation/components/site-map/site-map.component.html
+++ b/src/app/editorialisation/components/site-map/site-map.component.html
@@ -6,7 +6,7 @@
       <p class="pages-group-title" i18n="@@sitemap.mainPages">Main pages</p>
       <ul class="pages-list">
         <li><a class="link-1" [routerLink]="['/', AppRoutes.home.uri]" i18n="@@sitemap.home">Home</a></li>
-        <li><a class="link-1" [routerLink]="['/', AppRoutes.research.uri]" i18n="@@sitemap.research">Research</a></li>
+        <li><a class="link-1" [routerLink]="['/', AppRoutes.datasets.uri]" i18n="@@sitemap.research">Research</a></li>
         <li><a class="link-1" [routerLink]="['/', AppRoutes.partners.uri]" i18n="@@sitemap.partners">Partners</a></li>
         <li><a class="link-1" [routerLink]="['/', AppRoutes.approach.uri]" i18n="@@sitemap.approach">Approach</a></li>
         <li><a class="link-1" [routerLink]="['/', AppRoutes.documentation.uri]">Documentation</a></li>
diff --git a/src/app/editorialisation/editorialisation.module.ts b/src/app/editorialisation/editorialisation.module.ts
index e8be70b5..08d16c15 100644
--- a/src/app/editorialisation/editorialisation.module.ts
+++ b/src/app/editorialisation/editorialisation.module.ts
@@ -1,18 +1,20 @@
-import { NgModule } from '@angular/core';
 import { CommonModule } from '@angular/common';
-import { EditorialisationRoutingModule } from './editorialisation-routing.module';
+import { NgModule } from '@angular/core';
+import { intersectionObserverPreset, LazyLoadImageModule } from 'ng-lazyload-image';
+import { DatasetsModule } from '../datasets/datasets.module';
+import { ElasticsearchModule } from '../elasticsearch/elasticsearch.module';
+import { SharedModule } from '../shared/shared.module';
 import { EditorialisationComponents } from './components';
-import { EditorialisationServices } from './services';
+import { EditorialisationRoutingModule } from './editorialisation-routing.module';
 import { EditorialisationResolvers } from './resolvers';
-import { SharedModule } from '../shared/shared.module';
-import { GeosourceModule } from '../geosource/geosource.module';
-import { LazyLoadImageModule, intersectionObserverPreset } from 'ng-lazyload-image';
+import { EditorialisationServices } from './services';
 
 @NgModule({
   imports: [
     CommonModule,
+    ElasticsearchModule,
+    DatasetsModule,
     EditorialisationRoutingModule,
-    GeosourceModule.forRoot(),
     SharedModule,
     LazyLoadImageModule.forRoot({
       preset: intersectionObserverPreset,
diff --git a/src/app/editorialisation/services/editorialisation.service.ts b/src/app/editorialisation/services/editorialisation.service.ts
index 18397755..2326009f 100644
--- a/src/app/editorialisation/services/editorialisation.service.ts
+++ b/src/app/editorialisation/services/editorialisation.service.ts
@@ -3,13 +3,12 @@ import { Observable } from 'rxjs';
 import { map, catchError } from 'rxjs/operators';
 import { Injectable } from '@angular/core';
 import { environment } from '../../../environments/environment';
-import { HttpClient } from '@angular/common/http';
 import {
   CMSContent, IGhostContentResponse, IESCMSResponse,
 } from '../models/cms-content.model';
 import { ErrorService } from '../../core/services';
 import { notificationMessages } from '../../../i18n/traductions';
-import { ElasticsearchService } from '../../geosource/services';
+import { ElasticsearchService } from '../../elasticsearch/services/elasticsearch.service';
 
 @Injectable()
 export class EditorialisationService {
diff --git a/src/app/elasticsearch/elasticsearch.module.ts b/src/app/elasticsearch/elasticsearch.module.ts
new file mode 100644
index 00000000..4a0e6329
--- /dev/null
+++ b/src/app/elasticsearch/elasticsearch.module.ts
@@ -0,0 +1,14 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { ElasticsearchService } from './services/elasticsearch.service';
+
+@NgModule({
+  declarations: [],
+  imports: [
+    CommonModule,
+  ],
+  providers: [
+    ElasticsearchService,
+  ],
+})
+export class ElasticsearchModule { }
diff --git a/src/app/geosource/models/data.model.ts b/src/app/elasticsearch/models/data.model.ts
similarity index 100%
rename from src/app/geosource/models/data.model.ts
rename to src/app/elasticsearch/models/data.model.ts
diff --git a/src/app/geosource/models/dataset.model.ts b/src/app/elasticsearch/models/dataset.model.ts
similarity index 93%
rename from src/app/geosource/models/dataset.model.ts
rename to src/app/elasticsearch/models/dataset.model.ts
index 62ab5bee..e5ca390b 100644
--- a/src/app/geosource/models/dataset.model.ts
+++ b/src/app/elasticsearch/models/dataset.model.ts
@@ -1,7 +1,7 @@
-import { IMetadata, Metadata, linkFormats } from './metadata.model';
+import { Data } from './data.model';
+import { EditorialMetadata, IEditorialMetadata } from './editorial-metadata.model';
 import { Highlights } from './highlights.model';
-import { Data, IData } from './data.model';
-import { IEditorialMetadata, EditorialMetadata } from './editorial-metadata.model';
+import { IMetadata, linkFormats, Metadata } from './metadata.model';
 
 export interface IDataset {
   _index?: string;
diff --git a/src/app/geosource/models/editorial-metadata.model.ts b/src/app/elasticsearch/models/editorial-metadata.model.ts
similarity index 100%
rename from src/app/geosource/models/editorial-metadata.model.ts
rename to src/app/elasticsearch/models/editorial-metadata.model.ts
diff --git a/src/app/geosource/models/elasticsearch-options.model.ts b/src/app/elasticsearch/models/elasticsearch-options.model.ts
similarity index 87%
rename from src/app/geosource/models/elasticsearch-options.model.ts
rename to src/app/elasticsearch/models/elasticsearch-options.model.ts
index 6f39e433..10973ddb 100644
--- a/src/app/geosource/models/elasticsearch-options.model.ts
+++ b/src/app/elasticsearch/models/elasticsearch-options.model.ts
@@ -1,7 +1,7 @@
 import { geosource } from '../../../i18n/traductions';
+import { Filter } from './filter.model';
 import { scopesResearch } from './scopes-research';
 import { ISortOption } from './sort-option.model';
-import { Filter } from './filter.model';
 
 export interface IPostsESOptions {
   type?: string;
@@ -25,31 +25,31 @@ export interface IScope {
 }
 
 export interface IElasticsearchOptions {
-  'pageIndex'?: number;
-  'from'?: number;
-  'pageSize'?: number;
-  'sortOptions'?: ISortOption;
-  'searchString'?: string;
-  'filters'?: Filter[];
-  'shouldAggregateResultCount': boolean;
-  'shouldAggregateFilters': boolean;
-  'scope': IScope;
-  'useCache': boolean;
+  pageIndex?: number;
+  from?: number;
+  pageSize?: number;
+  sortOptions?: ISortOption;
+  searchString?: string;
+  filters?: Filter[];
+  shouldAggregateResultCount: boolean;
+  shouldAggregateFilters: boolean;
+  scope: IScope;
+  useCache: boolean;
 }
 
 export class ElasticsearchOptions {
-  '_pageIndex': number;
-  'from'?: number;
-  '_pageSize': number;
-  '_sortOptions': ISortOption;
-  '_searchString': string;
-  '_filters': Filter[];
-  'shouldAggregateResultCount': boolean;
-  'shouldAggregateFilters': boolean;
-  'fromAutocompletion': boolean;
-  'scope': IScope;
-  'useCache': boolean;
-  'otherLicenceAggregations': string[];
+  _pageIndex: number;
+  from?: number;
+  _pageSize: number;
+  _sortOptions: ISortOption;
+  _searchString: string;
+  _filters: Filter[];
+  shouldAggregateResultCount: boolean;
+  shouldAggregateFilters: boolean;
+  fromAutocompletion: boolean;
+  scope: IScope;
+  useCache: boolean;
+  otherLicenceAggregations: string[];
 
   constructor(data?) {
     this.from = (data && data.from != null) ? data.from : 0;
diff --git a/src/app/geosource/models/elasticsearch-hit.model.ts b/src/app/elasticsearch/models/elasticsearch-response.model.ts
similarity index 51%
rename from src/app/geosource/models/elasticsearch-hit.model.ts
rename to src/app/elasticsearch/models/elasticsearch-response.model.ts
index 43863044..52411101 100644
--- a/src/app/geosource/models/elasticsearch-hit.model.ts
+++ b/src/app/elasticsearch/models/elasticsearch-response.model.ts
@@ -1,15 +1,8 @@
-import { IMetadata } from '.';
-import { IData } from './data.model';
-import { IESCMSResponse } from '../../editorialisation/models/cms-content.model';
-
 export interface IElasticsearchHit {
   '_id': string;
   '_index': string;
   '_score': number;
-  '_source': {
-    'metadata-fr': IMetadata;
-    'data-fr': IData;
-  } | IESCMSResponse;
+  '_source': any;
   'uuid': string;
   'slug': string;
   'inner_hits': {
@@ -21,3 +14,14 @@ export interface IElasticsearchHit {
     },
   };
 }
+
+export interface IElasticsearchResponse {
+  'took': number;
+  'hits': {
+    'total': number,
+    'max_score': number,
+    'hits': IElasticsearchHit[],
+  };
+  'suggest': any;
+  'aggregations': any;
+}
diff --git a/src/app/geosource/models/filter.model.ts b/src/app/elasticsearch/models/filter.model.ts
similarity index 100%
rename from src/app/geosource/models/filter.model.ts
rename to src/app/elasticsearch/models/filter.model.ts
diff --git a/src/app/geosource/models/highlights.model.ts b/src/app/elasticsearch/models/highlights.model.ts
similarity index 100%
rename from src/app/geosource/models/highlights.model.ts
rename to src/app/elasticsearch/models/highlights.model.ts
diff --git a/src/app/elasticsearch/models/index.ts b/src/app/elasticsearch/models/index.ts
new file mode 100644
index 00000000..d6e7e55c
--- /dev/null
+++ b/src/app/elasticsearch/models/index.ts
@@ -0,0 +1,15 @@
+export { Data, IData } from './data.model';
+export { Dataset, IDataset, IDatasetFields } from './dataset.model';
+export { EditorialMetadata, IEditorialMetadata } from './editorial-metadata.model';
+// tslint:disable-next-line: max-line-length
+export { ElasticsearchOptions, ICountScope, IElasticsearchOptions, IPostsESOptions, IScope } from './elasticsearch-options.model';
+export { IElasticsearchHit, IElasticsearchResponse } from './elasticsearch-response.model';
+export { Aggregation, Filter, IActiveFiltersTemplate, IFilter } from './filter.model';
+export { Highlights, IHighlights } from './highlights.model';
+// tslint:disable-next-line: max-line-length
+export { IMetadata, IMetadataLink, IParentDataset, IResponsibleParty, linkFormats, Metadata, typesMetadata } from './metadata.model';
+export { scopesResearch } from './scopes-research'; // This is not really a model
+export { SearchCompletion } from './search-completion.model';
+export { ISortOption } from './sort-option.model';
+export { SearchSuggestion } from './suggestion.model';
+
diff --git a/src/app/geosource/models/metadata.model.ts b/src/app/elasticsearch/models/metadata.model.ts
similarity index 99%
rename from src/app/geosource/models/metadata.model.ts
rename to src/app/elasticsearch/models/metadata.model.ts
index a8e68a17..908463a9 100644
--- a/src/app/geosource/models/metadata.model.ts
+++ b/src/app/elasticsearch/models/metadata.model.ts
@@ -173,7 +173,7 @@ export class Metadata {
       }
       this.keyword = data.keyword;
 
-      const providersToAdd = new Set();
+      const providersToAdd = new Set<string>();
       this.contacts = [];
       if (data.responsibleParty) {
         data.responsibleParty.forEach((party) => {
diff --git a/src/app/geosource/models/scopes-research.ts b/src/app/elasticsearch/models/scopes-research.ts
similarity index 100%
rename from src/app/geosource/models/scopes-research.ts
rename to src/app/elasticsearch/models/scopes-research.ts
diff --git a/src/app/geosource/models/search-completion.model.ts b/src/app/elasticsearch/models/search-completion.model.ts
similarity index 100%
rename from src/app/geosource/models/search-completion.model.ts
rename to src/app/elasticsearch/models/search-completion.model.ts
diff --git a/src/app/geosource/models/sort-option.model.ts b/src/app/elasticsearch/models/sort-option.model.ts
similarity index 100%
rename from src/app/geosource/models/sort-option.model.ts
rename to src/app/elasticsearch/models/sort-option.model.ts
diff --git a/src/app/geosource/models/suggestion.model.ts b/src/app/elasticsearch/models/suggestion.model.ts
similarity index 100%
rename from src/app/geosource/models/suggestion.model.ts
rename to src/app/elasticsearch/models/suggestion.model.ts
diff --git a/src/app/geosource/services/elasticsearch.service.ts b/src/app/elasticsearch/services/elasticsearch.service.ts
similarity index 98%
rename from src/app/geosource/services/elasticsearch.service.ts
rename to src/app/elasticsearch/services/elasticsearch.service.ts
index ff0b2b11..b79be4f1 100644
--- a/src/app/geosource/services/elasticsearch.service.ts
+++ b/src/app/elasticsearch/services/elasticsearch.service.ts
@@ -1,17 +1,12 @@
-import { Injectable } from '@angular/core';
-import {
-  ElasticsearchOptions, IElasticsearchResponse,
-  SearchSuggestion, SearchCompletion, Filter,
-} from '../models';
 import { HttpClient } from '@angular/common/http';
+import { Injectable } from '@angular/core';
 import { Observable } from 'rxjs';
-import { map, catchError } from 'rxjs/operators';
+import { catchError, map } from 'rxjs/operators';
+import { geosource, notificationMessages } from '../../../i18n/traductions';
 import { ErrorService } from '../../core/services';
-import { notificationMessages, geosource } from '../../../i18n/traductions';
-import { IPostsESOptions } from '../models/elasticsearch-options.model';
-import { Aggregation } from '../models/filter.model';
-import { scopesResearch } from '../models/scopes-research';
 import { APP_CONFIG } from '../../core/services/app-config.service';
+// tslint:disable-next-line: max-line-length
+import { Aggregation, ElasticsearchOptions, Filter, IElasticsearchResponse, IPostsESOptions, scopesResearch, SearchCompletion, SearchSuggestion } from '../models';
 
 @Injectable()
 export class ElasticsearchService {
@@ -94,7 +89,7 @@ export class ElasticsearchService {
         },
         collapse: {
           field: 'metadata-fr.geonet:info.uuid.keyword',
-        }
+        },
       },
     }).pipe(
       map((response) => {
diff --git a/src/app/geosource/components/index.ts b/src/app/geosource/components/index.ts
deleted file mode 100644
index d4fb2370..00000000
--- a/src/app/geosource/components/index.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-import { ResultsComponent } from './results/results.component';
-import { DatasetDetailComponent } from './dataset-detail/dataset-detail.component';
-
-import { DatasetResourcesComponent } from './dataset-detail/dataset-resources/dataset-resources.component';
-// tslint:disable-next-line:max-line-length
-import { ResourceQueryableComponent } from './dataset-detail/dataset-resources/resources-queryable/resource-queryable/resource-queryable.component';
-// tslint:disable-next-line:max-line-length
-import { ResourcesQueryableComponent } from './dataset-detail/dataset-resources/resources-queryable/resources-queryable.component';
-// tslint:disable-next-line:max-line-length
-import { ResourceDownloadableComponent } from './dataset-detail/dataset-resources/resource-downloadable/resource-downloadable.component';
-import { DatasetMapComponent } from './dataset-detail/dataset-map/dataset-map.component';
-import { DatasetInfoComponent } from './dataset-detail/dataset-info/dataset-info.component';
-import { DatasetTableComponent } from './dataset-detail/dataset-table/dataset-table.component';
-import { IconFormatComponent } from './dataset-detail/dataset-resources/icon-format/icon-format.component';
-import { SearchBarComponent } from './search-bar/search-bar.component';
-import { ResearchComponent } from './research/research.component';
-import { SortComponent } from './sort/sort.component';
-import { FilterListComponent } from './filter-list/filter-list.component';
-import { FilterDetailComponent } from './filter-list/filter-detail/filter-detail.component';
-import { ResultDatasetComponent } from './results/result-dataset/result-dataset.component';
-import { ResultsTabScopeComponent } from './results/results-tab-scope/results-tab-scope.component';
-import { ResultPostComponent } from './results/result-post/result-post.component';
-import { DatasetTableMapComponent } from './dataset-detail/dataset-table-map/dataset-table-map.component';
-import { DatasetDataDetailsComponent } from './dataset-detail/dataset-data-details/dataset-data-details.component';
-import { DatasetDataDetailPropertiesComponent } from './dataset-detail/dataset-data-details/dataset-data-detail-properties/dataset-data-detail-properties.component';
-
-export {
-  DatasetDetailComponent,
-  DatasetResourcesComponent,
-  ResourceQueryableComponent,
-  ResourceDownloadableComponent,
-  DatasetMapComponent,
-  DatasetInfoComponent,
-  DatasetTableMapComponent,
-  DatasetTableComponent,
-  ResultsComponent,
-  SearchBarComponent,
-  ResearchComponent,
-  SortComponent,
-  FilterListComponent,
-  FilterDetailComponent,
-  ResultDatasetComponent,
-  ResultsTabScopeComponent,
-  ResultPostComponent,
-  ResourcesQueryableComponent,
-  IconFormatComponent,
-  DatasetDataDetailsComponent,
-  DatasetDataDetailPropertiesComponent,
-};
-
-// tslint:disable-next-line:variable-name
-export const GeosourceComponents = [
-  DatasetDetailComponent,
-  DatasetResourcesComponent,
-  ResourceQueryableComponent,
-  ResourceDownloadableComponent,
-  DatasetMapComponent,
-  DatasetInfoComponent,
-  DatasetTableMapComponent,
-  DatasetTableComponent,
-  ResultsComponent,
-  SearchBarComponent,
-  ResearchComponent,
-  SortComponent,
-  FilterListComponent,
-  FilterDetailComponent,
-  ResultDatasetComponent,
-  ResultsTabScopeComponent,
-  ResultPostComponent,
-  ResourcesQueryableComponent,
-  IconFormatComponent,
-  DatasetDataDetailsComponent,
-  DatasetDataDetailPropertiesComponent,
-];
diff --git a/src/app/geosource/components/research/research.component.html b/src/app/geosource/components/research/research.component.html
deleted file mode 100644
index 0680b43f..00000000
--- a/src/app/geosource/components/research/research.component.html
+++ /dev/null
@@ -1 +0,0 @@
-<router-outlet></router-outlet>
diff --git a/src/app/geosource/components/research/research.component.scss b/src/app/geosource/components/research/research.component.scss
deleted file mode 100644
index 01e4ffbe..00000000
--- a/src/app/geosource/components/research/research.component.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-
-@import "../../../../../node_modules/bulma/sass/utilities/_all";
-
-@media screen and (max-width: $desktop - 1px) {
-  .research-container {
-    margin-left: 1.5rem;
-    margin-right: 1.5rem;
-  }
-}
diff --git a/src/app/geosource/components/research/research.component.spec.ts b/src/app/geosource/components/research/research.component.spec.ts
deleted file mode 100644
index c4ea8abd..00000000
--- a/src/app/geosource/components/research/research.component.spec.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { ResearchComponent } from './research.component';
-import { MockComponent } from 'ng2-mock-component';
-import { RouterTestingModule } from '@angular/router/testing';
-import { DatasetResearchService, ElasticsearchService } from '../../services';
-import { HttpClientModule } from '@angular/common/http';
-import { ErrorService, NotificationService } from '../../../core/services';
-import { StorageService } from '../../../core/services/storage.service';
-
-describe('ResearchComponent', () => {
-  let component: ResearchComponent;
-  let fixture: ComponentFixture<ResearchComponent>;
-
-  beforeEach(async(() => {
-    TestBed.configureTestingModule({
-      imports: [
-        RouterTestingModule.withRoutes([]),
-        HttpClientModule,
-      ],
-      declarations: [
-        ResearchComponent,
-        MockComponent({ selector: 'app-results' }),
-      ],
-      providers: [
-        DatasetResearchService,
-        ElasticsearchService,
-        ErrorService,
-        StorageService,
-        NotificationService,
-      ],
-    })
-    .compileComponents();
-  }));
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(ResearchComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/src/app/geosource/components/research/research.component.ts b/src/app/geosource/components/research/research.component.ts
deleted file mode 100644
index f0da7a24..00000000
--- a/src/app/geosource/components/research/research.component.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { DatasetResearchService } from '../../services';
-import { Router } from '@angular/router';
-import { AppRoutes } from '../../../routes';
-
-@Component({
-  selector: 'app-research',
-  templateUrl: './research.component.html',
-  styleUrls: ['./research.component.scss'],
-})
-export class ResearchComponent implements OnInit {
-
-  constructor(
-    private _datasetResearchService: DatasetResearchService,
-    private _router: Router,
-  ) { }
-
-  ngOnInit() {
-    this._datasetResearchService.searchChange$.subscribe(() => {
-      // Redirect to Dataset list if this is not the current page
-      if (this._router.url.split('/').pop() !== AppRoutes.research.uri) {
-        this._router.navigate(['/', AppRoutes.research.uri]);
-      }
-    });
-  }
-
-}
diff --git a/src/app/geosource/geosource.module.ts b/src/app/geosource/geosource.module.ts
deleted file mode 100644
index 56960311..00000000
--- a/src/app/geosource/geosource.module.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { NgModule, ModuleWithProviders } from '@angular/core';
-import { CommonModule, DatePipe } from '@angular/common';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
-import { GeosourceRoutingModule } from './geosource-routing.module';
-import { GeosourceComponents, SearchBarComponent } from './components';
-import { GeosourceServices, DatasetResearchService } from './services';
-import { SharedModule } from '../shared/shared.module';
-import { MapModule } from '../map/map.module';
-import { InlineSVGModule } from 'ng-inline-svg';
-import { InfiniteScrollModule } from 'ngx-infinite-scroll';
-import { GeosourceResolvers } from './resolvers';
-
-@NgModule({
-  imports: [
-    CommonModule,
-    GeosourceRoutingModule,
-    FormsModule,
-    SharedModule,
-    ReactiveFormsModule,
-    InfiniteScrollModule,
-    MapModule,
-    InlineSVGModule.forRoot(),
-  ],
-  declarations: [...GeosourceComponents],
-  providers: [
-    ...GeosourceServices,
-    DatePipe,
-  ],
-  exports: [
-    SearchBarComponent,
-  ],
-})
-export class GeosourceModule {
-  static forRoot(): ModuleWithProviders {
-    return {
-      ngModule: GeosourceModule,
-      providers: [DatasetResearchService, GeosourceResolvers],
-    };
-  }
-}
diff --git a/src/app/geosource/models/dataset-service.model.ts b/src/app/geosource/models/dataset-service.model.ts
deleted file mode 100644
index dcda6a32..00000000
--- a/src/app/geosource/models/dataset-service.model.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export interface DatasetService {
-  key: string;
-  title: string;
-  subtitle: string;
-  description: string;
-  url: string;
-}
diff --git a/src/app/geosource/models/elasticsearch-response.model.ts b/src/app/geosource/models/elasticsearch-response.model.ts
deleted file mode 100644
index b109cd09..00000000
--- a/src/app/geosource/models/elasticsearch-response.model.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { IElasticsearchHit } from '.';
-
-export interface IElasticsearchResponse {
-  'took': number;
-  'hits': {
-    'total': number,
-    'max_score': number,
-    'hits': IElasticsearchHit[],
-  };
-  'suggest': any;
-  'aggregations': any;
-}
diff --git a/src/app/geosource/models/index.ts b/src/app/geosource/models/index.ts
deleted file mode 100644
index 82b7f940..00000000
--- a/src/app/geosource/models/index.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export { IMetadata, IMetadataLink, Metadata, IResponsibleParty } from './metadata.model';
-export { IElasticsearchResponse } from './elasticsearch-response.model';
-export { IDataset, Dataset } from './dataset.model';
-export { IElasticsearchHit } from './elasticsearch-hit.model';
-export { ISortOption } from './sort-option.model';
-export { ElasticsearchOptions, IElasticsearchOptions } from './elasticsearch-options.model';
-export { Filter } from './filter.model';
-export { IHighlights, Highlights } from './highlights.model';
-export { SearchCompletion } from './search-completion.model';
-export { SearchSuggestion } from './suggestion.model';
-export { Data } from './data.model';
-export { DatasetChild } from './dataset-child.model';
-export { Resource, IResource } from './resource.model';
-export { IEditorialMetadata, EditorialMetadata } from './editorial-metadata.model';
diff --git a/src/app/geosource/services/dataset-detail.service.spec.ts b/src/app/geosource/services/dataset-detail.service.spec.ts
deleted file mode 100644
index 7c59c1d5..00000000
--- a/src/app/geosource/services/dataset-detail.service.spec.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-describe('DatasetDetailService', () => {
-
-});
diff --git a/src/app/geosource/services/dataset-research.service.spec.ts b/src/app/geosource/services/dataset-research.service.spec.ts
deleted file mode 100644
index b9e9930e..00000000
--- a/src/app/geosource/services/dataset-research.service.spec.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-describe('DatasetResearchService', () => {
-
-});
diff --git a/src/app/geosource/services/elasticsearch-response-mock.json b/src/app/geosource/services/elasticsearch-response-mock.json
deleted file mode 100644
index 890ce005..00000000
--- a/src/app/geosource/services/elasticsearch-response-mock.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  "took": 2,
-  "timed_out": false,
-  "_shards": {
-    "total": 12,
-    "successful": 12,
-    "skipped": 0,
-    "failed": 0
-  },
-  "hits": {
-    "total": 0,
-    "max_score": 0.0,
-    "hits": []
-  },
-  "suggest": {
-    "title": [
-      {
-        "text": "a",
-        "offset": 0,
-        "length": 1,
-        "options": [
-          {
-            "text": "Aire d'accueil des gens du voyage (Métropole de Ly",
-            "_index": "00d2adf.full.v3",
-            "_type": "_doc",
-            "id": "74243c0",
-            "_score": 1.0
-          },
-          {
-            "text": "Altitude d'une courbe de niveau maîtresse (Altimét",
-            "_index": "07504f8.full.v3",
-            "_type": "_doc",
-            "id": "113ca3b",
-            "_score": 1.0
-          }
-        ]
-      }
-    ]
-  }
-}
\ No newline at end of file
diff --git a/src/app/geosource/services/elasticsearch.service.spec.ts b/src/app/geosource/services/elasticsearch.service.spec.ts
deleted file mode 100644
index ec818a41..00000000
--- a/src/app/geosource/services/elasticsearch.service.spec.ts
+++ /dev/null
@@ -1,111 +0,0 @@
-import { ElasticsearchService } from './elasticsearch.service';
-import { HttpClient } from '@angular/common/http';
-import { ErrorService } from '../../core/services';
-import { of, throwError } from 'rxjs';
-import * as json from './elasticsearch-response-mock.json';
-import { SearchCompletion } from '../models';
-import { StorageService } from '../../core/services/storage.service';
-
-function buildAutoCompleteRequest(text) {
-  return {
-    body: {
-      _source: false,
-      suggest: {
-        title: {
-          prefix: text,
-          completion: {
-            field: 'metadata-fr.title.suggest',
-            size: 3,
-            fuzzy: {
-              fuzziness: 2,
-            },
-            skip_: true,
-          },
-        },
-      },
-    },
-  };
-}
-
-const options: SearchCompletion[] = [
-  {
-    text: 'Aire d\'accueil des gens du voyage (Métropole de Ly',
-    _index: '00d2adf.full.v3',
-    id: '74243c0',
-    _score: 1.0,
-  },
-  {
-    text: 'Altitude d\'une courbe de niveau maîtresse (Altimét',
-    _index: '07504f8.full.v3',
-    id: '113ca3b',
-    _score: 1.0,
-  },
-];
-
-describe('ElasticsearchService', () => {
-
-  let service: ElasticsearchService;
-  let httpClientMock: HttpClient;
-  let errorServiceMock: ErrorService;
-  let storageServiceMock: StorageService;
-
-  beforeEach(() => {
-
-    httpClientMock = jasmine.createSpyObj('HttpClient', {
-      request: of(json),
-    });
-
-    storageServiceMock = jasmine.createSpyObj('StorageService', {
-      request: of(json),
-    });
-
-    errorServiceMock = jasmine.createSpyObj('ErrorService', {
-      handleError: (err, options) => { return new Error(options.message); },
-    });
-
-    service = new ElasticsearchService(errorServiceMock, storageServiceMock, httpClientMock);
-  });
-
-  // describe('getAutoComplete(string)', () => {
-
-  //   it('should return an array of SearchCompletion', () => {
-  //     // given
-  //     const text = 'arbre';
-
-  //     // when
-  //     const observable = service.getAutoComplete(text);
-
-  //     // then
-  //     expect(observable).toBeTruthy(); // not oundefined or null
-  //     observable.subscribe((result) => {
-  //       expect(result.length).toBe(2);
-  //       expect(result).toContain(jasmine.objectContaining(options[0]));
-  //       expect(result).toContain(jasmine.objectContaining(options[1]));
-  //     });
-  //     expect(httpClientMock.request).toHaveBeenCalledWith(
-  //       'POST',
-  //       jasmine.any(String),
-  //       buildAutoCompleteRequest(text),
-  //     );
-  //   });
-
-  //   it('should return an error when httpClient return an error', () => {
-  //     // given
-  //     const text = 'arbre';
-  //     const expectedError = new Error('error');
-  //     httpClientMock.request = jasmine.createSpy('request').and.returnValue(throwError(expectedError));
-  //     // when
-  //     const observable = service.getAutoComplete(text);
-
-  //     // then
-  //     observable.subscribe(
-  //       (result) => {
-  //         fail('Should have returned an error');
-  //       },
-  //       (err) => {
-  //         expect(err).toBeTruthy();
-  //       },
-  //     );
-  //   });
-  // });
-});
diff --git a/src/app/geosource/services/index.ts b/src/app/geosource/services/index.ts
deleted file mode 100644
index 83cf1b63..00000000
--- a/src/app/geosource/services/index.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { DatasetResearchService } from './dataset-research.service';
-import { DatasetDetailService } from './dataset-detail.service';
-import { ElasticsearchService } from './elasticsearch.service';
-import { ResourcesService } from './resources.service';
-
-export { DatasetResearchService, DatasetDetailService,  ElasticsearchService, ResourcesService };
-
-// tslint:disable-next-line:variable-name
-export const GeosourceServices = [
-  // DatasetResearchService,
-  DatasetDetailService,
-  ElasticsearchService,
-  ResourcesService,
-];
diff --git a/src/app/map/components/map.component.ts b/src/app/map/components/map.component.ts
index 2d318b99..24631886 100644
--- a/src/app/map/components/map.component.ts
+++ b/src/app/map/components/map.component.ts
@@ -1,12 +1,12 @@
-import { Component, OnInit, OnDestroy, Input } from '@angular/core';
+import { Component, Input, OnDestroy, OnInit } from '@angular/core';
 import * as mapboxgl from 'mapbox-gl';
 import { Subscription } from 'rxjs';
-import { MapService } from '../services/map.service';
-import { settings } from '../settings';
 import { geosource } from '../../../i18n/traductions';
-import { linkFormats } from '../../geosource/models/metadata.model';
-import { GeocoderService } from '../services/geocoder.service';
+import { linkFormats } from '../../elasticsearch/models';
 import { MapOptions } from '../models/map-options';
+import { GeocoderService } from '../services/geocoder.service';
+import { MapService } from '../services/map.service';
+import { settings } from '../settings';
 
 @Component({
   selector: 'app-map',
diff --git a/src/app/routes.ts b/src/app/routes.ts
index 762fe762..b67ad37a 100644
--- a/src/app/routes.ts
+++ b/src/app/routes.ts
@@ -182,13 +182,6 @@ export const AppRoutes = {
       en: 'Drafts',
     },
   },
-  research: {
-    uri: 'recherche',
-    title: {
-      fr: 'Recherche',
-      en: 'Research',
-    },
-  },
   datasets: {
     uri: 'jeux-de-donnees',
     title: {
diff --git a/src/app/user/components/access-management/available-data/available-data.component.ts b/src/app/user/components/access-management/available-data/available-data.component.ts
index 6c0c1db3..1e44d174 100644
--- a/src/app/user/components/access-management/available-data/available-data.component.ts
+++ b/src/app/user/components/access-management/available-data/available-data.component.ts
@@ -5,9 +5,9 @@ import { IService, IRestrictedAccessDataset, ServiceAccess, Resource, IResource
 import { Notification } from '../../../../core/models';
 import { forkJoin } from 'rxjs';
 import { notificationMessages } from '../../../../../i18n/traductions';
-import { ElasticsearchService } from '../../../../geosource/services';
 import { AppRoutes } from '../../../../routes';
 import { Router } from '@angular/router';
+import { ElasticsearchService } from '../../../../elasticsearch/services/elasticsearch.service';
 
 @Component({
   selector: 'app-available-data',
@@ -296,7 +296,7 @@ export class AvailableDataComponent implements OnInit {
   // because only authenticated users are supposed to access this component
   handle401(err) {
     if (err && err.status === 401) {
-      this._router.navigate(['/', AppRoutes.signin.uri]); 
+      this._router.navigate(['/', AppRoutes.signin.uri]);
     }
   }
 
diff --git a/src/app/user/components/access-management/user-services/user-services.component.ts b/src/app/user/components/access-management/user-services/user-services.component.ts
index 6f457472..1c5d0e56 100644
--- a/src/app/user/components/access-management/user-services/user-services.component.ts
+++ b/src/app/user/components/access-management/user-services/user-services.component.ts
@@ -5,9 +5,9 @@ import { forkJoin } from 'rxjs';
 import { Notification } from '../../../../core/models';
 import { notificationMessages, userServicesStatuses } from '../../../../../i18n/traductions';
 import { UserServicesService } from '../../../services/user-services.service';
-import { ElasticsearchService } from '../../../../geosource/services';
 import { AppRoutes } from '../../../../routes';
 import { Router } from '@angular/router';
+import { ElasticsearchService } from '../../../../elasticsearch/services/elasticsearch.service';
 
 @Component({
   selector: 'app-user-services',
@@ -327,7 +327,7 @@ export class UserServicesComponent implements OnInit {
   // because only authenticated users are supposed to access this component
   handle401(err) {
     if (err && err.status === 401) {
-      this._router.navigate(['/', AppRoutes.signin.uri]); 
+      this._router.navigate(['/', AppRoutes.signin.uri]);
     }
   }
 }
diff --git a/src/assets/config/config.json b/src/assets/config/config.json
index 39d00c9b..8de45706 100644
--- a/src/assets/config/config.json
+++ b/src/assets/config/config.json
@@ -1,6 +1,6 @@
 {
   "backendUrls": {
-    "organizations": "http://localhost:3000/organizations",
+    "organizations": "https://kong-dev.alpha.grandlyon.com/organizations",
     "resources": "http://localhost:3003",
     "changelog": "http://localhost:3007",
     "credits": "https://kong-dev.alpha.grandlyon.com/credits/credits",
diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json
index 39ba8dba..213ce42a 100644
--- a/src/tsconfig.app.json
+++ b/src/tsconfig.app.json
@@ -10,4 +10,4 @@
     "test.ts",
     "**/*.spec.ts"
   ]
-}
+}
\ No newline at end of file
-- 
GitLab