diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts
index f1659ce67f6238e8e9394a46af20829e2eeab830..9c957539f1164c39f2b039378a13222ba9faba26 100644
--- a/e2e/calculator.po.ts
+++ b/e2e/calculator.po.ts
@@ -60,8 +60,7 @@ export class CalculatorPage {
   }
 
   getCheckedCalcModeButtons() {
-    // tslint:disable-next-line:quotemark
-    return element.all(by.css('mat-button-toggle.radio_cal[ng-reflect-checked="true"]'));
+    return element.all(by.css(`mat-button-toggle.radio_cal[ng-reflect-checked="true"]`));
   }
 
   getAddStructureButton() {
diff --git a/e2e/load-save-session.e2e-spec.ts b/e2e/load-save-session.e2e-spec.ts
index 0ca4fac2845e9988e49fe368ded380e66cdbdde3..24125fc509d9116bd58f32c0567471945d580f45 100644
--- a/e2e/load-save-session.e2e-spec.ts
+++ b/e2e/load-save-session.e2e-spec.ts
@@ -82,10 +82,8 @@ describe("ngHyd − save and load sessions", () => {
     await browser.sleep(1000);
     const fileContent = fs.readFileSync(filename, { encoding: "utf8" });
 
-    // tslint:disable-next-line:quotemark
-    expect(fileContent).toContain('"nodeType":"SectionTrapeze"');
-    // tslint:disable-next-line:quotemark
-    expect(fileContent).toContain('{"symbol":"Ks","mode":"SINGLE","value":42}');
+    expect(fileContent).toContain(`"nodeType":"SectionTrapeze"`);
+    expect(fileContent).toContain(`{"symbol":"Ks","mode":"SINGLE","value":42}`);
   });
 
 });
diff --git a/e2e/pab.e2e-spec.ts b/e2e/pab.e2e-spec.ts
index 05ca0fa1e1ec9acba8f0de56f69aea38396fcc5a..6d87488c5443e57797a2b606024b26a6bc7a85b4 100644
--- a/e2e/pab.e2e-spec.ts
+++ b/e2e/pab.e2e-spec.ts
@@ -254,7 +254,7 @@ describe("ngHyd − Passe à Bassins", () => {
 
   });
 
-  fdescribe("load regulated variated PAB with calc errors - ", async () => {
+  describe("load regulated variated PAB with calc errors - ", async () => {
 
     it("should display logs", async() => {
       await startPage.navigateTo();
diff --git a/e2e/preferences.po.ts b/e2e/preferences.po.ts
index dc5aceb2bbec1595d77df593e16f1ea5b32ce405..e33a3d062cc09f182c8ecd454a9d8ed27edbc8b3 100644
--- a/e2e/preferences.po.ts
+++ b/e2e/preferences.po.ts
@@ -10,8 +10,7 @@ export class PreferencesPage {
   }
 
   getLanguageSelect() {
-    // tslint:disable-next-line:quotemark
-    return element(by.css('mat-select[data-testid="language-select"]'));
+    return element(by.css(`mat-select[data-testid="language-select"]`));
   }
 
   getInputLabels() {
@@ -19,8 +18,7 @@ export class PreferencesPage {
   }
 
   getNumericFormFields() {
-    // tslint:disable-next-line:quotemark
-    return element.all(by.css('mat-form-field[data-testclass="numeric-input"]'));
+    return element.all(by.css(`mat-form-field[data-testclass="numeric-input"]`));
   }
 
   getInputForField(ff: ElementFinder) {
diff --git a/e2e/sidenav.po.ts b/e2e/sidenav.po.ts
index 2625022bbeb3bff995b3c25db0238cb49a928d7d..71b170f1eca31534cf8f4d85a288d7fcb215d228 100644
--- a/e2e/sidenav.po.ts
+++ b/e2e/sidenav.po.ts
@@ -7,13 +7,11 @@ export class SideNav {
   }
 
   getFileInput() {
-    // tslint:disable-next-line:quotemark
-    return element(by.css('dialog-load-session input[type="file"]'));
+    return element(by.css(`dialog-load-session input[type="file"]`));
   }
 
   getFileLoadButton() {
-    // tslint:disable-next-line:quotemark
-    return element(by.css('dialog-load-session button[type="submit"]'));
+    return element(by.css(`dialog-load-session button[type="submit"]`));
   }
 
   async clickLoadSessionButton() {
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 428e6f13ad2411723f85b1ff367d6b827ed026b3..f14e6500d9849228e120e5cff51bb2a3043561c0 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -8,13 +8,13 @@ import { CdkDragDrop, moveItemInArray } from "@angular/cdk/drag-drop";
 import { Observer, jalhydDateRev, jalhydVersion, CalculatorType, Session } from "jalhyd";
 
 import { environment } from "../environments/environment";
-import { I18nService } from "./services/internationalisation/internationalisation.service";
-import { ErrorService } from "./services/error/error.service";
-import { FormulaireService } from "./services/formulaire/formulaire.service";
+import { I18nService } from "./services/internationalisation.service";
+import { ErrorService } from "./services/error.service";
+import { FormulaireService } from "./services/formulaire.service";
 import { FormulaireDefinition } from "./formulaire/definition/form-definition";
 import { ServiceFactory } from "./services/service-factory";
-import { HttpService } from "./services/http/http.service";
-import { ApplicationSetupService } from "./services/app-setup/app-setup.service";
+import { HttpService } from "./services/http.service";
+import { ApplicationSetupService } from "./services/app-setup.service";
 import { nghydDateRev, nghydVersion } from "../date_revision";
 
 import { DialogConfirmCloseCalcComponent } from "./components/dialog-confirm-close-calc/dialog-confirm-close-calc.component";
@@ -22,7 +22,7 @@ import { DialogConfirmEmptySessionComponent } from "./components/dialog-confirm-
 import { DialogLoadSessionComponent } from "./components/dialog-load-session/dialog-load-session.component";
 import { DialogSaveSessionComponent } from "./components/dialog-save-session/dialog-save-session.component";
 import { QuicknavComponent } from "./components/quicknav/quicknav.component";
-import { NotificationsService } from "./services/notifications/notifications.service";
+import { NotificationsService } from "./services/notifications.service";
 
 import { HotkeysService, Hotkey } from "angular2-hotkeys";
 
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 934e532284527cffd926ca36b25d298218a4bd72..88491f10940562b8b2e468b752a27a9029f24cbf 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -48,11 +48,11 @@ import { NgxMdModule } from "ngx-md";
 import { StorageServiceModule } from "ngx-webstorage-service";
 import { HotkeyModule } from "angular2-hotkeys";
 
-import { FormulaireService } from "./services/formulaire/formulaire.service";
-import { I18nService } from "./services/internationalisation/internationalisation.service";
-import { HttpService } from "./services/http/http.service";
-import { ApplicationSetupService } from "./services/app-setup/app-setup.service";
-import { NotificationsService } from "./services/notifications/notifications.service";
+import { FormulaireService } from "./services/formulaire.service";
+import { I18nService } from "./services/internationalisation.service";
+import { HttpService } from "./services/http.service";
+import { ApplicationSetupService } from "./services/app-setup.service";
+import { NotificationsService } from "./services/notifications.service";
 
 import { AppComponent } from "./app.component";
 import { NgParamInputComponent } from "./components/ngparam-input/ngparam-input.component";
diff --git a/src/app/components/app-setup/app-setup.component.ts b/src/app/components/app-setup/app-setup.component.ts
index 507c2212e8049223cc4dec55b74eae9e9c4cc834..bb782367449a17284c3a8881262de54efb53016e 100644
--- a/src/app/components/app-setup/app-setup.component.ts
+++ b/src/app/components/app-setup/app-setup.component.ts
@@ -2,8 +2,8 @@ import { Component, OnInit } from "@angular/core";
 
 import { ParamDomainValue, Observer } from "jalhyd";
 
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { ApplicationSetupService } from "../../services/app-setup.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { NgBaseParam } from "../base-param-input/base-param-input.component";
 import { ErrorStateMatcher, MatSnackBar } from "@angular/material";
 
diff --git a/src/app/components/base-param-input/base-param-input.component.ts b/src/app/components/base-param-input/base-param-input.component.ts
index 447a9900eb45365d3cd5cf4fe83f0d141598a97b..ab8c254a1973786f432d48f6f61f930e17115a41 100644
--- a/src/app/components/base-param-input/base-param-input.component.ts
+++ b/src/app/components/base-param-input/base-param-input.component.ts
@@ -4,7 +4,7 @@ import { Component, ChangeDetectorRef } from "@angular/core";
 
 import { Message, ParamDefinition, ParamDomain, ParamDomainValue, Observable } from "jalhyd";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { GenericInputComponent } from "../generic-input/generic-input.component";
 import { ServiceFactory } from "../../services/service-factory";
 import { NgParameter } from "../../formulaire/ngparam";
diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index 433d502d540000bb265ab410413566ed0e4da6a8..3a36e45e7172d6296be452b65f8453120545aa5b 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -5,13 +5,11 @@ import { CalculatorType, EnumEx, Session } from "jalhyd";
 
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
 import { ServiceFactory } from "../../services/service-factory";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { FormulaireParallelStructure } from "../../formulaire/definition/concrete/form-parallel-structures";
 import { FieldsetContainer } from "../../formulaire/fieldset-container";
 import { FormulairePab } from "../../formulaire/definition/concrete/form-pab";
-import { HttpService } from "../../services/http/http.service";
-import { NotificationsService } from "../../services/notifications/notifications.service";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
+import { HttpService } from "../../services/http.service";
 import { AppComponent } from "../../app.component";
 import { FormulaireMacrorugoCompound } from "../../formulaire/definition/concrete/form-macrorugo-compound";
 
@@ -28,9 +26,7 @@ export class CalculatorListComponent implements OnInit {
         @Inject(forwardRef(() => AppComponent)) private appComponent: AppComponent,
         private router: Router,
         private httpService: HttpService,
-        private intlService: I18nService,
-        private notificationsService: NotificationsService,
-        private formulaireService: FormulaireService
+        private intlService: I18nService
     ) {
         ServiceFactory.instance.i18nService.addObserver(this);
         ServiceFactory.instance.applicationSetupService.addObserver(this);
@@ -107,7 +103,7 @@ export class CalculatorListComponent implements OnInit {
         }
     }
 
-    private create(t: CalculatorType) {
+    public create(t: CalculatorType) {
         const p: Promise<FormulaireDefinition> = ServiceFactory.instance.formulaireService.createFormulaire(t);
         p.then(f => {
             this.router.navigate(["/calculator", f.uid]);
diff --git a/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.ts b/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.ts
index 500031bf725adf030a64dd7be841b3b570adb3cc..8ea929d345421cb13b7edd956619a02acf3fbdba 100644
--- a/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.ts
+++ b/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.ts
@@ -1,7 +1,7 @@
 import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
 import { Inject, Component } from "@angular/core";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { FormulaireService } from "../../services/formulaire.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { Session } from "jalhyd";
 
 @Component({
diff --git a/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.ts b/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.ts
index ff13f443e369c1ef947bc89f866825db4175b0f6..ad892f6ea973fe8ddb7e831d803e8a00ac0c8b75 100644
--- a/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.ts
+++ b/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.ts
@@ -1,6 +1,6 @@
 import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
 import { Inject, Component } from "@angular/core";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "dialog-confirm-empty-session",
diff --git a/src/app/components/dialog-edit-pab/dialog-edit-pab.component.ts b/src/app/components/dialog-edit-pab/dialog-edit-pab.component.ts
index 4065bed84818170c6edfc2050d72bfc442913b25..bb932adc21c748e8b6bc4bd7a871355927aef934 100644
--- a/src/app/components/dialog-edit-pab/dialog-edit-pab.component.ts
+++ b/src/app/components/dialog-edit-pab/dialog-edit-pab.component.ts
@@ -1,7 +1,7 @@
 import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
 import { Inject, Component } from "@angular/core";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 import { sprintf } from "sprintf-js";
 
diff --git a/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.ts b/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.ts
index 373ef709df826bfb26c0fa6fefd61e9d27a157b5..eeaa8ccd12f96c56ece0f346896df27e6a0ad289 100644
--- a/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.ts
+++ b/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.ts
@@ -1,6 +1,6 @@
 import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
 import { Inject, Component, ViewChild, OnInit } from "@angular/core";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { NgParameter } from "../../formulaire/ngparam";
 import { NgParamInputComponent } from "../ngparam-input/ngparam-input.component";
 
diff --git a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
index a660ee797b2f7044a78f3b4fd83151ebe3065707..d581f63e406716c8b1cc513c47e231dcc59d1f31 100644
--- a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
+++ b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
@@ -2,12 +2,12 @@ import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
 import { Inject, Component, OnInit } from "@angular/core";
 import { FormBuilder, FormGroup, Validators } from "@angular/forms";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { NgParameter } from "../../formulaire/ngparam";
-import { sprintf } from "sprintf-js";
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
 import { ResultsComponent } from "../fixedvar-results/results.component";
 
+import { sprintf } from "sprintf-js";
+
 import { ParamValueMode, ExtensionStrategy } from "jalhyd";
 
 import { fv } from "../../util";
@@ -45,7 +45,6 @@ export class DialogEditParamValuesComponent implements OnInit {
     constructor(
         public dialogRef: MatDialogRef<DialogEditParamValuesComponent>,
         private intlService: I18nService,
-        private appSetupService: ApplicationSetupService,
         private fb: FormBuilder,
         @Inject(MAT_DIALOG_DATA) public data: any
     ) {
@@ -96,7 +95,6 @@ export class DialogEditParamValuesComponent implements OnInit {
         ];
 
         // chart configuration
-        const nDigits = this.appSetupService.displayDigits;
         this.chartOptions = {
             responsive: true,
             maintainAspectRatio: true,
diff --git a/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts b/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
index dd842382b884388bd15995e072e128773a338fd9..07943130e738a3f2872b417ce9f3f10ed3f1a25c 100644
--- a/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
+++ b/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
@@ -1,8 +1,8 @@
 import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
 import { Inject, Component } from "@angular/core";
 
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { ApplicationSetupService } from "../../services/app-setup.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 import { sprintf } from "sprintf-js";
 import { round } from "jalhyd";
diff --git a/src/app/components/dialog-load-session/dialog-load-session.component.ts b/src/app/components/dialog-load-session/dialog-load-session.component.ts
index 2cedc126b0c2cbc5be701fddd7475be357912aed..a8f7aa8170bd9f4921dd8a0dcde1a70e79dde4a4 100644
--- a/src/app/components/dialog-load-session/dialog-load-session.component.ts
+++ b/src/app/components/dialog-load-session/dialog-load-session.component.ts
@@ -4,7 +4,7 @@ import { Inject, Component } from "@angular/core";
 import { config } from "jalhyd";
 import { decode } from "he";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { FormGroup, FormBuilder, Validators } from "@angular/forms";
 import { ServiceFactory } from "../../services/service-factory";
 
diff --git a/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.ts b/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.ts
index d1bf57c65b854c9ce867ab62528a135d4a6bc9a0..fe47f047c0951a540c544e3f951a1407aa76471e 100644
--- a/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.ts
+++ b/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.ts
@@ -1,6 +1,6 @@
 import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
 import { Inject, Component } from "@angular/core";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "dialog-log-entries-details",
diff --git a/src/app/components/dialog-save-session/dialog-save-session.component.ts b/src/app/components/dialog-save-session/dialog-save-session.component.ts
index f29244bff976dbc0dbc8d9c5944cf96e9b9ea46e..092b245f2b2488233b41b2373af191d4feb7dcbc 100644
--- a/src/app/components/dialog-save-session/dialog-save-session.component.ts
+++ b/src/app/components/dialog-save-session/dialog-save-session.component.ts
@@ -1,6 +1,6 @@
 import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
 import { Inject, Component } from "@angular/core";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "dialog-save-session",
diff --git a/src/app/components/field-set/field-set.component.ts b/src/app/components/field-set/field-set.component.ts
index 45601ca85c8dba22b59483725e2719d142a97c12..8a557774a2e992d4f9c1e0d77423a46a9828b83e 100644
--- a/src/app/components/field-set/field-set.component.ts
+++ b/src/app/components/field-set/field-set.component.ts
@@ -9,8 +9,8 @@ import { SelectField } from "../../formulaire/select-field";
 import { FormulairePab } from "../../formulaire/definition/concrete/form-pab";
 import { SelectModelFieldLineComponent } from "../select-model-field-line/select-model-field-line.component";
 import { FieldsetContainer } from "../../formulaire/fieldset-container";
-import { NotificationsService } from "../../services/notifications/notifications.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { NotificationsService } from "../../services/notifications.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 import { sprintf } from "sprintf-js";
 
@@ -27,7 +27,7 @@ export class FieldSetComponent implements DoCheck {
     public childrenToAdd = 1;
 
     @Input()
-    private set fieldSet(fs: FieldSet) {
+    public set fieldSet(fs: FieldSet) {
         this._fieldSet = fs;
     }
 
@@ -137,7 +137,6 @@ export class FieldSetComponent implements DoCheck {
     /**
      * événement de changement d'état d'un radio
      */
-    // tslint:disable-next-line:no-output-on-prefix
     @Output()
     private radio = new EventEmitter<any>();
 
@@ -150,7 +149,7 @@ export class FieldSetComponent implements DoCheck {
         private i18nService: I18nService
     ) { }
 
-    private hasRadioFix(): boolean {
+    public hasRadioFix(): boolean {
         if (this._fieldSet.hasInputs) {
             switch (this._fieldSet.getInput(0).radioConfig) {
                 case ParamRadioConfig.FIX:
@@ -163,7 +162,7 @@ export class FieldSetComponent implements DoCheck {
         return false;
     }
 
-    private hasRadioVar(): boolean {
+    public hasRadioVar(): boolean {
         if (this._fieldSet.hasInputs) {
             switch (this._fieldSet.getInput(0).radioConfig) {
                 case ParamRadioConfig.VAR:
@@ -177,7 +176,7 @@ export class FieldSetComponent implements DoCheck {
         return false;
     }
 
-    private hasRadioCal(): boolean {
+    public hasRadioCal(): boolean {
         if (this._fieldSet.hasInputs) {
             switch (this._fieldSet.getInput(0).radioConfig) {
                 case ParamRadioConfig.CAL:
@@ -193,14 +192,14 @@ export class FieldSetComponent implements DoCheck {
     /**
      * détermine si un Field est du type InputField
      */
-    private isInputField(f: Field): boolean {
+    public isInputField(f: Field): boolean {
         return f instanceof InputField && f.isDisplayed;
     }
 
     /**
      * détermine si un Field est du type SelectField
      */
-    private isSelectField(f: Field): boolean {
+    public isSelectField(f: Field): boolean {
         return (
             f instanceof SelectField
             && ! (f.parentForm instanceof FormulairePab)
@@ -213,7 +212,7 @@ export class FieldSetComponent implements DoCheck {
      * réception d'un message du composant enfant (param-field)
      * cf. https://angular.io/guide/component-interaction#parent-listens-for-child-event
      */
-    private onRadioClick(info: any) {
+    public onRadioClick(info: any) {
         // on renvoie l'info au parent
         this.radio.emit(info);
     }
@@ -287,24 +286,17 @@ export class FieldSetComponent implements DoCheck {
     /**
      * réception d'un événement de validité de ParamFieldLineComponent
      */
-    private onParamLineValid(event: boolean) {
+    public onParamLineValid(event: boolean) {
         this.updateValidity();
     }
 
     /**
     * réception d'un événement de changement de valeur d'un input
     */
-    private onInputChange($event) {
+   public onInputChange($event) {
         this.inputChange.emit($event);
     }
 
-    /**
-     * relit les valeurs dans l'interface et met à jour les NgParameter
-     */
-    public updateParametersFromUI() {
-        this._paramComponents.forEach(fsc => fsc.updateParameterFromUI());
-    }
-
     /**
      * met à jour les paramètres liés
      */
@@ -335,7 +327,7 @@ export class FieldSetComponent implements DoCheck {
     /**
      * clic sur le bouton ajouter
      */
-    private onAddClick() {
+    public onAddClick() {
         for (let i = 0; i < this.childrenToAdd; i++) {
             this.addFieldset.emit({
                 fs: this._fieldSet,
@@ -357,7 +349,7 @@ export class FieldSetComponent implements DoCheck {
     /**
      * clic sur le bouton copier
      */
-    private onCopyClick() {
+    public onCopyClick() {
         for (let i = 0; i < this.childrenToAdd; i++) {
             this.addFieldset.emit({
                 fs: this._fieldSet,
@@ -379,7 +371,7 @@ export class FieldSetComponent implements DoCheck {
     /**
      * clic sur le bouton supprimer
      */
-    private onRemoveClick() {
+    public onRemoveClick() {
         const pos = (this._fieldSet.parent as FieldsetContainer).getFieldsetPosition(this._fieldSet) + 1;
         this.removeFieldset.emit(this._fieldSet);
         const cns = capitalize(this.i18nService.childName(this._fieldSet.nub.parent));
@@ -391,7 +383,7 @@ export class FieldSetComponent implements DoCheck {
     /**
      * clic sur le bouton monter
      */
-    private onMoveUpClick() {
+    public onMoveUpClick() {
         const pos = (this._fieldSet.parent as FieldsetContainer).getFieldsetPosition(this._fieldSet) + 1;
         this.moveFieldsetUp.emit(this._fieldSet);
         const cns = capitalize(this.i18nService.childName(this._fieldSet.nub.parent));
@@ -403,7 +395,7 @@ export class FieldSetComponent implements DoCheck {
     /**
      * clic sur le bouton descendre
      */
-    private onMoveDownClick() {
+    public onMoveDownClick() {
         const pos = (this._fieldSet.parent as FieldsetContainer).getFieldsetPosition(this._fieldSet) + 1;
         this.moveFieldsetDown.emit(this._fieldSet);
         const cns = capitalize(this.i18nService.childName(this._fieldSet.nub.parent));
diff --git a/src/app/components/fieldset-container/fieldset-container.component.ts b/src/app/components/fieldset-container/fieldset-container.component.ts
index 6152826176cedd3e0fa264a99cba12531ce07bcc..e53e5f804f3654f53b342750aa5ed8a8ee204219 100644
--- a/src/app/components/fieldset-container/fieldset-container.component.ts
+++ b/src/app/components/fieldset-container/fieldset-container.component.ts
@@ -4,7 +4,7 @@ import { FieldsetContainer } from "../../formulaire/fieldset-container";
 import { FieldSetComponent } from "../field-set/field-set.component";
 import { FieldSet } from "../../formulaire/fieldset";
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "fieldset-container",
@@ -45,7 +45,6 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
     /**
      * événément de changement d'état d'un radio
      */
-    // tslint:disable-next-line:no-output-on-prefix
     @Output()
     private radio = new EventEmitter<any>();
 
@@ -101,7 +100,7 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
      * réception d'un message du composant enfant (field-set)
      * cf. https://angular.io/guide/component-interaction#parent-listens-for-child-event
      */
-    private onRadioClick(info: any) {
+    public onRadioClick(info: any) {
         // on renvoie l'info au parent
         this.radio.emit(info);
     }
@@ -144,24 +143,17 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
     /**
      * réception d'un événement de validité de FieldSet
      */
-    private onFieldsetValid() {
+    public onFieldsetValid() {
         this.updateValidity();
     }
 
     /**
     * réception d'un événement de changement de valeur d'un input
     */
-    private onInputChange($event) {
+    public onInputChange($event) {
         this.inputChange.emit($event);
     }
 
-    /**
-     * relit les valeurs dans l'interface et met à jour les NgParameter
-     */
-    public updateParametersFromUI() {
-        this._fieldsetComponents.forEach(fsc => fsc.updateParametersFromUI());
-    }
-
     /**
      * met à jour les paramètres liés
      */
@@ -172,14 +164,14 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
     /**
     * réception d'un événement de demande d'ajout d'un FieldSet
     */
-    private onAddFieldset(evt: { fs: FieldSet, clone: boolean }) {
+    public onAddFieldset(evt: { fs: FieldSet, clone: boolean }) {
         this.addSubNub(evt.fs, evt.clone);
     }
 
     /**
     * réception d'un événement de demande de suppression d'un FieldSet
     */
-    private onRemoveFieldset(fs: FieldSet) {
+    public onRemoveFieldset(fs: FieldSet) {
         const form = this._container.parent as FormulaireDefinition;
         form.removeFieldset(fs);
     }
@@ -187,7 +179,7 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
     /**
     * réception d'un événement de demande de remontée d'un FieldSet
     */
-    private onMoveFieldsetUp(fs: FieldSet) {
+    public onMoveFieldsetUp(fs: FieldSet) {
         const form = this._container.parent as FormulaireDefinition;
         form.moveFieldsetUp(fs);
     }
@@ -195,7 +187,7 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
     /**
     * réception d'un événement de demande de descente d'un FieldSet
     */
-    private onMoveFieldsetDown(fs: FieldSet) {
+    public onMoveFieldsetDown(fs: FieldSet) {
         const form = this._container.parent as FormulaireDefinition;
         form.moveFieldsetDown(fs);
     }
diff --git a/src/app/components/fixedvar-results/fixed-results.component.ts b/src/app/components/fixedvar-results/fixed-results.component.ts
index 769ebcac7cf6181f57725bdfd55ffe572763790c..45d9d41838fd46db52baa2b73fbab93e506eec5a 100644
--- a/src/app/components/fixedvar-results/fixed-results.component.ts
+++ b/src/app/components/fixedvar-results/fixed-results.component.ts
@@ -3,8 +3,8 @@ import { Component, ViewChild, ElementRef } from "@angular/core";
 import { FixedResults } from "../../results/fixed-results";
 import { NgParameter } from "../../formulaire/ngparam";
 import { CalculatorResults } from "../../results/calculator-results";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
+import { I18nService } from "../../services/internationalisation.service";
+import { FormulaireService } from "../../services/formulaire.service";
 import { ResultsComponent } from "./results.component";
 
 import { Structure, capitalize } from "jalhyd";
@@ -40,23 +40,23 @@ export class FixedResultsComponent extends ResultsComponent {
         this._fixedResults = r;
     }
 
-    private get hasParameterResult(): boolean {
+    public get hasParameterResult(): boolean {
         return this._fixedResults && this._fixedResults.hasResults;
     }
 
-    private get uitextParamFixes() {
+    public get uitextParamFixes() {
         return this.intlService.localizeText("INFO_CALCULATOR_PARAMFIXES");
     }
 
-    private get uitextValeurs() {
+    public get uitextValeurs() {
         return this.intlService.localizeText("INFO_CALCULATOR_VALEURS");
     }
 
-    private get uitextExportAsSpreadsheet() {
+    public get uitextExportAsSpreadsheet() {
         return this.intlService.localizeText("INFO_RESULTS_EXPORT_AS_SPREADSHEET");
     }
 
-    private get fixedParams() {
+    public get fixedParams() {
         return this._fixedResults && this._fixedResults.fixedParameters;
     }
 
@@ -64,7 +64,7 @@ export class FixedResultsComponent extends ResultsComponent {
         return this._fixedResults && this._fixedResults.fixedParameters.length > 0;
     }
 
-    private formattedLabel(p: NgParameter): string {
+    public formattedLabel(p: NgParameter): string {
         return CalculatorResults.paramLabel(p, false);
     }
 
diff --git a/src/app/components/fixedvar-results/fixedvar-results.component.ts b/src/app/components/fixedvar-results/fixedvar-results.component.ts
index 0c699773bebe5239e66ccc393fb685c8e5442f9e..3944501316aa65f5892429ea348f9c925ebb212e 100644
--- a/src/app/components/fixedvar-results/fixedvar-results.component.ts
+++ b/src/app/components/fixedvar-results/fixedvar-results.component.ts
@@ -151,7 +151,7 @@ export class FixedVarResultsComponent extends ResultsComponent implements DoChec
     /**
      * affichage de la table des résultats fixés
      */
-    private get showFixedResults(): boolean {
+    public get showFixedResults(): boolean {
         return this._fixedResults && this._fixedResults.hasResults;
     }
 
@@ -162,12 +162,12 @@ export class FixedVarResultsComponent extends ResultsComponent implements DoChec
         return this._varResults && this._varResults.hasResults;
     }
 
-    private getFixedResultClass(i: number) {
+    public getFixedResultClass(i: number) {
         // tslint:disable-next-line:no-bitwise
         return "result_id_" + String(i & 1);
     }
 
-    private get fixedParams() {
+    public get fixedParams() {
         return this._fixedResults.fixedParameters;
     }
 
@@ -175,7 +175,7 @@ export class FixedVarResultsComponent extends ResultsComponent implements DoChec
         return this._fixedResults;
     }
 
-    private formattedLabel(p: NgParameter): string {
+    public formattedLabel(p: NgParameter): string {
         return CalculatorResults.paramLabel(p, false);
     }
 
@@ -183,7 +183,7 @@ export class FixedVarResultsComponent extends ResultsComponent implements DoChec
         return this._varResults;
     }
 
-    private get hasResults(): boolean {
+    public get hasResults(): boolean {
         return this._fixedResults !== undefined && this._fixedResults.hasResults;
     }
 }
diff --git a/src/app/components/fixedvar-results/var-results.component.ts b/src/app/components/fixedvar-results/var-results.component.ts
index 35492ca392dc4ba3e53002c03312056538eb46fd..ca21f1807ce1d20b8748e80e92b5d72527a5b3cd 100644
--- a/src/app/components/fixedvar-results/var-results.component.ts
+++ b/src/app/components/fixedvar-results/var-results.component.ts
@@ -6,7 +6,7 @@ import * as XLSX from "xlsx";
 
 import { VarResults } from "../../results/var-results";
 import { ResultElement, Message, MessageSeverity } from "jalhyd";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { ResultsComponent } from "./results.component";
 import { DialogLogEntriesDetailsComponent } from "../dialog-log-entries-details/dialog-log-entries-details.component";
 
diff --git a/src/app/components/generic-calculator/calc-name.component.ts b/src/app/components/generic-calculator/calc-name.component.ts
index b4c109b6f308abd98de68791949468534bf8c2b3..9ed7ccb714ac03cf2e97d2a6f9de5be1cc7f366c 100644
--- a/src/app/components/generic-calculator/calc-name.component.ts
+++ b/src/app/components/generic-calculator/calc-name.component.ts
@@ -1,7 +1,7 @@
 import { Component } from "@angular/core";
 import { GenericInputComponent } from "../generic-input/generic-input.component";
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "calc-name",
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 5e1d144b1e3e759f583f1907d0e38c80c92ec792..c68de58dbccf56b5b67933b82adb0f1913d7eee8 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -5,8 +5,8 @@ import { ActivatedRoute, Router } from "@angular/router";
 import { Observer, Session, Cloisons, Pab, ParamValueMode, CalculatorType } from "jalhyd";
 
 import { AppComponent } from "../../app.component";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { FormulaireService } from "../../services/formulaire.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { FieldSet } from "../../formulaire/fieldset";
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
 import { CalculatorResultsComponent } from "../../components/calculator-results/calculator-results.component";
@@ -274,14 +274,6 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
         this.formulaireService.requestCloseForm(this._formulaire.uid);
     }
 
-    /**
-     * relit les valeurs dans l'interface et met à jour les NgParameter
-     */
-    private updateParametersFromUI() {
-        this._fieldsetComponents.forEach(fsc => fsc.updateParametersFromUI());
-        this._fieldsetContainerComponents.forEach(fscc => fscc.updateParametersFromUI());
-    }
-
     /**
      * met à jour les paramètres liés
      */
diff --git a/src/app/components/generic-input/generic-input.component.ts b/src/app/components/generic-input/generic-input.component.ts
index 4602a97aa21dd46cec17f9c2309a2a9e5033a69e..8ac3c375cab927f92cb5fbca7dda4ffcebd90114 100644
--- a/src/app/components/generic-input/generic-input.component.ts
+++ b/src/app/components/generic-input/generic-input.component.ts
@@ -3,7 +3,7 @@ import { NgModel } from "@angular/forms";
 import { isNumeric, Structure, Pab, MacrorugoCompound } from "jalhyd";
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
 import { NgParameter } from "../../formulaire/ngparam";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 /**
  * classe de gestion générique d'un champ de saisie avec titre, validation et message d'erreur
diff --git a/src/app/components/log-entry/log-entry.component.ts b/src/app/components/log-entry/log-entry.component.ts
index 5bdc15e530f0f25d6e03906fbaa3c122d8e1cd53..923c0c195934c24a3c0bfde84e14589e0748da32 100644
--- a/src/app/components/log-entry/log-entry.component.ts
+++ b/src/app/components/log-entry/log-entry.component.ts
@@ -2,8 +2,8 @@ import { Component, Input, OnChanges } from "@angular/core";
 
 import { Message, MessageSeverity } from "jalhyd";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
+import { I18nService } from "../../services/internationalisation.service";
+import { ApplicationSetupService } from "../../services/app-setup.service";
 
 @Component({
     selector: "log-entry",
diff --git a/src/app/components/log/log.component.ts b/src/app/components/log/log.component.ts
index c84de036410d6effe1a9c82f088b12bc6e77579b..622fdd914984ab8da3955b5b6147be420a9a7f5f 100644
--- a/src/app/components/log/log.component.ts
+++ b/src/app/components/log/log.component.ts
@@ -2,7 +2,7 @@ import { Component, Input } from "@angular/core";
 
 import { cLog, Message } from "jalhyd";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "log",
@@ -25,7 +25,7 @@ export class LogComponent {
         private intlService: I18nService,
     ) { }
 
-    private get uitextTitreJournal() {
+    public get uitextTitreJournal() {
         if (this.logTitle) {
             return this.logTitle;
         } else {
@@ -37,7 +37,7 @@ export class LogComponent {
         return this._log !== undefined && this._log.messages.length !== 0;
     }
 
-    private get messages(): Message[] {
+    public get messages(): Message[] {
         return this._log.messages;
     }
 
diff --git a/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.ts b/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.ts
index 5f3e09781863c44d55581968cb7f26ad22390a65..def97e912338bcb25ef61d59cfbb5f18b4ecaec5 100644
--- a/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.ts
+++ b/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.ts
@@ -4,8 +4,8 @@ import { MacroRugo } from "jalhyd";
 
 import * as XLSX from "xlsx";
 
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { ApplicationSetupService } from "../../services/app-setup.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { ResultsComponent } from "../fixedvar-results/results.component";
 import { MacrorugoCompoundResults } from "../../results/macrorugo-compound-results";
 
diff --git a/src/app/components/macrorugo-compound-results/macrorugo-compound-results.component.ts b/src/app/components/macrorugo-compound-results/macrorugo-compound-results.component.ts
index ca523574c08e40236b62e72dee3b9925ad2c68df..a97668c9b8bd0341820ddddd4bdefcff68ff116c 100644
--- a/src/app/components/macrorugo-compound-results/macrorugo-compound-results.component.ts
+++ b/src/app/components/macrorugo-compound-results/macrorugo-compound-results.component.ts
@@ -5,10 +5,10 @@ import { Result, cLog, Message, MessageCode, MessageSeverity } from "jalhyd";
 import { LogComponent } from "../../components/log/log.component";
 import { CalculatorResults } from "../../results/calculator-results";
 import { NgParameter } from "../../formulaire/ngparam";
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
+import { ApplicationSetupService } from "../../services/app-setup.service";
 import { PlottableData } from "../../results/plottable-data";
 import { ResultsGraphComponent } from "../results-graph/results-graph.component";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { VariableResultsSelectorComponent } from "../variable-results-selector/variable-results-selector.component";
 import { MacrorugoCompoundResultsTableComponent } from "./macrorugo-compound-results-table.component";
 import { MacrorugoCompoundResults } from "../../results/macrorugo-compound-results";
diff --git a/src/app/components/modules-diagram/modules-diagram.component.ts b/src/app/components/modules-diagram/modules-diagram.component.ts
index 070cb338a70197b967da1b2dea57ef39d29842f6..1c91b462a147bfedceadefd0d063be3b34aa0974 100644
--- a/src/app/components/modules-diagram/modules-diagram.component.ts
+++ b/src/app/components/modules-diagram/modules-diagram.component.ts
@@ -19,8 +19,8 @@ import {
     Pab
 } from "jalhyd";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
+import { I18nService } from "../../services/internationalisation.service";
+import { FormulaireService } from "../../services/formulaire.service";
 
 import * as mermaid from "mermaid";
 
diff --git a/src/app/components/ngparam-input/ngparam-input.component.ts b/src/app/components/ngparam-input/ngparam-input.component.ts
index c61a4fb783066a8ed61a1fb802ec294296a8c0b9..8476cc2d2d8455d8a69752f84ecc89fa379ba23a 100644
--- a/src/app/components/ngparam-input/ngparam-input.component.ts
+++ b/src/app/components/ngparam-input/ngparam-input.component.ts
@@ -4,7 +4,7 @@ import { Component, ChangeDetectorRef, OnDestroy } from "@angular/core";
 
 import { Message, Observer } from "jalhyd";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { NgParameter } from "../../formulaire/ngparam";
 import { GenericInputComponent } from "../generic-input/generic-input.component";
 
diff --git a/src/app/components/pab-profile-graph/pab-profile-graph.component.ts b/src/app/components/pab-profile-graph/pab-profile-graph.component.ts
index d3ae156b07aff445f31413ddb64e533b37fe6f66..a75c958f98502a774b2523c44ad13504b3da483a 100644
--- a/src/app/components/pab-profile-graph/pab-profile-graph.component.ts
+++ b/src/app/components/pab-profile-graph/pab-profile-graph.component.ts
@@ -2,14 +2,13 @@ import { Component, ViewChild, ChangeDetectorRef } from "@angular/core";
 
 import { ChartComponent } from "angular2-chartjs";
 
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { ResultsComponent } from "../fixedvar-results/results.component";
 import { PabResults } from "../../results/pab-results";
 import { IYSeries } from "../../results/y-series";
+import { fv } from "../../util";
 
 import { CloisonAval, Cloisons } from "jalhyd";
-import { fv } from "../../util";
 
 @Component({
     selector: "pab-profile-graph",
@@ -61,12 +60,10 @@ export class PabProfileGraphComponent extends ResultsComponent {
     };
 
     public constructor(
-        private appSetupService: ApplicationSetupService,
         private intlService: I18nService,
         private cd: ChangeDetectorRef
     ) {
         super();
-        const nDigits = this.appSetupService.displayDigits;
         // do not move following block out of constructor or scale labels won't be rendered
         this.graph_options["scales"] = {
             xAxes: [{
@@ -122,7 +119,6 @@ export class PabProfileGraphComponent extends ResultsComponent {
         // pre-extract variable parameters values
         if (this._results) {
             this.varValues = [];
-            const nDigits = this.appSetupService.displayDigits;
             // find longest list
             this.size = 0;
             for (let i = 0; i < this._results.variatedParameters.length; i++) {
@@ -144,7 +140,7 @@ export class PabProfileGraphComponent extends ResultsComponent {
         }
     }
 
-    private zoomComplete() {
+    public zoomComplete() {
         this._zoomWasChanged = true;
         this.cd.detectChanges();
     }
@@ -210,7 +206,6 @@ export class PabProfileGraphComponent extends ResultsComponent {
 
     private getXSeries(): number[] {
         const data: number[] = [];
-        const nDigits = this.appSetupService.displayDigits;
         // X is always wall abscissa
         for (const cr of this._results.cloisonsResults) {
             const x = cr.resultElement.getValue("x"); // any resultElement will do
diff --git a/src/app/components/pab-results/pab-results-table.component.ts b/src/app/components/pab-results/pab-results-table.component.ts
index 13ca9f097b24782febb35bd5aa50a4804fb24c79..f48b7d49926bd3128c6c2920c71fca9bfbafb466 100644
--- a/src/app/components/pab-results/pab-results-table.component.ts
+++ b/src/app/components/pab-results/pab-results-table.component.ts
@@ -5,7 +5,7 @@ import { CloisonAval, Result } from "jalhyd";
 import * as XLSX from "xlsx";
 
 import { PabResults } from "../../results/pab-results";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { ResultsComponent } from "../fixedvar-results/results.component";
 import { fv } from "../../util";
 
diff --git a/src/app/components/pab-results/pab-results.component.ts b/src/app/components/pab-results/pab-results.component.ts
index a69a6b9b4e60172c34dabb5dfd38c49134b5fe6a..0718c2a12e6e51073859ad96b5fce264320b6404 100644
--- a/src/app/components/pab-results/pab-results.component.ts
+++ b/src/app/components/pab-results/pab-results.component.ts
@@ -5,16 +5,14 @@ import { Result, cLog, Message, MessageCode, MessageSeverity } from "jalhyd";
 import { LogComponent } from "../../components/log/log.component";
 import { CalculatorResults } from "../../results/calculator-results";
 import { NgParameter } from "../../formulaire/ngparam";
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
 import { PabResultsTableComponent } from "./pab-results-table.component";
 import { PabResults } from "../../results/pab-results";
 import { VariableResultsSelectorComponent } from "../variable-results-selector/variable-results-selector.component";
 import { PlottableData } from "../../results/plottable-data";
 import { PlottablePabResults } from "../../results/plottable-pab-results";
 import { ResultsGraphComponent } from "../results-graph/results-graph.component";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { PabProfileGraphComponent } from "../pab-profile-graph/pab-profile-graph.component";
-import { VarResults } from "../../results/var-results";
 
 @Component({
     selector: "pab-results",
@@ -53,7 +51,6 @@ export class PabResultsComponent implements DoCheck {
     private profileGraphComponent: PabProfileGraphComponent;
 
     constructor(
-        private appSetupService: ApplicationSetupService,
         private i18nService: I18nService,
     ) {
         this._plottableResults = new PlottablePabResults();
diff --git a/src/app/components/pab-table/pab-table.component.ts b/src/app/components/pab-table/pab-table.component.ts
index 26e13de15eb8371fbb3f4b3876542851d8031d1c..3bff2bb05783feb38e68bda76038cd858d0e4565 100644
--- a/src/app/components/pab-table/pab-table.component.ts
+++ b/src/app/components/pab-table/pab-table.component.ts
@@ -18,10 +18,10 @@ import {
 
  import { sprintf } from "sprintf-js";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
-import { NotificationsService } from "../../services/notifications/notifications.service";
+import { I18nService } from "../../services/internationalisation.service";
+import { FormulaireService } from "../../services/formulaire.service";
+import { ApplicationSetupService } from "../../services/app-setup.service";
+import { NotificationsService } from "../../services/notifications.service";
 import { PabTable } from "../../formulaire/pab-table";
 import { DialogEditPabComponent } from "../dialog-edit-pab/dialog-edit-pab.component";
 
@@ -993,7 +993,6 @@ export class PabTableComponent implements AfterViewInit, OnInit {
         this.refresh();
 
         // notify
-        const pos = this.selectedItem.findPositionInParent() + 1;
         let msg: string;
         if (this.childrenToAdd === 1 && this.selectedItems.length === 1) {
             if (this.selectedItem instanceof Structure) {
diff --git a/src/app/components/param-computed/param-computed.component.ts b/src/app/components/param-computed/param-computed.component.ts
index 2eb59b5aee683c32dcf1395ea82bfb40b628286b..b6779c083d1b94e387982d52039ecf76caa40851 100644
--- a/src/app/components/param-computed/param-computed.component.ts
+++ b/src/app/components/param-computed/param-computed.component.ts
@@ -3,7 +3,7 @@ import { MatDialog } from "@angular/material";
 import { NgParameter } from "../../formulaire/ngparam";
 import { ParamCalculability, Structure } from "jalhyd";
 import { DialogEditParamComputedComponent } from "../dialog-edit-param-computed/dialog-edit-param-computed.component";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "param-computed",
diff --git a/src/app/components/param-field-line/param-field-line.component.ts b/src/app/components/param-field-line/param-field-line.component.ts
index 0e3c35446e6fe7695982f31b457e116a7e077aa5..58d0b5d624a667414216aeb080a03df1bac1ccf9 100644
--- a/src/app/components/param-field-line/param-field-line.component.ts
+++ b/src/app/components/param-field-line/param-field-line.component.ts
@@ -1,13 +1,12 @@
 import { Component, ViewChild, Input, Output, EventEmitter, OnChanges } from "@angular/core";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { NgParameter, ParamRadioConfig } from "../../formulaire/ngparam";
 import { NgParamInputComponent } from "../ngparam-input/ngparam-input.component";
 import { ServiceFactory } from "../../services/service-factory";
 import { ParamValueMode, ParallelStructure } from "jalhyd";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
+import { FormulaireService } from "../../services/formulaire.service";
 import { ParamLinkComponent } from "../param-link/param-link.component";
-import { ParamComputedComponent } from "../param-computed/param-computed.component";
 import { ParamValuesComponent } from "../param-values/param-values.component";
 
 /**
@@ -29,19 +28,19 @@ export class ParamFieldLineComponent implements OnChanges {
         this.inputChange = new EventEmitter();
     }
 
-    private get uitextParamFixe() {
+    public get uitextParamFixe() {
         return this.intlService.localizeText("INFO_PARAMFIELD_PARAMFIXE");
     }
 
-    private get uitextParamVarier() {
+    public get uitextParamVarier() {
         return this.intlService.localizeText("INFO_PARAMFIELD_PARAMVARIER");
     }
 
-    private get uitextParamCalculer() {
+    public get uitextParamCalculer() {
         return this.intlService.localizeText("INFO_PARAMFIELD_PARAMCALCULER");
     }
 
-    private get uitextParamLie() {
+    public get uitextParamLie() {
         return this.intlService.localizeText("INFO_PARAMFIELD_PARAMLIE");
     }
 
diff --git a/src/app/components/param-link/param-link.component.ts b/src/app/components/param-link/param-link.component.ts
index ed0cad6f325a9b3836e315a8e83bca3c7fa6a970..ab7b72c470193eb6142cba906fac41e843b88170 100644
--- a/src/app/components/param-link/param-link.component.ts
+++ b/src/app/components/param-link/param-link.component.ts
@@ -2,8 +2,8 @@ import { Component, Input, Output, EventEmitter, OnChanges, OnDestroy } from "@a
 
 import { NgParameter } from "../../formulaire/ngparam";
 import { LinkedValue, ParamValueMode, Observer, Structure, acSection, ParamDefinition } from "jalhyd";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { FormulaireService } from "../../services/formulaire.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
 import { sprintf } from "sprintf-js";
 
@@ -23,7 +23,7 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
     public title: string;
 
     @Output()
-    private valid: EventEmitter<boolean>;
+    public valid: EventEmitter<boolean>;
 
     /**
      * événement signalant un changement de valeur du modèle
diff --git a/src/app/components/param-values/param-values.component.ts b/src/app/components/param-values/param-values.component.ts
index 65277721e5976c57d5ff6565f9d9ab8667c28c41..a22cc098c9f4c24ac26af7f548a5473baf3e2c58 100644
--- a/src/app/components/param-values/param-values.component.ts
+++ b/src/app/components/param-values/param-values.component.ts
@@ -3,7 +3,7 @@ import { NgParameter } from "../../formulaire/ngparam";
 import { DialogEditParamValuesComponent } from "../dialog-edit-param-values/dialog-edit-param-values.component";
 import { MatDialog } from "@angular/material";
 import { ParamValueMode, Observer, Structure } from "jalhyd";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "param-values",
diff --git a/src/app/components/quicknav/quicknav.component.ts b/src/app/components/quicknav/quicknav.component.ts
index 8770fb33fecd8793fe23c325089adde043689127..ace986029589e245b38ea19144c23c92da8a1062 100644
--- a/src/app/components/quicknav/quicknav.component.ts
+++ b/src/app/components/quicknav/quicknav.component.ts
@@ -1,6 +1,6 @@
 import { Component, Input, Inject, forwardRef } from "@angular/core";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { AppComponent } from "../../app.component";
 
 @Component({
diff --git a/src/app/components/remous-results/remous-results.component.ts b/src/app/components/remous-results/remous-results.component.ts
index d349db0e52f8802cd0b1fad7fe6accc0542aebd6..d8b46bcd340baa762480629fc8f0a225a057265c 100644
--- a/src/app/components/remous-results/remous-results.component.ts
+++ b/src/app/components/remous-results/remous-results.component.ts
@@ -2,13 +2,12 @@ import { Component, ViewChild, DoCheck } from "@angular/core";
 
 import { ArrayReverseIterator, ResultElement, INumberIterator } from "jalhyd";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { LogComponent } from "../../components/log/log.component";
 import { RemousResults } from "../../results/remous-results";
 import { CalculatorResults } from "../../results/calculator-results";
 import { VarResultsComponent } from "../fixedvar-results/var-results.component";
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
+import { FormulaireService } from "../../services/formulaire.service";
 import { ResultsComponent } from "../fixedvar-results/results.component";
 import { fv } from "../../util";
 
@@ -197,21 +196,22 @@ class GraphData {
     ]
 })
 export class RemousResultsComponent extends ResultsComponent implements DoCheck {
+
     private _remousResults: RemousResults;
 
     /*
     * config du graphe principal
     */
-    private graph1_type = "line";
-    private graph1_data = {};
-    private graph1_options = {};
+    public graph1_type = "line";
+    public graph1_data = {};
+    public graph1_options = {};
 
     /*
     * config du graphe secondaire (paramètre supplémentaire sauf Hs, Hsc, Yf, Yt, Yco)
     */
-    private graph2_type = "line";
-    private graph2_data = {};
-    private graph2_options = {};
+    public graph2_type = "line";
+    public graph2_data = {};
+    public graph2_options = {};
 
     /**
      * entêtes de la table de résultats numériques
@@ -237,7 +237,6 @@ export class RemousResultsComponent extends ResultsComponent implements DoCheck
 
     constructor(
         private intlService: I18nService,
-        private appSetup: ApplicationSetupService,
         private formService: FormulaireService
     ) {
         super();
@@ -313,11 +312,11 @@ export class RemousResultsComponent extends ResultsComponent implements DoCheck
         }
     }
 
-    private headers(): string[] {
+    public headers(): string[] {
         return this._tableHeaders;
     }
 
-    private getResultClass(i: number) {
+    public getResultClass(i: number) {
         // tslint:disable-next-line:no-bitwise
         return "result_id_" + String(i & 1);
     }
@@ -587,7 +586,6 @@ export class RemousResultsComponent extends ResultsComponent implements DoCheck
 
         this.graph1_data = gr1.data;
 
-        const nDigits = this.appSetup.displayDigits;
         this.graph1_options = {
             responsive: true,
             maintainAspectRatio: false,
diff --git a/src/app/components/results-graph/graph-type.component.ts b/src/app/components/results-graph/graph-type.component.ts
index 35c5c81b04abb50ff7888450a0c8e9390b31b4ec..2895abe75e196c1cd09a8401ed6beb2155d59ecb 100644
--- a/src/app/components/results-graph/graph-type.component.ts
+++ b/src/app/components/results-graph/graph-type.component.ts
@@ -1,6 +1,6 @@
 import { Component } from "@angular/core";
 import { Observable, IObservable, Observer } from "jalhyd";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { GraphType } from "../../results/graph-type";
 
 @Component({
diff --git a/src/app/components/results-graph/results-graph.component.ts b/src/app/components/results-graph/results-graph.component.ts
index 5ca02ea417bb9be1df99d1a6d8395e5ec91c237c..589fdac1f8c205d26d96a93fc08a36fe02894011 100644
--- a/src/app/components/results-graph/results-graph.component.ts
+++ b/src/app/components/results-graph/results-graph.component.ts
@@ -5,8 +5,7 @@ import { ChartComponent } from "angular2-chartjs";
 import { Observer, ParamFamily } from "jalhyd";
 
 import { GraphTypeSelectComponent } from "./graph-type.component";
-import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { PlottableData } from "../../results/plottable-data";
 import { GraphType } from "../../results/graph-type";
 import { ResultsComponent } from "../fixedvar-results/results.component";
@@ -62,7 +61,6 @@ export class ResultsGraphComponent extends ResultsComponent implements AfterCont
     };
 
     public constructor(
-        private appSetup: ApplicationSetupService,
         private intlService: I18nService,
         private cd: ChangeDetectorRef
     ) {
@@ -161,7 +159,7 @@ export class ResultsGraphComponent extends ResultsComponent implements AfterCont
         return this.intlService.localizeText("INFO_PARAMFIELD_GRAPH_SELECT_Y_AXIS");
     }
 
-    private zoomComplete() {
+    public zoomComplete() {
         this._zoomWasChanged = true;
         this.cd.detectChanges();
     }
@@ -299,7 +297,6 @@ export class ResultsGraphComponent extends ResultsComponent implements AfterCont
         this.graph_data = {
             datasets: []
         };
-        const nDigits = this.appSetup.displayDigits;
         const ySeries = this.getYSeries(this.chartY);
 
         // are we dealing with multiple Y series ?
diff --git a/src/app/components/section-canvas/section-canvas.component.ts b/src/app/components/section-canvas/section-canvas.component.ts
index 3b9230e3d1e6211f76bad2253d6ab11d6d527c81..94f4c3c5b029739e42f66b1802e4bc0652ea941e 100644
--- a/src/app/components/section-canvas/section-canvas.component.ts
+++ b/src/app/components/section-canvas/section-canvas.component.ts
@@ -285,10 +285,6 @@ export class SectionCanvasComponent {
         this._calcCanvas.fillText(s, this.Xm2pix(x), this.Ym2pix(y), align);
     }
 
-    private drawLine(x1: number, y1: number, x2: number, y2: number) {
-        this._calcCanvas.drawLine(x1 * this._scaleX, this._size - y1 * this._scaleY, x2 * this._scaleX, this._size - y2 * this._scaleY);
-    }
-
     private drawSectionLine(x1: number, y1: number, x2: number, y2: number) {
         this._calcCanvas.drawLine(this.Xm2pix(x1), this.Ym2pix(y1), this.Xm2pix(x2), this.Ym2pix(y2));
     }
diff --git a/src/app/components/section-results/section-results.component.ts b/src/app/components/section-results/section-results.component.ts
index d927c09f1328a08856c3fde5dd53bf63bf291a40..ce16f3b7a88bb7ce666e90b02f825438ed7a36a4 100644
--- a/src/app/components/section-results/section-results.component.ts
+++ b/src/app/components/section-results/section-results.component.ts
@@ -6,7 +6,7 @@ import { SectionCanvasComponent } from "../section-canvas/section-canvas.compone
 import { SectionResults } from "../../results/section-results";
 import { CalculatorResults } from "../../results/calculator-results";
 import { ResultsComponent } from "../fixedvar-results/results.component";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "section-results",
@@ -121,7 +121,7 @@ export class SectionResultsComponent extends ResultsComponent implements DoCheck
         return false;
     }
 
-    private getResultClass(i: number) {
+    public getResultClass(i: number) {
         // tslint:disable-next-line:no-bitwise
         return "result_id_" + String(i & 1);
     }
diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts
index fcec71493d3fe5f7b2c0b17d04bd79ce64000fe2..3c0eeceac3123e3c836748ccc10d939fa03b4426 100644
--- a/src/app/components/select-field-line/select-field-line.component.ts
+++ b/src/app/components/select-field-line/select-field-line.component.ts
@@ -2,7 +2,7 @@ import { Component, Input } from "@angular/core";
 
 import { SelectField } from "../../formulaire/select-field";
 import { SelectEntry } from "../../formulaire/select-entry";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 
 @Component({
     selector: "select-field-line",
diff --git a/src/app/components/select-model-field-line/select-model-field-line.component.ts b/src/app/components/select-model-field-line/select-model-field-line.component.ts
index 36921d55e7a91247ce94d661e8e0085d35d892f5..853d0077ab453bc44bf3ae6aae997adb388a3134 100644
--- a/src/app/components/select-model-field-line/select-model-field-line.component.ts
+++ b/src/app/components/select-model-field-line/select-model-field-line.component.ts
@@ -2,7 +2,7 @@ import { Component, Input, OnInit } from "@angular/core";
 import { Router } from "@angular/router";
 
 import { SelectEntry } from "../../formulaire/select-entry";
-import { FormulaireService } from "../../services/formulaire/formulaire.service";
+import { FormulaireService } from "../../services/formulaire.service";
 import { FieldsetContainer } from "../../formulaire/fieldset-container";
 import { SelectFieldModel } from "../../formulaire/select-field-model";
 
diff --git a/src/app/components/variable-results-selector/variable-results-selector.component.ts b/src/app/components/variable-results-selector/variable-results-selector.component.ts
index a0451932ef071aee26a2ff48ea8871e2c8163fbb..db3456fde3a9594d14e36d7d2a7bb93fb503ba52 100644
--- a/src/app/components/variable-results-selector/variable-results-selector.component.ts
+++ b/src/app/components/variable-results-selector/variable-results-selector.component.ts
@@ -1,6 +1,6 @@
 import { Component, Output, EventEmitter } from "@angular/core";
 
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { I18nService } from "../../services/internationalisation.service";
 import { fv } from "../../util";
 import { MultiDimensionResults } from "../../results/multidimension-results";
 
diff --git a/src/app/directives/flex-xxs.directive.ts b/src/app/directives/flex-xxs.directive.ts
index f4472e64cd4b5f34d2b0753a3b76cdd90582fe53..981167ab474f41719c56adf09bebb89c76648c88 100644
--- a/src/app/directives/flex-xxs.directive.ts
+++ b/src/app/directives/flex-xxs.directive.ts
@@ -1,5 +1,5 @@
 import { Directive, Input } from "@angular/core";
-import { BREAKPOINT, ShowHideDirective, FlexDirective } from "@angular/flex-layout";
+import { BREAKPOINT, ShowHideDirective } from "@angular/flex-layout";
 
 const XXS_BREAKPOINTS = [
     {
diff --git a/src/app/formulaire/definition/concrete/form-courbe-remous.ts b/src/app/formulaire/definition/concrete/form-courbe-remous.ts
index dad046d4cbfda50bf62fc6168d96175acf8fb338..0cd6c20802c1c348554862773592552bfb1886dd 100644
--- a/src/app/formulaire/definition/concrete/form-courbe-remous.ts
+++ b/src/app/formulaire/definition/concrete/form-courbe-remous.ts
@@ -22,7 +22,7 @@ export class FormulaireCourbeRemous extends FormulaireBase {
 
         // remove obsolete observer set by super()
         this.removeObserver(this._formCompute);
-        this._formCompute = new FormComputeCourbeRemous(this, this._formSection, (this._formResult as FormResultRemous));
+        this._formCompute = new FormComputeCourbeRemous(this, (this._formResult as FormResultRemous));
         // default properties
         this._props["methodeResolution"] = MethodeResolution.Trapezes;
         this._props["varCalc"] = ""; // important
diff --git a/src/app/formulaire/definition/concrete/form-pab.ts b/src/app/formulaire/definition/concrete/form-pab.ts
index aa5bac6865d805850182ac1912022910e9bc3568..ca5311fa1e1e737a7d209756c6a376e5b601c7ab 100644
--- a/src/app/formulaire/definition/concrete/form-pab.ts
+++ b/src/app/formulaire/definition/concrete/form-pab.ts
@@ -22,23 +22,4 @@ export class FormulairePab extends FormulaireBase {
     public get pabNub(): Pab {
         return this.currentNub as Pab;
     }
-
-    /* public doCompute() {
-        this.dumpPabStructure(this.pabNub);
-        super.doCompute();
-    } */
-
-    // debug method
-    private dumpPabStructure(pab: Pab) {
-        console.log(`PAB: ${pab.uid}, ${pab.children.length} children`);
-        for (const c of pab.children) {
-            console.log(
-                ` * child: ${c.uid} (cote amont ${c.prms.Z1.singleValue}, longueur ${c.prms.LB.singleValue})`
-            );
-        }
-        if (pab.downWall) {
-            console.log(`+ downstream wall: ${pab.downWall.uid}`);
-        }
-        console.log(`>> calculating: ${pab.calculatedParam.symbol}`);
-    }
 }
diff --git a/src/app/formulaire/definition/form-compute-courbe-remous.ts b/src/app/formulaire/definition/form-compute-courbe-remous.ts
index 8c6e8bbb31848f165378b62d521abfe82948379f..e86f9e8cf95f2213bad4a824bfe6f60d29c5c5f0 100644
--- a/src/app/formulaire/definition/form-compute-courbe-remous.ts
+++ b/src/app/formulaire/definition/form-compute-courbe-remous.ts
@@ -1,8 +1,7 @@
-import { acSection, Result, MethodeResolution, CourbeRemousParams, CourbeRemous } from "jalhyd";
+import { acSection, Result, CourbeRemousParams, CourbeRemous } from "jalhyd";
 
 import { RemousResults } from "../../results/remous-results";
 import { FormulaireDefinition } from "./form-definition";
-import { FormDefSection } from "./form-def-section";
 import { FormCompute } from "./form-compute";
 import { FormResultRemous } from "./form-result-remous";
 
@@ -12,7 +11,7 @@ export class FormComputeCourbeRemous extends FormCompute {
 
     private resultYc: Result;
 
-    constructor(formBase: FormulaireDefinition, private _formSection: FormDefSection, formResult: FormResultRemous) {
+    constructor(formBase: FormulaireDefinition, formResult: FormResultRemous) {
         super(formBase, formResult);
     }
 
diff --git a/src/app/formulaire/definition/form-compute-fixedvar.ts b/src/app/formulaire/definition/form-compute-fixedvar.ts
index ba74fda4ffa308a3d092a10fbad8fa8d7ecad172..376c47159dc143e5933cb834afec4c49de0e0aa8 100644
--- a/src/app/formulaire/definition/form-compute-fixedvar.ts
+++ b/src/app/formulaire/definition/form-compute-fixedvar.ts
@@ -1,7 +1,7 @@
 import { Nub } from "jalhyd";
 
 import { FormCompute } from "./form-compute";
-import { NgParameter, ParamRadioConfig } from "../ngparam";
+import { NgParameter } from "../ngparam";
 import { FormResultFixedVar } from "./form-result-fixedvar";
 import { FormulaireDefinition } from "./form-definition";
 
diff --git a/src/app/formulaire/definition/form-compute-macrorugo-compound.ts b/src/app/formulaire/definition/form-compute-macrorugo-compound.ts
index 4b6de1561f4af18a48d07b9d27a7f5f529bef14f..a713e933e64eef65e5e6c13dda27aa6a3617d626 100644
--- a/src/app/formulaire/definition/form-compute-macrorugo-compound.ts
+++ b/src/app/formulaire/definition/form-compute-macrorugo-compound.ts
@@ -3,7 +3,7 @@ import { Result, MacrorugoCompound } from "jalhyd";
 import { FormulaireDefinition } from "./form-definition";
 import { FormCompute } from "./form-compute";
 import { FormResultMacrorugoCompound } from "./form-result-macrorugo-compound";
-import { NgParameter, ParamRadioConfig } from "../ngparam";
+import { NgParameter } from "../ngparam";
 
 export class FormComputeMacrorugoCompound extends FormCompute {
 
diff --git a/src/app/formulaire/definition/form-compute-pab.ts b/src/app/formulaire/definition/form-compute-pab.ts
index 445ad0b5d4a853b28890a019b58640b1f18d858d..13e0a0ea3ff93267435c49f40b3705d2eece5e93 100644
--- a/src/app/formulaire/definition/form-compute-pab.ts
+++ b/src/app/formulaire/definition/form-compute-pab.ts
@@ -3,7 +3,7 @@ import { Result, Pab } from "jalhyd";
 import { FormulaireDefinition } from "./form-definition";
 import { FormResultPab } from "./form-result-pab";
 import { FormCompute } from "./form-compute";
-import { NgParameter, ParamRadioConfig } from "../ngparam";
+import { NgParameter } from "../ngparam";
 
 export class FormComputePab extends FormCompute {
 
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index 151e4319e417ac99e994e5a08fa84d0b59c98b3b..1266b7c621476fe51a7613cb80075470f4fb8b54 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -427,24 +427,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         return new TopFormulaireElementIterator(this);
     }
 
-    /**
-     * MAJ des liens entre paramètres lors de la désérialisation
-     */
-
-    private getNthFieldset(n: number): FieldSet {
-        let i = 0;
-        for (const e of this.topFormElements) {
-            if (e instanceof FieldSet) {
-                if (i === n) {
-                    return e;
-                }
-                i++;
-            }
-        }
-
-        return undefined;
-    }
-
     //  interface Observer
 
     public update(sender: any, data: any) {
diff --git a/src/app/formulaire/definition/form-result-remous.ts b/src/app/formulaire/definition/form-result-remous.ts
index 0da7ff61c4e547c9635dcef16c69db9299738553..047d7a8796951d1777526f3aeade1530da51c42e 100644
--- a/src/app/formulaire/definition/form-result-remous.ts
+++ b/src/app/formulaire/definition/form-result-remous.ts
@@ -4,7 +4,6 @@ import { FormulaireDefinition } from "./form-definition";
 import { CalculatorResults } from "../../results/calculator-results";
 
 export class FormResultRemous extends FormResult {
-    private _formBase: FormulaireDefinition;
 
     /**
      * résultats de courbes de remous
@@ -13,7 +12,6 @@ export class FormResultRemous extends FormResult {
 
     constructor(base: FormulaireDefinition) {
         super();
-        this._formBase = base;
         this._remousResults = new RemousResults();
     }
 
diff --git a/src/app/formulaire/fieldset-container.ts b/src/app/formulaire/fieldset-container.ts
index 0aec05ebc1772690039a8eed77093df4f1c94561..3e2c3d3b774dd62cd05a2d9eca825fbb24031b5e 100644
--- a/src/app/formulaire/fieldset-container.ts
+++ b/src/app/formulaire/fieldset-container.ts
@@ -25,17 +25,6 @@ export class FieldsetContainer extends FormulaireElement {
         return this._templates[index];
     }
 
-    private getTemplateIndex(id: string): number {
-        let i = 0;
-        for (const t of this._templates) {
-            if (t.config["id"] === id) {
-                return i;
-            }
-            i++;
-        }
-        throw new Error(`template ${id} non trouvé`);
-    }
-
     public addFieldset(fs: FieldSet) {
         this.fieldsets.push(fs);
     }
diff --git a/src/app/formulaire/formulaire-element.ts b/src/app/formulaire/formulaire-element.ts
index 1542ad3156e6eb8f810d47cff161c3bfdb199010..c09ea72af70cb47322f62759208c9af0b076bda7 100644
--- a/src/app/formulaire/formulaire-element.ts
+++ b/src/app/formulaire/formulaire-element.ts
@@ -1,7 +1,7 @@
 import { FormulaireNode } from "./formulaire-node";
 import { StringMap } from "../stringmap";
 import { DeepFormulaireElementIterator } from "./form-iterator/deep-element-iterator";
-import { I18nService } from "../services/internationalisation/internationalisation.service";
+import { I18nService } from "../services/internationalisation.service";
 import { ServiceFactory } from "../services/service-factory";
 
 /**
@@ -18,11 +18,6 @@ export abstract class FormulaireElement extends FormulaireNode {
      */
     protected _label: string;
 
-    /**
-     * n° d'ordre ajouté à l'étiquette
-     */
-    private _labelNumber: number;
-
     private intlService: I18nService;
 
     public static removePrefix(s: string, prefix: string): string {
diff --git a/src/app/formulaire/immediate-error-state-matcher.ts b/src/app/formulaire/immediate-error-state-matcher.ts
index 687edca5be1449ddc2dbe80742ba451a0eeb0269..194d92a6f44ed7fe49f29bf66f69cfe89d7c8afa 100644
--- a/src/app/formulaire/immediate-error-state-matcher.ts
+++ b/src/app/formulaire/immediate-error-state-matcher.ts
@@ -10,7 +10,7 @@ export class ImmediateErrorStateMatcher implements ErrorStateMatcher {
     constructor() { }
 
     isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
-        const isSubmitted = form && form.submitted;
+        // const isSubmitted = form && form.submitted;
         return !!(control && control.invalid /* && (control.dirty || control.touched || isSubmitted) */ );
     }
 }
diff --git a/src/app/results/multidimension-results.ts b/src/app/results/multidimension-results.ts
index 86c42164c5a9646a744530c4fd7a050c0a7cdb39..5475c6c603a43f15b974e5bffc10d5d9dc6193d2 100644
--- a/src/app/results/multidimension-results.ts
+++ b/src/app/results/multidimension-results.ts
@@ -1,5 +1,4 @@
 import { CalculatedParamResults } from "./param-calc-results";
-import { PlottableData } from "./plottable-data";
 import { NgParameter } from "../formulaire/ngparam";
 
 
diff --git a/src/app/results/pab-results.ts b/src/app/results/pab-results.ts
index d407ae8a49735568ca7777c56373d3e1555470b0..38a027703c7094770ef669610f815196b2e6a603 100644
--- a/src/app/results/pab-results.ts
+++ b/src/app/results/pab-results.ts
@@ -1,6 +1,5 @@
 import { Result } from "jalhyd";
 
-import { NgParameter } from "../formulaire/ngparam";
 import { ServiceFactory } from "../services/service-factory";
 import { MultiDimensionResults } from "./multidimension-results";
 
diff --git a/src/app/results/plottable-macrorugo-compound-results.ts b/src/app/results/plottable-macrorugo-compound-results.ts
index b4fb93c505d5430bf0ff3665dcd18d89ea5869eb..07c0c18d7947aefe9c75a66134da95e0000710e7 100644
--- a/src/app/results/plottable-macrorugo-compound-results.ts
+++ b/src/app/results/plottable-macrorugo-compound-results.ts
@@ -1,6 +1,5 @@
 import { PlottableData } from "./plottable-data";
 import { GraphType } from "./graph-type";
-import { ServiceFactory } from "../services/service-factory";
 import { MacrorugoCompoundResults } from "./macrorugo-compound-results";
 
 export class PlottableMacrorugoCompoundResults implements PlottableData {
diff --git a/src/app/results/plottable-pab-results.ts b/src/app/results/plottable-pab-results.ts
index 8f340a954dad3fedf05ab85958ffaf3256bcedba..f697ecac0e648037d23239ef4e912bf3f084afcc 100644
--- a/src/app/results/plottable-pab-results.ts
+++ b/src/app/results/plottable-pab-results.ts
@@ -3,8 +3,6 @@ import { PabResults } from "./pab-results";
 import { GraphType } from "./graph-type";
 import { ServiceFactory } from "../services/service-factory";
 
-import { ParamDefinition } from "jalhyd";
-
 export class PlottablePabResults implements PlottableData {
 
     public graphType: GraphType = GraphType.Scatter;
diff --git a/src/app/results/remous-results.ts b/src/app/results/remous-results.ts
index 8b8602bb635598109543705c49874193daab19b5..e017479099ef8f53e14485a6988d0c7ba1305dd9 100644
--- a/src/app/results/remous-results.ts
+++ b/src/app/results/remous-results.ts
@@ -1,4 +1,4 @@
-import { cLog, Result, ResultElement, ParamValues, CourbeRemousParams, ParamDefinition, ParamDomainValue, Nub } from "jalhyd";
+import { cLog, CourbeRemousParams, Result, ResultElement, ParamDefinition, ParamDomainValue, Nub } from "jalhyd";
 
 import { CalculatorResults } from "./calculator-results";
 import { VarResults } from "./var-results";
diff --git a/src/app/services/app-setup/app-setup.service.ts b/src/app/services/app-setup.service.ts
similarity index 99%
rename from src/app/services/app-setup/app-setup.service.ts
rename to src/app/services/app-setup.service.ts
index 964c0f71559808a4346140f47098cfc6e36b9fa9..e2c519d44a2310cca21b97767df9df2262eb66a8 100644
--- a/src/app/services/app-setup/app-setup.service.ts
+++ b/src/app/services/app-setup.service.ts
@@ -1,4 +1,4 @@
-import { HttpService } from "../http/http.service";
+import { HttpService } from "./http.service";
 import { Injectable, Inject } from "@angular/core";
 import { Observable } from "jalhyd";
 import { StorageService, LOCAL_STORAGE } from "ngx-webstorage-service";
diff --git a/src/app/services/error/error.service.ts b/src/app/services/error.service.ts
similarity index 100%
rename from src/app/services/error/error.service.ts
rename to src/app/services/error.service.ts
diff --git a/src/app/services/formulaire/formulaire.service.ts b/src/app/services/formulaire.service.ts
similarity index 95%
rename from src/app/services/formulaire/formulaire.service.ts
rename to src/app/services/formulaire.service.ts
index 9967f7e1eae584c4d30fbe3834bee0b46baf957e..b331c49466a006f19c7d707f0964ae2e4c978b86 100644
--- a/src/app/services/formulaire/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -17,24 +17,25 @@ import {
     CloisonAval
 } from "jalhyd";
 
-import { HttpService } from "../../services/http/http.service";
-import { I18nService } from "../../services/internationalisation/internationalisation.service";
-import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
-import { FormulaireElement } from "../../formulaire/formulaire-element";
-import { InputField } from "../../formulaire/input-field";
-import { SelectField } from "../../formulaire/select-field";
-import { StringMap } from "../../stringmap";
-import { FormulaireBase } from "../../formulaire/definition/concrete/form-base";
-import { FormulaireSectionParametree } from "../../formulaire/definition/concrete/form-section-parametree";
-import { FormulaireCourbeRemous } from "../../formulaire/definition/concrete/form-courbe-remous";
-import { FormulaireRegimeUniforme } from "../../formulaire/definition/concrete/form-regime-uniforme";
-import { FormulaireParallelStructure } from "../../formulaire/definition/concrete/form-parallel-structures";
-import { NgParameter } from "../../formulaire/ngparam";
-import { FieldsetContainer } from "../..//formulaire/fieldset-container";
-import { ApplicationSetupService } from "../app-setup/app-setup.service";
-import { NotificationsService } from "../notifications/notifications.service";
-import { FormulairePab } from "../../formulaire/definition/concrete/form-pab";
-import { FormulaireMacrorugoCompound } from "../../formulaire/definition/concrete/form-macrorugo-compound";
+import { ApplicationSetupService } from "./app-setup.service";
+import { HttpService } from "./http.service";
+import { I18nService } from "./internationalisation.service";
+import { NotificationsService } from "./notifications.service";
+
+import { FormulaireDefinition } from "../formulaire/definition/form-definition";
+import { FormulaireElement } from "../formulaire/formulaire-element";
+import { InputField } from "../formulaire/input-field";
+import { SelectField } from "../formulaire/select-field";
+import { StringMap } from "../stringmap";
+import { FormulaireBase } from "../formulaire/definition/concrete/form-base";
+import { FormulaireSectionParametree } from "../formulaire/definition/concrete/form-section-parametree";
+import { FormulaireCourbeRemous } from "../formulaire/definition/concrete/form-courbe-remous";
+import { FormulaireRegimeUniforme } from "../formulaire/definition/concrete/form-regime-uniforme";
+import { FormulaireParallelStructure } from "../formulaire/definition/concrete/form-parallel-structures";
+import { NgParameter } from "../formulaire/ngparam";
+import { FieldsetContainer } from "../formulaire/fieldset-container";
+import { FormulairePab } from "../formulaire/definition/concrete/form-pab";
+import { FormulaireMacrorugoCompound } from "../formulaire/definition/concrete/form-macrorugo-compound";
 
 @Injectable()
 export class FormulaireService extends Observable {
diff --git a/src/app/services/http/http.service.ts b/src/app/services/http.service.ts
similarity index 100%
rename from src/app/services/http/http.service.ts
rename to src/app/services/http.service.ts
diff --git a/src/app/services/internationalisation/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
similarity index 96%
rename from src/app/services/internationalisation/internationalisation.service.ts
rename to src/app/services/internationalisation.service.ts
index 5d48d94996568f7365edbff8fadd6b808c405006..9137b0e2b188e9601cd85d342d3322ee8f1400cd 100644
--- a/src/app/services/internationalisation/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -1,11 +1,11 @@
 import { Injectable, isDevMode } from "@angular/core";
 
-import { Message, MessageCode, Observable, Observer, CalculatorType, LoiDebit, Nub } from "jalhyd";
+import { Message, MessageCode, Observable, Observer, LoiDebit, Nub } from "jalhyd";
 
-import { StringMap } from "../../stringmap";
-import { ApplicationSetupService } from "../app-setup/app-setup.service";
-import { HttpService } from "../http/http.service";
-import { fv } from "../../util";
+import { StringMap } from "../stringmap";
+import { ApplicationSetupService } from "./app-setup.service";
+import { HttpService } from "./http.service";
+import { fv } from "../util";
 
 @Injectable()
 export class I18nService extends Observable implements Observer {
diff --git a/src/app/services/notifications/notifications.service.ts b/src/app/services/notifications.service.ts
similarity index 95%
rename from src/app/services/notifications/notifications.service.ts
rename to src/app/services/notifications.service.ts
index 5074844dd94cdd25dacd4a3072112c33f4e90431..3bb2b1f5d153c3b86cb1d51f83f25febb9e964a0 100644
--- a/src/app/services/notifications/notifications.service.ts
+++ b/src/app/services/notifications.service.ts
@@ -1,7 +1,7 @@
 import { Injectable } from "@angular/core";
 import { MatSnackBar } from "@angular/material/snack-bar";
 
-import { ApplicationSetupService } from "../app-setup/app-setup.service";
+import { ApplicationSetupService } from "./app-setup.service";
 
 /**
  * Displays a notifications queue as consecutive snackbars
diff --git a/src/app/services/service-factory.ts b/src/app/services/service-factory.ts
index 838a00cfc468b4c98954a00f73d4b7d9cc6b9c37..78d182b9179fafefd04ed09a5499850aa9ccec5c 100644
--- a/src/app/services/service-factory.ts
+++ b/src/app/services/service-factory.ts
@@ -1,8 +1,8 @@
-import { ApplicationSetupService } from "./app-setup/app-setup.service";
-import { FormulaireService } from "./formulaire/formulaire.service";
-import { I18nService } from "./internationalisation/internationalisation.service";
-import { HttpService } from "./http/http.service";
-import { NotificationsService } from "./notifications/notifications.service";
+import { ApplicationSetupService } from "./app-setup.service";
+import { FormulaireService } from "./formulaire.service";
+import { I18nService } from "./internationalisation.service";
+import { HttpService } from "./http.service";
+import { NotificationsService } from "./notifications.service";
 
 export class ServiceFactory {
     private static _instance: ServiceFactory; // instance pour le pattern singleton