diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 9363d46f640791ada7fc2d2f9b5ee10ea5ef2732..0f71a4105631b59c1eda88e27651f9e772f4f896 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,9 +1,9 @@
 import { Component, OnInit } from '@angular/core';
 import { Router, NavigationEnd, ActivatedRoute } from '../../node_modules/@angular/router';
-import { pairwise, filter, map, mergeMap } from 'rxjs/operators';
+import { filter, map } from 'rxjs/operators';
 import { AppRoutes } from './routes';
 import { Angulartics2Piwik } from 'angulartics2/piwik';
-import { NavigationHistoryService, AuthService } from './core/services';
+import { NavigationHistoryService } from './core/services';
 import { Title } from '@angular/platform-browser';
 
 @Component({
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 8ae0af991b63643dd0e49daf61bc5e77c53e98a4..890e34eba9ec81e517e5bd025699e21315558e85 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -9,11 +9,11 @@ import { CoreModule } from './core/core.module';
 import { EditorialisationModule } from './editorialisation/editorialisation.module';
 import { Angulartics2Module } from 'angulartics2';
 import { Angulartics2Piwik } from 'angulartics2/piwik';
-import { AuthService } from './core/services';
 import { UserModule } from './user/user.module';
+import { UserService } from './user/services';
 
 // Function used by APP_INITIALIZER before the app start: init user info / statut (expect a promise)
-export function loadUser(authService: AuthService) {
+export function loadUser(authService: UserService) {
   return (): Promise<any> => {
     return new Promise((resolve, reject) => {
       authService.setUserInfo();
@@ -40,7 +40,7 @@ export function loadUser(authService: AuthService) {
     {
       provide: APP_INITIALIZER,
       useFactory: loadUser,
-      deps: [AuthService],
+      deps: [UserService],
       multi: true,
     },
   ],
diff --git a/src/app/core/components/contact/contact.component.spec.ts b/src/app/core/components/contact/contact.component.spec.ts
index 7876beb9581ef0427acd766e74901daf7079645a..0059db37789243fb2a3d4817a4531e4b7217c06b 100644
--- a/src/app/core/components/contact/contact.component.spec.ts
+++ b/src/app/core/components/contact/contact.component.spec.ts
@@ -1,11 +1,11 @@
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { ContactComponent } from './contact.component';
-import { ReactiveFormsModule, FormControl, AbstractControl } from '@angular/forms';
-import { EmailService, NotificationService, NavigationHistoryService, AuthService } from '../../services';
+import { ReactiveFormsModule, AbstractControl } from '@angular/forms';
+import { EmailService, NotificationService, NavigationHistoryService } from '../../services';
 import { BehaviorSubject, of } from 'rxjs';
-import { Email } from '../../models';
 import { RouterTestingModule } from '@angular/router/testing';
+import { UserService } from '../../../user/services';
 
 export class NotificationServiceMock {
 
@@ -29,7 +29,7 @@ export class EmailServiceMock {
 
 }
 
-export class AuthServiceMock {
+export class UserServiceMock {
 
   constructor() { }
 
@@ -62,8 +62,8 @@ describe('ContactComponent', () => {
             useClass: EmailServiceMock,
           },
           {
-            provide: AuthService,
-            useClass: AuthServiceMock,
+            provide: UserService,
+            useClass: UserServiceMock,
           },
           {
             provide: NotificationService,
diff --git a/src/app/core/components/contact/contact.component.ts b/src/app/core/components/contact/contact.component.ts
index 2979ce4fead4d46f24b0822fe8ce39632f13312d..60c56b41c88efa6fc870a0d00e3e79484add75eb 100644
--- a/src/app/core/components/contact/contact.component.ts
+++ b/src/app/core/components/contact/contact.component.ts
@@ -1,10 +1,12 @@
 import { Component, OnInit } from '@angular/core';
-import { FormGroup, FormBuilder, Validators, FormControl, AbstractControl } from '@angular/forms';
-import { EmailService, NotificationService, NavigationHistoryService, AuthService } from '../../services';
-import { Email, User } from '../../models';
+import { FormGroup, FormBuilder, Validators } from '@angular/forms';
+import { EmailService, NotificationService, NavigationHistoryService } from '../../services';
+import { Email } from '../../models';
 import { subjects as Subjects, feedbackMessages } from '../../../../i18n/contact/contact';
 import { Router, ActivatedRoute } from '@angular/router';
 import { AppRoutes } from '../../../routes';
+import { User } from '../../../user/models';
+import { UserService } from '../../../user/services';
 
 @Component({
   selector: 'app-contact',
@@ -26,7 +28,7 @@ export class ContactComponent implements OnInit {
     private _navigationHistoryService: NavigationHistoryService,
     private _router: Router,
     private _route: ActivatedRoute,
-    private _authService: AuthService,
+    private _userService: UserService,
   ) {
     this.form = this._fb.group(
       {
@@ -46,8 +48,8 @@ export class ContactComponent implements OnInit {
 
   ngOnInit() {
     // if user authenticated then initialize the form with its name and email
-    if (this._authService.userIsSignedIn) {
-      this.user = this._authService.user;
+    if (this._userService.userIsSignedIn) {
+      this.user = this._userService.user;
       this.firstname.patchValue(this.user.firstName);
       this.lastname.patchValue(this.user.lastName);
       this.email.patchValue(this.user.email);
@@ -163,7 +165,7 @@ export class ContactComponent implements OnInit {
   }
 
   get userIsSignedIn() {
-    return this._authService.userIsSignedIn;
+    return this._userService.userIsSignedIn;
   }
 
   toUppercase(controlName: string) {
diff --git a/src/app/core/components/index.ts b/src/app/core/components/index.ts
index 42d2f9fe9ce1ee4409b93ae50c75f874156f9b18..ccd96c57071a1a748c7df46482b00e115a4aa8ec 100644
--- a/src/app/core/components/index.ts
+++ b/src/app/core/components/index.ts
@@ -3,13 +3,11 @@ import { MainComponent } from './main/main.component';
 import { FooterComponent } from './main/footer/footer.component';
 import { NotificationsComponent } from './notifications/notifications.component';
 import { ErrorComponent } from './error/error.component';
-import { LoginComponent } from './login/login.component';
 import { ContactComponent } from './contact/contact.component';
-import { SignUpComponent } from './sign-up/sign-up.component';
 import { SideMenuComponent } from './main/side-menu/side-menu.component';
 
 export { HeaderComponent, MainComponent, FooterComponent, NotificationsComponent,
-  ErrorComponent, LoginComponent, ContactComponent, SignUpComponent };
+  ErrorComponent, ContactComponent };
 
 // tslint:disable-next-line:variable-name
 export const CoreComponents = [
@@ -19,7 +17,5 @@ export const CoreComponents = [
   NotificationsComponent,
   ErrorComponent,
   ContactComponent,
-  LoginComponent,
-  SignUpComponent,
   SideMenuComponent,
 ];
diff --git a/src/app/core/components/main/header/header.component.spec.ts b/src/app/core/components/main/header/header.component.spec.ts
index 52db0f6ec0d15b38136c0c65657bbf38253fe065..8eec4ec0395c2e6dbbe2768ceaa9a47fd68ac2fe 100644
--- a/src/app/core/components/main/header/header.component.spec.ts
+++ b/src/app/core/components/main/header/header.component.spec.ts
@@ -2,10 +2,8 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { DebugElement } from '@angular/core';
 import { RouterTestingModule } from '@angular/router/testing';
 
-import { FormsModule } from '@angular/forms';
-
 import { HeaderComponent } from './header.component';
-import { AuthService, ErrorService, NotificationService } from '../../../services';
+import { ErrorService, NotificationService } from '../../../services';
 import { Router } from '@angular/router';
 import { DatasetResearchService, ElasticsearchService } from '../../../../geosource/services';
 import { MockComponent } from 'ng2-mock-component';
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 22f17bc92d74cda12e36a34f8b8b2aae78ad7543..b2df254388627f125efe3c1b346527f2d0a96c25 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
@@ -66,7 +66,7 @@
       </a>
     </li>
     <li *ngIf="userIsSignedIn">
-      <a href preventDefault [routerLink]="['/', AppRoutes.userAccount.uri]">
+      <a href preventDefault [routerLink]="['/', AppRoutes.userProfil.uri]">
         <span class="username">{{ username }}</span>
       </a>
     </li>
@@ -76,8 +76,8 @@
       </a>
     </li>
     <li *ngIf="userIsSignedIn">
-      <a href preventDefault [routerLink]="['/', AppRoutes.userAccount.uri]" routerLinkActive="active-link">
-        <span i18n="@@header.userAccount">My account</span>
+      <a href preventDefault [routerLink]="['/', AppRoutes.userProfil.uri]" routerLinkActive="active-link">
+        <span i18n="@@header.userProfil">My profil</span>
       </a>
     </li>
     <li *ngIf="userIsSignedIn">
diff --git a/src/app/core/components/main/side-menu/side-menu.component.spec.ts b/src/app/core/components/main/side-menu/side-menu.component.spec.ts
index 5342d5681d2806acbbed9721df11ac597d789ba5..91098d92d781259afd99702514f4f86d6dad1dc5 100644
--- a/src/app/core/components/main/side-menu/side-menu.component.spec.ts
+++ b/src/app/core/components/main/side-menu/side-menu.component.spec.ts
@@ -1,11 +1,11 @@
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { SideMenuComponent } from './side-menu.component';
-import { AuthService } from '../../../services';
 import { MockComponent } from 'ng2-mock-component';
 import { RouterTestingModule } from '@angular/router/testing';
+import { UserService } from '../../../../user/services';
 
-export class AuthServiceMock {
+export class UserServiceMock {
 
   constructor() { }
 
@@ -30,8 +30,8 @@ describe('SideMenuComponent', () => {
       ],
       providers: [
         {
-          provide: AuthService,
-          useClass: AuthServiceMock,
+          provide: UserService,
+          useClass: UserServiceMock,
         },
       ],
     })
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 3990956d00aa39763d1453cbcba6eee80836eeda..e11eeeca7c06d3edaa1b2b8a02e20e949cfe0bee 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,8 +1,8 @@
 import { Component, OnInit, Input } from '@angular/core';
 import { AppRoutes } from '../../../../routes';
 import { Router } from '@angular/router';
-import { AuthService } from '../../../services';
 import { environment } from '../../../../../environments/environment';
+import { UserService } from '../../../../user/services';
 
 @Component({
   selector: 'app-side-menu',
@@ -17,7 +17,7 @@ export class SideMenuComponent implements OnInit {
 
   constructor(
     private _router: Router,
-    private _authService: AuthService,
+    private _userService: UserService,
   ) { }
 
   ngOnInit() {
@@ -29,15 +29,16 @@ export class SideMenuComponent implements OnInit {
   }
 
   signOut() {
-    this._authService.resetAuth();
+    this._userService.resetAuth();
+    this._router.navigate(['/', AppRoutes.signin.uri]);
   }
 
   get userIsSignedIn() {
-    return this._authService.userIsSignedIn;
+    return this._userService.userIsSignedIn;
   }
 
   get username() {
-    return `${this._authService.user.firstName} ${this._authService.user.lastName}`;
+    return `${this._userService.user.firstName} ${this._userService.user.lastName}`;
   }
 
 }
diff --git a/src/app/core/core-routing.module.ts b/src/app/core/core-routing.module.ts
index 042cf903eadef0ab18808e40243c6d6f77487a9a..8b73098a4c181c67f2d96e2304ea3bda276835c7 100644
--- a/src/app/core/core-routing.module.ts
+++ b/src/app/core/core-routing.module.ts
@@ -1,7 +1,7 @@
 import { NgModule } from '@angular/core';
 import { Routes, RouterModule } from '@angular/router';
 import { AppRoutes } from '../routes';
-import { ErrorComponent, ContactComponent, LoginComponent, SignUpComponent } from './components';
+import { ErrorComponent, ContactComponent } from './components';
 
 export const routes: Routes = [
   {
@@ -9,20 +9,6 @@ export const routes: Routes = [
     redirectTo: AppRoutes.home.uri,
     pathMatch: 'full',
   },
-  {
-    path: AppRoutes.signin.uri,
-    component: LoginComponent,
-    data: {
-      title: AppRoutes.signin.title,
-    },
-  },
-  {
-    path: AppRoutes.signup.uri,
-    component: SignUpComponent,
-    data: {
-      title: AppRoutes.signup.title,
-    },
-  },
   {
     path: AppRoutes.error.uri,
     component: ErrorComponent,
diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts
index 7dbcc589cc444bc304b0595d0077568fbd5a6ca5..d035eac2b6a4412ca27b1f011f82bb39a52c9723 100644
--- a/src/app/core/core.module.ts
+++ b/src/app/core/core.module.ts
@@ -9,9 +9,7 @@ import { HttpErrorResponseInterceptor } from './interceptors/http-error-response
 import { HTTP_INTERCEPTORS } from '@angular/common/http';
 import { CoreServices } from './services';
 import { ReactiveFormsModule, FormsModule } from '@angular/forms';
-import { AuthInterceptor } from './interceptors/auth-interceptor';
 import { GeosourceModule } from '../geosource/geosource.module';
-import { CoreGuards } from './guards';
 
 @NgModule({
   imports: [
@@ -25,7 +23,6 @@ import { CoreGuards } from './guards';
   declarations: [...CoreComponents],
   providers: [
     ...CoreServices,
-    ...CoreGuards,
     {
       provide: ErrorHandler,
       useClass: ErrorsHandler,
@@ -35,11 +32,6 @@ import { CoreGuards } from './guards';
       useClass: HttpErrorResponseInterceptor,
       multi: true,
     },
-    {
-      provide: HTTP_INTERCEPTORS,
-      useClass: AuthInterceptor,
-      multi: true,
-    },
   ],
   exports: [MainComponent, NotificationsComponent],
 })
diff --git a/src/app/core/handlers/errors-handler.ts b/src/app/core/handlers/errors-handler.ts
index 768920018098209df45ba7cf7d5e931b29755b1d..e44ea1796ce2bd9b8bc7436525f521259eac433b 100644
--- a/src/app/core/handlers/errors-handler.ts
+++ b/src/app/core/handlers/errors-handler.ts
@@ -4,7 +4,7 @@ import { ErrorHandler, Injectable } from '@angular/core';
 export class ErrorsHandler implements ErrorHandler {
 
   handleError(error:  Error) {
-    // console.log(error);
+    console.log(error);
     return;
   }
 
diff --git a/src/app/core/models/auth.model.ts b/src/app/core/models/auth.model.ts
deleted file mode 100644
index 3d771ba4b76c0dc397020f701259cbdefd612b09..0000000000000000000000000000000000000000
--- a/src/app/core/models/auth.model.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-export class User {
-  id: number;
-  firstName: string;
-  lastName: string;
-  email: string;
-  username: string;
-
-  //  payload is the decrypted payload of the JWT token
-  constructor(payload) {
-    if (payload) {
-      this.id = payload.id;
-      this.firstName = payload.firstName;
-      this.lastName = payload.lastName;
-      this.email = payload.email;
-      this.username = payload.username;
-    }
-  }
-}
-
-export interface ILoginResponse {
-  token: string;
-}
-
-export interface ICreateAccountForm {
-  firstName: string;
-  lastName: string;
-  email: string;
-  emailConfirmation: string;
-  password: string;
-  passwordConfirmation: string;
-  acceptMessages: boolean;
-  entreprise: string;
-  address: string;
-  zipcode: string;
-  city: string;
-  country: string;
-  cgu: boolean;
-}
-
-export class LegacyAccount {
-  firstName: string;
-  lastName: string;
-  username: string;
-  email: string;
-  password: string;
-  acceptMessages: boolean;
-  entreprise: string;
-  address: string;
-  zipcode: string;
-  city: string;
-  country: string;
-
-  constructor(form: ICreateAccountForm) {
-    this.firstName = form.firstName;
-    this.lastName = form.lastName;
-    this.username = form.email;
-    this.email = form.email;
-    this.password = form.password;
-    this.acceptMessages = form.acceptMessages;
-    this.entreprise = form.entreprise;
-    this.address = form.address;
-    this.zipcode = form.zipcode;
-    this.city = form.city;
-    this.country = form.country;
-  }
-}
diff --git a/src/app/core/models/index.ts b/src/app/core/models/index.ts
index 9244fa97986b5ab7755429708b2cbbd6447138d0..4c6371bfbb604b4087828cda03536e47d4faa353 100644
--- a/src/app/core/models/index.ts
+++ b/src/app/core/models/index.ts
@@ -1,9 +1,8 @@
 import { Notification, INotification } from './notification.model';
 import { IMatomoResponse } from './matomo.model';
 import { IContactForm, Email } from './email.model';
-import { User, ILoginResponse, ICreateAccountForm, LegacyAccount } from './auth.model';
 
 export {
-  Notification, INotification, User, IMatomoResponse, ILoginResponse,
-  IContactForm, Email, ICreateAccountForm, LegacyAccount,
+  Notification, INotification, IMatomoResponse,
+  IContactForm, Email,
 };
diff --git a/src/app/core/services/auth.service.ts b/src/app/core/services/auth.service.ts
deleted file mode 100644
index c4080cbdec5990cf8e091a4c5cb45271007b5fc6..0000000000000000000000000000000000000000
--- a/src/app/core/services/auth.service.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import * as JwtDecode from 'jwt-decode';
-import { map } from 'rxjs/operators';
-import { Observable } from 'rxjs';
-import { ILoginResponse, User, LegacyAccount } from '../models';
-import { environment } from '../../../environments/environment';
-
-@Injectable()
-export class AuthService {
-
-  private _user: User = null;
-
-  constructor(
-    private _http: HttpClient,
-  ) { }
-
-  login(loginForm): Observable<boolean> {
-    return this._http.post<ILoginResponse>(environment.legacyLoginEndpoint, loginForm).pipe(
-      map(
-        (res) => {
-          return this.setSession(res);
-        },
-        (err) => {
-          throw err;
-        },
-      ),
-    );
-  }
-
-  createAccount(legacyAccount: LegacyAccount): Observable<boolean> {
-    return this._http.post<any>(`${environment.middlewareLegacyAuth}user/`, legacyAccount).pipe(
-      map(
-        (res) => {
-          return true;
-        },
-        (err) => {
-          throw err;
-        },
-      ),
-    );
-  }
-
-  private setSession(authResult): boolean {
-    let success = false;
-    if (authResult && authResult.token) {
-      localStorage.setItem('token', authResult.token);
-      this.setUserInfo();
-      success = true;
-    } else {
-      this.resetAuth();
-    }
-
-    return success;
-  }
-
-  setUserInfo() {
-    const token = localStorage.getItem('token');
-    try {
-      const payload = JwtDecode(token);
-      this._user = new User(payload);
-    } catch (error) {
-    }
-  }
-
-  resetAuth() {
-    localStorage.removeItem('token');
-    this._user = null;
-  }
-
-  get user() {
-    return this._user;
-  }
-
-  get userIsSignedIn() {
-    return this._user != null;
-  }
-}
diff --git a/src/app/core/services/index.ts b/src/app/core/services/index.ts
index 1fb610a30b5250e1964a5ad8aa8ba75b15078560..cdf460b5698587b1dc980485b597437e49de975a 100644
--- a/src/app/core/services/index.ts
+++ b/src/app/core/services/index.ts
@@ -4,8 +4,7 @@ import { MatomoService } from './matomo.service';
 import { NavigationHistoryService } from './navigation-history.service';
 import { StorageService } from './storage.service';
 import { EmailService } from './email.service';
-import { AuthService } from './auth.service';
-export { ErrorService, NotificationService, MatomoService, NavigationHistoryService, EmailService, AuthService };
+export { ErrorService, NotificationService, MatomoService, NavigationHistoryService, EmailService };
 
 // tslint:disable-next-line:variable-name
 export const CoreServices = [
@@ -15,5 +14,4 @@ export const CoreServices = [
   NavigationHistoryService,
   StorageService,
   EmailService,
-  AuthService,
 ];
diff --git a/src/app/routes.ts b/src/app/routes.ts
index 5800cc0f5f2d74179207d1e9feb97238f999f8e9..8625452d71bb802bc0287f9853c82f8313b5392c 100644
--- a/src/app/routes.ts
+++ b/src/app/routes.ts
@@ -28,11 +28,11 @@ export const AppRoutes = {
       en: 'My services',
     },
   },
-  userAccount: {
-    uri: 'mon-compte',
+  userProfil: {
+    uri: 'mon-profil',
     title: {
-      fr: 'Mon compte',
-      en: 'My account',
+      fr: 'Mon profil',
+      en: 'My profil',
     },
   },
   home: {
diff --git a/src/app/core/components/login/login.component.html b/src/app/user/components/auth/login/login.component.html
similarity index 100%
rename from src/app/core/components/login/login.component.html
rename to src/app/user/components/auth/login/login.component.html
diff --git a/src/app/core/components/login/login.component.scss b/src/app/user/components/auth/login/login.component.scss
similarity index 91%
rename from src/app/core/components/login/login.component.scss
rename to src/app/user/components/auth/login/login.component.scss
index 612ee1ccaa83965c0906aa817ba447167a689730..e9884c5cc13f218386cf2acab5fd928d3f0aa31e 100644
--- a/src/app/core/components/login/login.component.scss
+++ b/src/app/user/components/auth/login/login.component.scss
@@ -1,4 +1,4 @@
-@import '../../../../scss/variables.scss';
+@import '../../../../../scss/variables.scss';
 
 h1 {
   font-size: 2rem;
diff --git a/src/app/core/components/login/login.component.spec.ts b/src/app/user/components/auth/login/login.component.spec.ts
similarity index 86%
rename from src/app/core/components/login/login.component.spec.ts
rename to src/app/user/components/auth/login/login.component.spec.ts
index 5a44fe2c6fce87959a919a7dcb97908f64630999..2e8025e41558500b2a46c47d0e2c4107dd47fbe2 100644
--- a/src/app/core/components/login/login.component.spec.ts
+++ b/src/app/user/components/auth/login/login.component.spec.ts
@@ -2,10 +2,10 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { LoginComponent } from './login.component';
 import { ReactiveFormsModule } from '@angular/forms';
-import { AuthService } from '../../services';
 import { RouterTestingModule } from '@angular/router/testing';
+import { UserService } from '../../../services';
 
-export class AuthServiceMock {
+export class UserServiceMock {
 
   constructor() { }
 
@@ -28,8 +28,8 @@ describe('LoginComponent', () => {
       declarations: [LoginComponent],
       providers: [
         {
-          provide: AuthService,
-          useClass: AuthServiceMock,
+          provide: UserService,
+          useClass: UserServiceMock,
         },
       ],
     })
diff --git a/src/app/core/components/login/login.component.ts b/src/app/user/components/auth/login/login.component.ts
similarity index 91%
rename from src/app/core/components/login/login.component.ts
rename to src/app/user/components/auth/login/login.component.ts
index 4f1c63667b6352df228530ad2ef5fd73f284b982..b43ecccc472377068723d9af54f80dd62d190c7c 100644
--- a/src/app/core/components/login/login.component.ts
+++ b/src/app/user/components/auth/login/login.component.ts
@@ -1,8 +1,8 @@
 import { Component, OnInit } from '@angular/core';
 import { FormGroup, FormBuilder, Validators } from '@angular/forms';
-import { AuthService } from '../../services';
 import { Router } from '@angular/router';
 import { HttpErrorResponse } from '@angular/common/http';
+import { UserService } from '../../../services';
 
 @Component({
   selector: 'app-login',
@@ -16,7 +16,7 @@ export class LoginComponent implements OnInit {
 
   constructor(
     private _fb: FormBuilder,
-    private _authService: AuthService,
+    private _userService: UserService,
     private _router: Router,
   ) {
 
@@ -31,7 +31,7 @@ export class LoginComponent implements OnInit {
   login() {
     if (this.form.valid) {
       this.form.disable();
-      this._authService.login(this.form.value).subscribe(
+      this._userService.login(this.form.value).subscribe(
         (res) => {
           this.form.enable();
           this.errorStatus = null;
diff --git a/src/app/core/components/sign-up/sign-up.component.html b/src/app/user/components/auth/sign-up/sign-up.component.html
similarity index 100%
rename from src/app/core/components/sign-up/sign-up.component.html
rename to src/app/user/components/auth/sign-up/sign-up.component.html
diff --git a/src/app/core/components/sign-up/sign-up.component.scss b/src/app/user/components/auth/sign-up/sign-up.component.scss
similarity index 91%
rename from src/app/core/components/sign-up/sign-up.component.scss
rename to src/app/user/components/auth/sign-up/sign-up.component.scss
index e1b369d96b3a6ffd3a88610129dfa8ba2b69aa72..a18f05de3a9ed94bc03c6d4e55a8aacb13384ac2 100644
--- a/src/app/core/components/sign-up/sign-up.component.scss
+++ b/src/app/user/components/auth/sign-up/sign-up.component.scss
@@ -1,4 +1,4 @@
-@import '../../../../scss/variables.scss';
+@import '../../../../../scss/variables.scss';
 
 .signup-form-container {  
   background-color: white;
diff --git a/src/app/core/components/sign-up/sign-up.component.spec.ts b/src/app/user/components/auth/sign-up/sign-up.component.spec.ts
similarity index 98%
rename from src/app/core/components/sign-up/sign-up.component.spec.ts
rename to src/app/user/components/auth/sign-up/sign-up.component.spec.ts
index 7c5d4f24674d0ee8604a32bf9d848738622d003c..4eff270c7df43522e4b470e92a3843e6476769ce 100644
--- a/src/app/core/components/sign-up/sign-up.component.spec.ts
+++ b/src/app/user/components/auth/sign-up/sign-up.component.spec.ts
@@ -3,10 +3,11 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { SignUpComponent } from './sign-up.component';
 import { AbstractControl, ReactiveFormsModule } from '@angular/forms';
 import { RouterTestingModule } from '@angular/router/testing';
-import { NotificationService, AuthService } from '../../services';
-import { environment } from '../../../../environments/environment';
+import { environment } from '../../../../../environments/environment';
+import { UserService } from '../../../services';
+import { NotificationService } from '../../../../core/services';
 
-export class AuthServiceMock {
+export class UserServiceMock {
 
   constructor() { }
 
@@ -39,8 +40,8 @@ describe('SignUpComponent', () => {
         ],
         providers: [
           {
-            provide: AuthService,
-            useClass: AuthServiceMock,
+            provide: UserService,
+            useClass: UserServiceMock,
           },
           {
             provide: NotificationService,
diff --git a/src/app/core/components/sign-up/sign-up.component.ts b/src/app/user/components/auth/sign-up/sign-up.component.ts
similarity index 89%
rename from src/app/core/components/sign-up/sign-up.component.ts
rename to src/app/user/components/auth/sign-up/sign-up.component.ts
index c57b62adbdfe3ac68b07ed574ab1b023bbf590d9..170c1e763b372a42f37c2df715c47768be6177d8 100644
--- a/src/app/core/components/sign-up/sign-up.component.ts
+++ b/src/app/user/components/auth/sign-up/sign-up.component.ts
@@ -1,13 +1,15 @@
 import { Component, OnInit } from '@angular/core';
 import { FormGroup, FormBuilder, Validators, AbstractControl } from '@angular/forms';
-import { environment } from '../../../../environments/environment';
-import { LegacyAccount, Notification } from '../../models';
-import { AuthService, NotificationService } from '../../services';
-import { HttpErrorResponse } from '@angular/common/http';
+import { NotificationService } from '../../../../core/services';
+import { Notification } from '../../../../core/models';
+import { UserService } from '../../../services';
 import { Router } from '@angular/router';
-import { AppRoutes } from '../../../routes';
-import { ValidatePassword } from '../../validators/password.validator';
-import { messages } from '../../../../i18n/notification-messages/notification-messages';
+import { environment } from '../../../../../environments/environment';
+import { ValidatePassword } from '../../../validators/password.validator';
+import { LegacyAccount } from '../../../models';
+import { messages } from '../../../../../i18n/notification-messages/notification-messages';
+import { AppRoutes } from '../../../../routes';
+import { HttpErrorResponse } from '@angular/common/http';
 
 @Component({
   selector: 'app-sign-up',
@@ -20,7 +22,7 @@ export class SignUpComponent implements OnInit {
 
   constructor(
     private _fb: FormBuilder,
-    private _authService: AuthService,
+    private _userService: UserService,
     private _notificationService: NotificationService,
     private _router: Router,
   ) {
@@ -121,7 +123,7 @@ export class SignUpComponent implements OnInit {
     if (!this.formIsInvalid && !this.formDisabled) {
       const account = new LegacyAccount(this.form.value);
       this.form.disable();
-      this._authService.createAccount(account).subscribe(
+      this._userService.createAccount(account).subscribe(
         (res) => {
           this.form.enable();
           this._notificationService.notify(
@@ -131,7 +133,7 @@ export class SignUpComponent implements OnInit {
             },
           );
           this.form.reset();
-          this._authService.login({ username: account.username, password: account.password }).subscribe(
+          this._userService.login({ username: account.username, password: account.password }).subscribe(
             (res) => {
               this._router.navigate(['/', AppRoutes.home.uri]);
             },
diff --git a/src/app/user/components/index.ts b/src/app/user/components/index.ts
index 51185439d0cbf4c41a5b6d2ac5b0c16555985f00..4974dae720b0d740d33656050ef2cd1688777320 100644
--- a/src/app/user/components/index.ts
+++ b/src/app/user/components/index.ts
@@ -1,10 +1,14 @@
 import { UserServicesComponent } from '../components/user-services/user-services.component';
-import { UserAccountComponent } from '../components/user-account/user-account.component';
+import { UserProfilComponent } from '../components/user-profil/user-profil.component';
+import { LoginComponent } from './auth/login/login.component';
+import { SignUpComponent } from './auth/sign-up/sign-up.component';
 
-export { UserServicesComponent, UserAccountComponent };
+export { UserServicesComponent, UserProfilComponent, LoginComponent, SignUpComponent };
 
 // tslint:disable-next-line:variable-name
 export const UserComponents = [
   UserServicesComponent,
-  UserAccountComponent,
+  UserProfilComponent,
+  LoginComponent,
+  SignUpComponent,
 ];
diff --git a/src/app/user/components/user-account/user-account.component.spec.ts b/src/app/user/components/user-account/user-account.component.spec.ts
deleted file mode 100644
index 70586ec99e5fad2c9f7e7ddf92b251cd772f195c..0000000000000000000000000000000000000000
--- a/src/app/user/components/user-account/user-account.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { UserAccountComponent } from './user-account.component';
-
-describe('UserAccountComponent', () => {
-  let component: UserAccountComponent;
-  let fixture: ComponentFixture<UserAccountComponent>;
-
-  beforeEach(async(() => {
-    TestBed.configureTestingModule({
-      declarations: [ UserAccountComponent ]
-    })
-    .compileComponents();
-  }));
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(UserAccountComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/src/app/user/components/user-profil/user-profi.component.spec.ts b/src/app/user/components/user-profil/user-profi.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d321f23840392827e805be7f949b82bcb02abadf
--- /dev/null
+++ b/src/app/user/components/user-profil/user-profi.component.spec.ts
@@ -0,0 +1,456 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { ReactiveFormsModule, AbstractControl } from '@angular/forms';
+import { UserService } from '../../services';
+import { NotificationService } from '../../../core/services';
+import { RouterTestingModule } from '@angular/router/testing';
+import { of } from 'rxjs';
+import { environment } from '../../../../environments/environment';
+import { UserProfilComponent } from './user-profil.component';
+
+export class UserServiceMock {
+
+  constructor() { }
+
+  getUserInfo() {
+    return of();
+  }
+
+}
+
+export class NotificationServiceMock {
+
+  constructor() { }
+
+}
+
+describe('UserProfilComponent', () => {
+  let component: UserProfilComponent;
+  let fixture: ComponentFixture<UserProfilComponent>;
+  let firstName: AbstractControl;
+  let lastName: AbstractControl;
+  let newPassword: AbstractControl;
+  let newPasswordConfirmation: AbstractControl;
+  let oldPassword: AbstractControl;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [UserProfilComponent],
+      imports: [
+        ReactiveFormsModule,
+        RouterTestingModule,
+      ],
+      providers: [
+        {
+          provide: UserService,
+          useClass: UserServiceMock,
+        },
+        {
+          provide: NotificationService,
+          useClass: NotificationServiceMock,
+        },
+      ],
+    })
+      .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(UserProfilComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+    firstName = component.userInfoUpdateForm.get('firstName');
+    lastName = component.userInfoUpdateForm.get('lastName');
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+
+  // tslint:disable-next-line:max-line-length
+  describe('User Info update Form validation (when testing if control is invalid we are also testing if the form is invalid)', () => {
+    it('form invalid when empty', () => {
+      expect(component.userInfoUpdateForm.valid).toBeFalsy();
+    });
+
+    describe('FirstName control validation', () => {
+      beforeEach(() => {
+        firstName.reset();
+      });
+
+      it('firstName control is valid with lowercase and uppercase letter', () => {
+        // Given
+        const value = 'John Doe';
+        // When
+        firstName.setValue(value);
+        // Then
+        expect(firstName.valid).toBeTruthy();
+      });
+
+      it('firstName control is valid with letter and space', () => {
+        // Given
+        const value = 'John Doe';
+        // When
+        firstName.setValue(value);
+        // Then
+        expect(firstName.valid).toBeTruthy();
+      });
+
+      it('firstName control is valid with letter and dash', () => {
+        // Given
+        const value = 'Jean-jacques';
+        // When
+        firstName.setValue(value);
+        // Then
+        expect(firstName.valid).toBeTruthy();
+      });
+
+      it('firstName control is valid with letter and apostrophe', () => {
+        // Given
+        const value = 'De\'Andre';
+        // When
+        firstName.setValue(value);
+        // Then
+        expect(firstName.valid).toBeTruthy();
+      });
+
+      it('firstName control accept any of those characters', () => {
+        // Given
+        let specialChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+        specialChars += 'abcdefghijklmnopqrstuvwxyz';
+        specialChars += 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ';
+        specialChars += 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ';
+        // When
+        firstName.setValue(specialChars);
+        // Then
+        expect(firstName.valid).toBeTruthy();
+      });
+
+      it('firstName control is invalid if first letter is lowercased, has error "pattern"', () => {
+        // Given
+        const value = 'david';
+        // When
+        firstName.setValue(value);
+        const errors = firstName.errors || {};
+        // Then
+        expect(firstName.valid).toBeFalsy();
+        expect(component.userInfoUpdateForm.valid).toBeFalsy();
+        expect(errors['pattern']).toBeTruthy();
+      });
+
+      it('firstName control is invalid if contains numbers', () => {
+        // Given
+        const value = '0123456789';
+        // When
+        firstName.setValue(value);
+        const errors = firstName.errors || {};
+        // Then
+        expect(firstName.valid).toBeFalsy();
+        expect(component.userInfoUpdateForm.valid).toBeFalsy();
+        expect(errors['pattern']).toBeTruthy();
+      });
+
+      it('firstName control is invalid if contains special characters', () => {
+        // Given
+        const value = '"*$^!qjsdk+°)';
+        // When
+        firstName.setValue(value);
+        const errors = firstName.errors || {};
+        // Then
+        expect(firstName.valid).toBeFalsy();
+        expect(component.userInfoUpdateForm.valid).toBeFalsy();
+        expect(errors['pattern']).toBeTruthy();
+      });
+
+      it('firstName control is invalid if the value is empty', () => {
+        // Given
+        const value = '';
+        // When
+        firstName.setValue(value);
+        const errors = firstName.errors || {};
+        // Then
+        expect(firstName.valid).toBeFalsy();
+        expect(component.userInfoUpdateForm.valid).toBeFalsy();
+        expect(errors['required']).toBeTruthy();
+      });
+    });
+
+    describe('LastName control validation', () => {
+      beforeEach(() => {
+        lastName.reset();
+      });
+
+      it('lastName control is valid with lowercase and uppercase letter', () => {
+        // Given
+        const value = 'John Doe';
+        // When
+        lastName.setValue(value);
+        // Then
+        expect(lastName.valid).toBeTruthy();
+      });
+
+      it('lastName control is valid with letter and space', () => {
+        // Given
+        const value = 'John Doe';
+        // When
+        lastName.setValue(value);
+        // Then
+        expect(lastName.valid).toBeTruthy();
+      });
+
+      it('lastName control is valid with letter and dash', () => {
+        // Given
+        const value = 'Jean-jacques';
+        // When
+        lastName.setValue(value);
+        // Then
+        expect(lastName.valid).toBeTruthy();
+      });
+
+      it('lastName control is valid with letter and apostrophe', () => {
+        // Given
+        const value = 'De\'Andre';
+        // When
+        lastName.setValue(value);
+        // Then
+        expect(lastName.valid).toBeTruthy();
+      });
+
+      it('lastName control accept any of those characters', () => {
+        // Given
+        let specialChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+        specialChars += 'abcdefghijklmnopqrstuvwxyz';
+        specialChars += 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ';
+        specialChars += 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ';
+        // When
+        lastName.setValue(specialChars);
+        // Then
+        expect(lastName.valid).toBeTruthy();
+      });
+
+      it('lastName control is invalid if first letter is lowercased, has error "pattern"', () => {
+        // Given
+        const value = 'david';
+        // When
+        lastName.setValue(value);
+        const errors = lastName.errors || {};
+        // Then
+        expect(lastName.valid).toBeFalsy();
+        expect(component.userInfoUpdateForm.valid).toBeFalsy();
+        expect(errors['pattern']).toBeTruthy();
+      });
+
+      it('lastName control is invalid if contains numbers', () => {
+        // Given
+        const value = '0123456789';
+        // When
+        lastName.setValue(value);
+        const errors = lastName.errors || {};
+        // Then
+        expect(lastName.valid).toBeFalsy();
+        expect(component.userInfoUpdateForm.valid).toBeFalsy();
+        expect(errors['pattern']).toBeTruthy();
+      });
+
+      it('lastName control is invalid if contains special characters', () => {
+        // Given
+        const value = '"*$^!qjsdk+°)';
+        // When
+        lastName.setValue(value);
+        const errors = lastName.errors || {};
+        // Then
+        expect(lastName.valid).toBeFalsy();
+        expect(component.userInfoUpdateForm.valid).toBeFalsy();
+        expect(errors['pattern']).toBeTruthy();
+      });
+
+      it('lastName control is invalid if the value is empty', () => {
+        // Given
+        const value = '';
+        // When
+        lastName.setValue(value);
+        const errors = lastName.errors || {};
+        // Then
+        expect(lastName.valid).toBeFalsy();
+        expect(component.userInfoUpdateForm.valid).toBeFalsy();
+        expect(errors['required']).toBeTruthy();
+      });
+    });
+  });
+
+  // tslint:disable-next-line:max-line-length
+  describe('User password update Form validation (when testing if control is invalid we are also testing if the form is invalid)', () => {
+    beforeEach(() => {
+      fixture = TestBed.createComponent(UserProfilComponent);
+      component = fixture.componentInstance;
+      fixture.detectChanges();
+      newPassword = component.passwordUpdateForm.get('newPassword');
+      newPasswordConfirmation = component.passwordUpdateForm.get('newPasswordConfirmation');
+      oldPassword = component.passwordUpdateForm.get('oldPassword');
+    });
+
+    describe('newPassword control validation', () => {
+      beforeEach(() => {
+        newPassword.reset();
+      });
+
+      it('newPassword control is invalid if the value is empty', () => {
+        // Given
+        const value = '';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(newPassword.valid).toBeFalsy();
+        expect(component.passwordUpdateForm.valid).toBeFalsy();
+        expect(errors['required']).toBeTruthy();
+      });
+
+      it('newPassword control shouldn\'t have required error if the value is set', () => {
+        // Given
+        const value = 'dsfsfdf';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(errors['required']).toBeFalsy();
+      });
+
+      it(`password control is invalid if its length is inferior to ${environment.passwordMinLength}`, () => {
+        // Given
+        const value = 'abc';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(newPassword.valid).toBeFalsy();
+        expect(component.passwordUpdateForm.valid).toBeFalsy();
+        expect(errors['minlength']).toBeTruthy();
+      });
+
+      // tslint:disable-next-line:max-line-length
+      it(`password control has not minLength error if its length is superior to ${environment.passwordMinLength}`, () => {
+        // Given
+        const value = 'abcqqsdsqdqsdsqdqsdsqsqsdsqddsqsdsqdsq';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(errors['minlength']).toBeFalsy();
+      });
+
+      // tslint:disable-next-line:max-line-length
+      it('newPassword control has \'missingSpecialCharacters\' error if there is not at least one special character', () => {
+        // Given
+        const value = 'abcq';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(errors['missingSpecialCharacters']).toBeTruthy();
+      });
+
+      // tslint:disable-next-line:max-line-length
+      it('newPassword control has \'missingUppercasedLetter\' error if there is not at least one uppercased letter', () => {
+        // Given
+        const value = 'abcq';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(errors['missingUppercasedLetter']).toBeTruthy();
+      });
+
+      // tslint:disable-next-line:max-line-length
+      it('newPassword control has \'missingLowercasedLetter\' error if there is not at least one lowercassed letter', () => {
+        // Given
+        const value = '1234TYARKS';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(errors['missingLowercasedLetter']).toBeTruthy();
+      });
+
+      // tslint:disable-next-line:max-line-length
+      it('newPassword control has \'missingNumber\' error if there is not at least one digit', () => {
+        // Given
+        const value = 'aaazezfrez';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(errors['missingNumber']).toBeTruthy();
+      });
+
+      // tslint:disable-next-line:max-line-length
+      it('newPassword control has \'forbiddenWord\' error if the password contains one of the forbidden words', () => {
+        // Given
+        const value = 'sqddsqgrandlyondsqsqdsq';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(errors['forbiddenWord']).toBeTruthy();
+      });
+
+      // tslint:disable-next-line:max-line-length
+      it('newPassword control has no errors from validatePassword is respecting all the rules', () => {
+        // Given
+        const value = 'azeAZE123!';
+        // When
+        newPassword.setValue(value);
+        const errors = newPassword.errors || {};
+        // Then
+        expect(errors['missingSpecialCharacters']).toBeFalsy();
+        expect(errors['missingUppercasedLetter']).toBeFalsy();
+        expect(errors['missingLowercasedLetter']).toBeFalsy();
+        expect(errors['missingNumber']).toBeFalsy();
+        expect(errors['forbiddenWord']).toBeFalsy();
+      });
+
+      it('newPassword control should be valid when respecting all the validator', () => {
+        // Given
+        const value = 'azeAZE123!';
+        // When
+        newPassword.setValue(value);
+        // Then
+        expect(newPassword.valid).toBeTruthy();
+      });
+    });
+
+    describe('passwordConfirmation control validation', () => {
+      beforeEach(() => {
+        newPasswordConfirmation.reset();
+      });
+
+      it('passwordConfirmation control is invalid if the value is empty', () => {
+        // Given
+        const value = '';
+        // When
+        newPasswordConfirmation.setValue(value);
+        const errors = newPasswordConfirmation.errors || {};
+        // Then
+        expect(newPasswordConfirmation.valid).toBeFalsy();
+        expect(component.passwordUpdateForm.valid).toBeFalsy();
+        expect(errors['required']).toBeTruthy();
+      });
+    });
+
+    describe('oldPassword control validation', () => {
+      beforeEach(() => {
+        oldPassword.reset();
+      });
+
+      it('oldPassword control is invalid if the value is empty', () => {
+        // Given
+        const value = '';
+        // When
+        oldPassword.setValue(value);
+        const errors = oldPassword.errors || {};
+        // Then
+        expect(oldPassword.valid).toBeFalsy();
+        expect(component.passwordUpdateForm.valid).toBeFalsy();
+        expect(errors['required']).toBeTruthy();
+      });
+    });
+  });
+});
diff --git a/src/app/user/components/user-account/user-account.component.html b/src/app/user/components/user-profil/user-profil.component.html
similarity index 95%
rename from src/app/user/components/user-account/user-account.component.html
rename to src/app/user/components/user-profil/user-profil.component.html
index 135a7f36733e07f765cb42ef6fdc3aede40feccc..2944f72add130c5e19bf4875ce73b6f586251200 100644
--- a/src/app/user/components/user-account/user-account.component.html
+++ b/src/app/user/components/user-profil/user-profil.component.html
@@ -1,4 +1,4 @@
-<h1 class="has-text-centered" i18n="@@userAccount.updateProfil">Update your profil</h1>
+<h1 class="has-text-centered" i18n="@@userProfil.updateProfil">Update your profil</h1>
 
 <div class="user-account-forms-container">
   <form [formGroup]="userInfoUpdateForm" (ngSubmit)="updateUserInfo()">
@@ -125,7 +125,7 @@
       <div class="column is-12 has-text-right">
         <div class="field">
           <div>
-            <button type="submit" class="button button-gl" [ngClass]="{'is-loading': userInfoUpdateForm.disabled}" i18n="@@userAccount.updateProfil"
+            <button type="submit" class="button button-gl" [ngClass]="{'is-loading': userInfoUpdateForm.disabled}" i18n="@@userProfil.updateProfil"
               [disabled]="userInfoUpdateFormIsInvalid || userInfoUpdateFormDisabled || !userInfoUpdateForm.dirty">Update
               your profil</button>
           </div>
@@ -140,7 +140,7 @@
     <div class="columns is-multiline">
       <div class="column is-12-mobile is-6-tablet">
         <div class="field">
-          <label class="label" for="password"><span i18n="@@userAccount.newPassword">New password</span><span class="required-field">*</span></label>
+          <label class="label" for="password"><span i18n="@@userProfil.newPassword">New password</span><span class="required-field">*</span></label>
           <p class="control has-icons-right">
             <input id="newPassword" class="input" type="password" formControlName="newPassword" [ngClass]="{'is-danger': passwordFormFieldIsInvalid('newPassword'), 'is-success': passwordFormFieldIsValid('newPassword')}">
             <span class="icon is-small is-right has-text-success" *ngIf="passwordFormFieldIsValid('newPassword')">
@@ -185,7 +185,7 @@
 
       <div class="column is-12-mobile is-6-tablet">
         <div class="field">
-          <label class="label" for="newPasswordConfirmation"><span i18n="@@userAccount.newPasswordConfirmation">New
+          <label class="label" for="newPasswordConfirmation"><span i18n="@@userProfil.newPasswordConfirmation">New
               password confirmation</span><span class="required-field">*</span></label>
           <p class="control has-icons-right">
             <input blockCopyPaste id="newPasswordConfirmation" class="input" type="password" formControlName="newPasswordConfirmation"
@@ -213,7 +213,7 @@
 
       <div class="column is-12-mobile is-6-tablet">
         <div class="field">
-          <label class="label" for="oldPassword"><span i18n="@@userAccount.oldPassword">Old password</span><span class="required-field">*</span></label>
+          <label class="label" for="oldPassword"><span i18n="@@userProfil.oldPassword">Old password</span><span class="required-field">*</span></label>
           <p class="control has-icons-right">
             <input blockCopyPaste id="oldPassword" class="input" type="password" formControlName="oldPassword"
               [ngClass]="{'is-danger': passwordFormFieldIsInvalid('oldPassword'), 'is-success': passwordFormFieldIsValid('oldPassword')}">
@@ -226,11 +226,11 @@
           </p>
 
           <div class="form-incorrect-field-message" *ngIf="passwordFormFieldIsInvalid('oldPassword')">
-            <div *ngIf="oldPassword.errors['required']" i18n="@@userAccount.errors.missingOldPassword">
+            <div *ngIf="oldPassword.errors['required']" i18n="@@userProfil.errors.missingOldPassword">
               You must enter your old password.
             </div>
 
-            <div *ngIf="oldPassword.errors['wrongPassword']" i18n="@@userAccount.errors.wrongPassword">
+            <div *ngIf="oldPassword.errors['wrongPassword']" i18n="@@userProfil.errors.wrongPassword">
               Make sure to enter the right password.
             </div>
           </div>
@@ -240,7 +240,7 @@
         <div class="field">
           <div>
             <button type="submit" class="button button-gl" [ngClass]="{'is-loading': passwordUpdateForm.disabled}"
-              [disabled]="passwordUpdateFormIsInvalid || passwordUpdateFormDisabled" i18n="@@userAccount.updatePassword">
+              [disabled]="passwordUpdateFormIsInvalid || passwordUpdateFormDisabled" i18n="@@userProfil.updatePassword">
               Update your password
             </button>
           </div>
diff --git a/src/app/user/components/user-account/user-account.component.scss b/src/app/user/components/user-profil/user-profil.component.scss
similarity index 100%
rename from src/app/user/components/user-account/user-account.component.scss
rename to src/app/user/components/user-profil/user-profil.component.scss
diff --git a/src/app/user/components/user-account/user-account.component.ts b/src/app/user/components/user-profil/user-profil.component.ts
similarity index 82%
rename from src/app/user/components/user-account/user-account.component.ts
rename to src/app/user/components/user-profil/user-profil.component.ts
index 1b4f4a6892e85da5d143ca42bdb8f4171ec191f1..28679500cc467b970ef8c2818a1427a20ce7d08e 100644
--- a/src/app/user/components/user-account/user-account.component.ts
+++ b/src/app/user/components/user-profil/user-profil.component.ts
@@ -1,29 +1,27 @@
 import { Component, OnInit } from '@angular/core';
 import { FormGroup, FormBuilder, Validators, AbstractControl } from '@angular/forms';
 import { environment } from '../../../../environments/environment';
-import { ValidatePassword } from '../../../core/validators/password.validator';
+import { ValidatePassword } from '../../validators/password.validator';
 import { UserService } from '../../services';
-import { IUserInfo, PasswordUpdateForm } from '../../models';
+import { PasswordUpdateForm } from '../../models';
 import { messages } from '../../../../i18n/notification-messages/notification-messages';
-import { NotificationService, AuthService } from '../../../core/services';
+import { NotificationService } from '../../../core/services';
 import { Router } from '@angular/router';
 import { AppRoutes } from '../../../routes';
 
 @Component({
-  selector: 'app-user-account',
-  templateUrl: './user-account.component.html',
-  styleUrls: ['./user-account.component.scss'],
+  selector: 'app-user-profil',
+  templateUrl: './user-profil.component.html',
+  styleUrls: ['./user-profil.component.scss'],
 })
-export class UserAccountComponent implements OnInit {
+export class UserProfilComponent implements OnInit {
 
   passwordUpdateForm: FormGroup;
   userInfoUpdateForm: FormGroup;
-  // userInfo: IUserInfo;
 
   constructor(
     private _fb: FormBuilder,
     private _userService: UserService,
-    private _authService: AuthService,
     private _notificationService: NotificationService,
     private _router: Router,
   ) {
@@ -36,29 +34,39 @@ export class UserAccountComponent implements OnInit {
       newPasswordConfirmation: ['', [Validators.required]],
       oldPassword: ['', [Validators.required]],
     });
+
+    this.userInfoUpdateForm = this._fb.group({
+      email: [],
+      firstName: [, [
+        Validators.required,
+        Validators.pattern('([A-ZÀ-ÖØ-Ý][a-zà-öø-ýÿA-ZÀ-ÖØ-Ý]*)([ \'-][a-zA-ZÀ-ÖØ-öø-ýÿ]*)*'),
+      ]],
+      lastName: [, [
+        Validators.required,
+        Validators.pattern('([A-ZÀ-ÖØ-Ý][a-zà-öø-ýÿA-ZÀ-ÖØ-Ý]*)([ \'-][a-zA-ZÀ-ÖØ-öø-ýÿ]*)*'),
+      ]],
+      acceptMessages: [],
+      entreprise: [],
+      address: [],
+      zipcode: [],
+      city: [],
+      country: [],
+    });
   }
 
   ngOnInit() {
     this._userService.getUserInfo().subscribe(
       (info) => {
-        // this.userInfo = info;
-
-        this.userInfoUpdateForm = this._fb.group({
-          email: [info.email],
-          firstName: [info.firstName, [
-            Validators.required,
-            Validators.pattern('([A-ZÀ-ÖØ-Ý][a-zà-öø-ýÿA-ZÀ-ÖØ-Ý]*)([ \'-][a-zA-ZÀ-ÖØ-öø-ýÿ]*)*'),
-          ]],
-          lastName: [info.lastName, [
-            Validators.required,
-            Validators.pattern('([A-ZÀ-ÖØ-Ý][a-zà-öø-ýÿA-ZÀ-ÖØ-Ý]*)([ \'-][a-zA-ZÀ-ÖØ-öø-ýÿ]*)*'),
-          ]],
-          acceptMessages: [info.acceptMessages],
-          entreprise: [info.entreprise],
-          address: [info.address],
-          zipcode: [info.zipcode],
-          city: [info.city],
-          country: [info.country],
+        this.userInfoUpdateForm.reset({
+          email: info.email,
+          firstName: info.firstName,
+          lastName: info.lastName,
+          acceptMessages: info.acceptMessages,
+          entreprise: info.entreprise,
+          address: info.address,
+          zipcode: info.zipcode,
+          city: info.city,
+          country: info.country,
         });
       },
       (err) => {
@@ -158,17 +166,16 @@ export class UserAccountComponent implements OnInit {
           );
           // If password updated with success
           // Relog the user with the new credentials
-          const loginForm = { username: this._authService.user.username, password: this.newPassword.value };
-          this._authService.login(loginForm).subscribe(
+          const loginForm = { username: this._userService.user.username, password: this.newPassword.value };
+          this._userService.login(loginForm).subscribe(
             // If loggedin with success reset the form
             // Else redirect the user to the login page
             (res) => {
               this.passwordUpdateForm.reset();
             },
             (err) => {
-              this._authService.resetAuth();
+              this._userService.resetAuth();
               this._router.navigate(['/', AppRoutes.signin.uri]);
-
             },
           );
         },
diff --git a/src/app/user/components/user-services/user-services.component.ts b/src/app/user/components/user-services/user-services.component.ts
index dc837d0dc014513b7828bf29d92b2e4268b715e1..51baf972912a743672a5065b3fe0b355986b518f 100644
--- a/src/app/user/components/user-services/user-services.component.ts
+++ b/src/app/user/components/user-services/user-services.component.ts
@@ -135,7 +135,7 @@ export class UserServicesComponent implements OnInit {
     const resource = array.find(e => e.datasetId === elementId);
     if (resource) {
       let bool = false;
-      const unselectedMode = resource.services.find(e => e.selected === false);
+      const unselectedMode = resource.services.find(e => !e.selected);
 
       if (unselectedMode) {
         bool = true;
@@ -152,7 +152,7 @@ export class UserServicesComponent implements OnInit {
 
     const resource = array.find(e => e.datasetId === datasetId);
     if (resource) {
-      const unselectedMode = resource.services.find(e => e.selected === false);
+      const unselectedMode = resource.services.find(e => !e.selected);
 
       if (unselectedMode) {
         res = false;
@@ -167,8 +167,8 @@ export class UserServicesComponent implements OnInit {
 
     const resource = array.find(e => e.datasetId === datasetId);
     if (resource) {
-      const unselectedService = resource.services.find(e => e.selected === false);
-      const selectedService = resource.services.find(e => e.selected === true);
+      const unselectedService = resource.services.find(e => !e.selected);
+      const selectedService = resource.services.find(e => e.selected);
 
       if (unselectedService && selectedService) {
         res = true;
@@ -180,9 +180,9 @@ export class UserServicesComponent implements OnInit {
 
   selectedResources(array: Resource[]) {
     return array.filter((e) => {
-      return e.services.findIndex(m => m.selected === true) !== -1 ? true : false;
+      return e.services.findIndex(m => m.selected) !== -1 ? true : false;
     }).map((e) => {
-      const servicesArray = e.services.filter(m => m.selected === true);
+      const servicesArray = e.services.filter(m => m.selected);
       const r = new Resource(e);
       r.services = servicesArray;
       return r;
diff --git a/src/app/core/guards/authenticated.guard.ts b/src/app/user/guards/authenticated.guard.ts
similarity index 70%
rename from src/app/core/guards/authenticated.guard.ts
rename to src/app/user/guards/authenticated.guard.ts
index d871701c0c6f91571d0fd4934bbf2d31c73bc263..54bf5e5863f080d147da732ed2c913ccc1dc83ff 100644
--- a/src/app/core/guards/authenticated.guard.ts
+++ b/src/app/user/guards/authenticated.guard.ts
@@ -1,15 +1,15 @@
 import { Injectable } from '@angular/core';
 import { Router, CanActivate } from '@angular/router';
-import { AuthService } from '../services';
 import { AppRoutes } from '../../routes';
+import { UserService } from '../services';
 
 @Injectable()
 export class AuthenticatedGuard implements CanActivate {
 
-  constructor(public _authService: AuthService, public router: Router) {}
+  constructor(public _userService: UserService, public router: Router) {}
 
   canActivate(): boolean {
-    if (!this._authService.userIsSignedIn) {
+    if (!this._userService.userIsSignedIn) {
       this.router.navigate(['/', AppRoutes.signin.uri]);
       return false;
     }
diff --git a/src/app/core/guards/index.ts b/src/app/user/guards/index.ts
similarity index 82%
rename from src/app/core/guards/index.ts
rename to src/app/user/guards/index.ts
index ffaceec90949cc1c59d1397f6d1275cb830183b8..1951c3f0bfa10cfdb7cf20c038e542873c205155 100644
--- a/src/app/core/guards/index.ts
+++ b/src/app/user/guards/index.ts
@@ -1,6 +1,6 @@
 import { AuthenticatedGuard } from './authenticated.guard';
 
 // tslint:disable-next-line:variable-name
-export const CoreGuards = [
+export const UserGuards = [
   AuthenticatedGuard,
 ];
diff --git a/src/app/core/interceptors/auth-interceptor.ts b/src/app/user/interceptors/auth-interceptor.ts
similarity index 100%
rename from src/app/core/interceptors/auth-interceptor.ts
rename to src/app/user/interceptors/auth-interceptor.ts
diff --git a/src/app/user/models/index.ts b/src/app/user/models/index.ts
index 50d2aeb2483de4c7be494a939832a4c1306cf52e..ec7623d35cb877fd2a3dd96ea76156ea6e80fb5c 100644
--- a/src/app/user/models/index.ts
+++ b/src/app/user/models/index.ts
@@ -1,7 +1,8 @@
 import { IRestrictedAccessDataset, IService, IResource, Resource,
   ServiceAccess, Service } from './user-services.model';
-import { IUserInfo, PasswordUpdateForm } from './user.model';
+import { User, ILoginResponse, ICreateAccountForm, LegacyAccount, IUserInfo, PasswordUpdateForm } from './user.model';
 
 export {
   IRestrictedAccessDataset, IService, IResource, Resource, ServiceAccess, Service, IUserInfo, PasswordUpdateForm,
+  User, ILoginResponse, ICreateAccountForm, LegacyAccount,
 };
diff --git a/src/app/user/models/user.model.ts b/src/app/user/models/user.model.ts
index aaad49d7d4ce3f17815e73551b163c90de218d02..1cfabd2d8be8d0baaeaae5ba3afadea91650674b 100644
--- a/src/app/user/models/user.model.ts
+++ b/src/app/user/models/user.model.ts
@@ -1,3 +1,70 @@
+export class User {
+  id: number;
+  firstName: string;
+  lastName: string;
+  email: string;
+  username: string;
+
+  //  payload is the decrypted payload of the JWT token
+  constructor(payload) {
+    if (payload) {
+      this.id = payload.id;
+      this.firstName = payload.firstName;
+      this.lastName = payload.lastName;
+      this.email = payload.email;
+      this.username = payload.username;
+    }
+  }
+}
+
+export interface ILoginResponse {
+  token: string;
+}
+
+export interface ICreateAccountForm {
+  firstName: string;
+  lastName: string;
+  email: string;
+  emailConfirmation: string;
+  password: string;
+  passwordConfirmation: string;
+  acceptMessages: boolean;
+  entreprise: string;
+  address: string;
+  zipcode: string;
+  city: string;
+  country: string;
+  cgu: boolean;
+}
+
+export class LegacyAccount {
+  firstName: string;
+  lastName: string;
+  username: string;
+  email: string;
+  password: string;
+  acceptMessages: boolean;
+  entreprise: string;
+  address: string;
+  zipcode: string;
+  city: string;
+  country: string;
+
+  constructor(form: ICreateAccountForm) {
+    this.firstName = form.firstName;
+    this.lastName = form.lastName;
+    this.username = form.email;
+    this.email = form.email;
+    this.password = form.password;
+    this.acceptMessages = form.acceptMessages;
+    this.entreprise = form.entreprise;
+    this.address = form.address;
+    this.zipcode = form.zipcode;
+    this.city = form.city;
+    this.country = form.country;
+  }
+}
+
 export interface IUserInfo {
   username: string;
   lastName: string;
diff --git a/src/app/user/services/user.service.ts b/src/app/user/services/user.service.ts
index 5d024cbc0e9fc9cc4ff8b5c8137079d7764de770..164c1a68a1c7cfa9792752f0348068ca4c04e524 100644
--- a/src/app/user/services/user.service.ts
+++ b/src/app/user/services/user.service.ts
@@ -1,17 +1,83 @@
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
 import { Observable } from 'rxjs';
-import { IUserInfo, PasswordUpdateForm } from '../models';
+import { IUserInfo, PasswordUpdateForm, User, ILoginResponse, LegacyAccount } from '../models';
 import { environment } from '../../../environments/environment';
 import { map } from 'rxjs/operators';
+import * as JwtDecode from 'jwt-decode';
 
 @Injectable()
 export class UserService {
 
+  private _user: User = null;
+
   constructor(
     private _http: HttpClient,
   ) { }
 
+  // Function and helpers allowing the management of the user session (jwt), info...
+  private setSession(authResult): boolean {
+    let success = false;
+    if (authResult && authResult.token) {
+      localStorage.setItem('token', authResult.token);
+      this.setUserInfo();
+      success = true;
+    } else {
+      this.resetAuth();
+    }
+
+    return success;
+  }
+
+  setUserInfo() {
+    const token = localStorage.getItem('token');
+    try {
+      const payload = JwtDecode(token);
+      this._user = new User(payload);
+    } catch (error) {
+    }
+  }
+
+  resetAuth() {
+    localStorage.removeItem('token');
+    this._user = null;
+  }
+
+  get user() {
+    return this._user;
+  }
+
+  get userIsSignedIn() {
+    return this._user != null;
+  }
+
+  // HTTP Calls
+  login(loginForm): Observable<boolean> {
+    return this._http.post<ILoginResponse>(environment.legacyLoginEndpoint, loginForm).pipe(
+      map(
+        (res) => {
+          return this.setSession(res);
+        },
+        (err) => {
+          throw err;
+        },
+      ),
+    );
+  }
+
+  createAccount(legacyAccount: LegacyAccount): Observable<boolean> {
+    return this._http.post<any>(`${environment.middlewareLegacyAuth}user/`, legacyAccount).pipe(
+      map(
+        (res) => {
+          return true;
+        },
+        (err) => {
+          throw err;
+        },
+      ),
+    );
+  }
+
   getUserInfo(): Observable<IUserInfo> {
     return this._http.get<IUserInfo>(`${environment.middlewareLegacyAuth}user`).pipe(
       map(
diff --git a/src/app/user/user-routing.module.ts b/src/app/user/user-routing.module.ts
index 5cc0adbdb3bdec599ea71bf78071c9aa46bdc99c..3d105ed228f4df0c6b1f05ece959acfba1c0943c 100644
--- a/src/app/user/user-routing.module.ts
+++ b/src/app/user/user-routing.module.ts
@@ -1,19 +1,32 @@
 import { NgModule } from '@angular/core';
 import { Routes, RouterModule } from '@angular/router';
 import { AppRoutes } from '../routes';
-import { AuthenticatedGuard } from '../core/guards/authenticated.guard';
-import { UserServicesComponent } from './components/user-services/user-services.component';
-import { UserAccountComponent } from './components';
+import { AuthenticatedGuard } from './guards/authenticated.guard';
+import { UserProfilComponent, LoginComponent, SignUpComponent, UserServicesComponent } from './components';
 
 export const routes: Routes = [
+  {
+    path: AppRoutes.signin.uri,
+    component: LoginComponent,
+    data: {
+      title: AppRoutes.signin.title,
+    },
+  },
+  {
+    path: AppRoutes.signup.uri,
+    component: SignUpComponent,
+    data: {
+      title: AppRoutes.signup.title,
+    },
+  },
   {
     path: AppRoutes.userServices.uri,
     component: UserServicesComponent,
     canActivate: [AuthenticatedGuard],
   },
   {
-    path: AppRoutes.userAccount.uri,
-    component: UserAccountComponent,
+    path: AppRoutes.userProfil.uri,
+    component: UserProfilComponent,
     canActivate: [AuthenticatedGuard],
   },
 ];
diff --git a/src/app/user/user.module.ts b/src/app/user/user.module.ts
index 19766bfc73a47afaf2bf4900c3d205090b45946d..7ea52171e0bc3c7ccf513cd4abc1aeeb2fd6a9f5 100644
--- a/src/app/user/user.module.ts
+++ b/src/app/user/user.module.ts
@@ -4,6 +4,9 @@ import { UserRoutingModule } from './user-routing.module';
 import { UserServices } from './services';
 import { UserComponents } from './components';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { HTTP_INTERCEPTORS } from '@angular/common/http';
+import { AuthInterceptor } from './interceptors/auth-interceptor';
+import { UserGuards } from './guards';
 
 @NgModule({
   imports: [
@@ -13,7 +16,13 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
     ReactiveFormsModule,
   ],
   providers: [
-    UserServices,
+    ...UserGuards,
+    ...UserServices,
+    {
+      provide: HTTP_INTERCEPTORS,
+      useClass: AuthInterceptor,
+      multi: true,
+    },
   ],
   declarations: [...UserComponents],
 })
diff --git a/src/app/core/validators/password.validator.ts b/src/app/user/validators/password.validator.ts
similarity index 100%
rename from src/app/core/validators/password.validator.ts
rename to src/app/user/validators/password.validator.ts
diff --git a/src/i18n/messages.en.xlf b/src/i18n/messages.en.xlf
index b223c6d7c785fb7ee254fb772d5ba55cb937cae2..6d012c0bf8e2be6a3505a3ed8cc80da15090581b 100644
--- a/src/i18n/messages.en.xlf
+++ b/src/i18n/messages.en.xlf
@@ -42,9 +42,9 @@
          <source>My services</source>
          <target>My services</target>
       </trans-unit>
-      <trans-unit id="header.userAccount" datatype="html">
-         <source>My account</source>
-         <target>My account</target>
+      <trans-unit id="header.userProfil" datatype="html">
+         <source>My profil</source>
+         <target>My profil</target>
       </trans-unit>
       <trans-unit id="footer.rss" datatype="html">
         <source>RSS Feed (new window)</source>
@@ -609,31 +609,31 @@
         <source>Remove access</source>
         <target>Remove access</target>
       </trans-unit>
-      <trans-unit id="userAccount.updateProfil" datatype="html">
+      <trans-unit id="userProfil.updateProfil" datatype="html">
         <source>Update your profil</source>
         <target>Update your profil</target>
       </trans-unit>
-      <trans-unit id="userAccount.newPassword" datatype="html">
+      <trans-unit id="userProfil.newPassword" datatype="html">
         <source>New password</source>
         <target>New password</target>
       </trans-unit>
-      <trans-unit id="userAccount.newPasswordConfirmation" datatype="html">
+      <trans-unit id="userProfil.newPasswordConfirmation" datatype="html">
         <source>New password confirmation</source>
         <target>New password confirmation</target>
       </trans-unit>
-      <trans-unit id="userAccount.oldPassword" datatype="html">
+      <trans-unit id="userProfil.oldPassword" datatype="html">
         <source>Old password</source>
         <target>Old password</target>
       </trans-unit>
-      <trans-unit id="userAccount.errors.missingOldPassword" datatype="html">
+      <trans-unit id="userProfil.errors.missingOldPassword" datatype="html">
         <source>You must enter your old password.</source>
         <target>You must enter your old password.</target>
       </trans-unit>
-      <trans-unit id="userAccount.errors.wrongPassword" datatype="html">
+      <trans-unit id="userProfil.errors.wrongPassword" datatype="html">
         <source>Make sure to enter the right password.</source>
         <target>Make sure to enter the right password.</target>
       </trans-unit>
-      <trans-unit id="userAccount.updatePassword" datatype="html">
+      <trans-unit id="userProfil.updatePassword" datatype="html">
         <source>Update your password</source>
         <target>Update your password</target>
       </trans-unit>
diff --git a/src/i18n/messages.fr.xlf b/src/i18n/messages.fr.xlf
index e5b9f33b2f1fc3e77ca3d6f32fc867f5e9e7be5b..56334fd8ffc7c4ea049e8fa9ed4793882bcc9051 100644
--- a/src/i18n/messages.fr.xlf
+++ b/src/i18n/messages.fr.xlf
@@ -42,9 +42,9 @@
          <source>My services</source>
          <target>Mes services</target>
       </trans-unit>
-      <trans-unit id="header.userAccount" datatype="html">
-         <source>My account</source>
-         <target>Mon compte</target>
+      <trans-unit id="header.userProfil" datatype="html">
+         <source>My profil</source>
+         <target>Mon profil</target>
       </trans-unit>
       <trans-unit id="footer.rss" datatype="html">
         <source>RSS Feed (new window)</source>
@@ -617,31 +617,31 @@
         <source>Remove access</source>
         <target>Supprimer les accès</target>
       </trans-unit>
-      <trans-unit id="userAccount.updateProfil" datatype="html">
+      <trans-unit id="userProfil.updateProfil" datatype="html">
         <source>Update your profil</source>
         <target>Modifier son profil</target>
       </trans-unit>
-      <trans-unit id="userAccount.newPassword" datatype="html">
+      <trans-unit id="userProfil.newPassword" datatype="html">
         <source>New password</source>
         <target>Nouveau mot de passe</target>
       </trans-unit>
-      <trans-unit id="userAccount.newPasswordConfirmation" datatype="html">
+      <trans-unit id="userProfil.newPasswordConfirmation" datatype="html">
         <source>New password confirmation</source>
         <target>Confirmation du nouveau mot de passe</target>
       </trans-unit>
-      <trans-unit id="userAccount.oldPassword" datatype="html">
+      <trans-unit id="userProfil.oldPassword" datatype="html">
         <source>Old password</source>
         <target>Ancien mot de passe</target>
       </trans-unit>
-      <trans-unit id="userAccount.errors.missingOldPassword" datatype="html">
+      <trans-unit id="userProfil.errors.missingOldPassword" datatype="html">
         <source>You must enter your old password.</source>
         <target>Veuillez saisir votre ancien mot de passe.</target>
       </trans-unit>
-      <trans-unit id="userAccount.errors.wrongPassword" datatype="html">
+      <trans-unit id="userProfil.errors.wrongPassword" datatype="html">
         <source>Make sure to enter the right password.</source>
         <target>Assurez vous d'avoir saisi le bon mot de passe.</target>
       </trans-unit>
-      <trans-unit id="userAccount.updatePassword" datatype="html">
+      <trans-unit id="userProfil.updatePassword" datatype="html">
         <source>Update your password</source>
         <target>Modifier son mot de passe</target>
       </trans-unit>