From e7159bbf065f7fbe5bec830b31df1429f03afb8f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Tue, 3 Jan 2023 13:18:57 +0100
Subject: [PATCH] fix: rework JS module import to avoid cyclic dependencies

refs #334
---
 src/base.ts                                   |   2 +-
 src/child_nub.ts                              |   4 +-
 src/compute-node.ts                           |  14 +-
 src/devalaison/grille.ts                      |  18 +-
 src/devalaison/grille_params.ts               |   6 +-
 src/devalaison/jet.ts                         |  24 +-
 src/devalaison/jet_params.ts                  |   6 +-
 src/dichotomie.ts                             |  32 +--
 src/fish_pass.ts                              |   2 +-
 src/internal_modules.ts                       | 170 +++++++++++++++
 src/jalhyd_object.ts                          |   2 +-
 src/linked-value.ts                           |  16 +-
 src/macrorugo/concentration_blocs.ts          |  18 +-
 src/macrorugo/concentration_blocs_params.ts   |   6 +-
 src/macrorugo/macrorugo.ts                    |  32 +--
 src/macrorugo/macrorugo_compound.ts           |  30 +--
 src/macrorugo/macrorugo_compound_params.ts    |   6 +-
 src/macrorugo/macrorugo_params.ts             |   6 +-
 src/math/spp.ts                               |  16 +-
 src/math/spp_params.ts                        |   6 +-
 src/math/trigo.ts                             |  14 +-
 src/math/trigo_params.ts                      |   6 +-
 src/math/yaxb.ts                              |  12 +-
 src/math/yaxb_params.ts                       |   6 +-
 src/math/yaxn.ts                              |  14 +-
 src/math/yaxn_params.ts                       |   6 +-
 src/nub.ts                                    |  95 ++++----
 src/open-channel/bief.ts                      |  28 +--
 src/open-channel/bief_params.ts               |   2 +-
 src/open-channel/pente.ts                     |  10 +-
 src/open-channel/pente_params.ts              |   6 +-
 src/open-channel/regime_uniforme.ts           |  18 +-
 src/open-channel/remous.ts                    |  32 +--
 src/open-channel/remous_params.ts             |   6 +-
 src/open-channel/section/hauteur_conjuguee.ts |  10 +-
 .../section/hauteur_correspondante.ts         |  10 +-
 src/open-channel/section/hauteur_critique.ts  |  10 +-
 src/open-channel/section/hauteur_normale.ts   |   6 +-
 src/open-channel/section/newton.ts            |  12 +-
 .../section/section_circulaire.ts             |  12 +-
 .../section/section_circulaire_params.ts      |  12 +-
 src/open-channel/section/section_nub.ts       |  12 +-
 .../section/section_parametree.ts             |  20 +-
 .../section/section_parametree_params.ts      |   4 +-
 src/open-channel/section/section_puissance.ts |  10 +-
 .../section/section_puissance_params.ts       |  16 +-
 src/open-channel/section/section_rectang.ts   |   8 +-
 .../section/section_rectang_params.ts         |   2 +-
 src/open-channel/section/section_trapez.ts    |  12 +-
 .../section/section_trapez_params.ts          |   6 +-
 src/open-channel/section/section_type.ts      |  24 +-
 .../section/section_type_params.ts            |   8 +-
 src/pab/cloison_aval.ts                       |  18 +-
 src/pab/cloison_aval_params.ts                |   6 +-
 src/pab/cloisons.ts                           |  20 +-
 src/pab/cloisons_params.ts                    |   6 +-
 src/pab/pab.ts                                |  40 ++--
 src/pab/pab_chute.ts                          |  14 +-
 src/pab/pab_chute_params.ts                   |   6 +-
 src/pab/pab_dimension.ts                      |  10 +-
 src/pab/pab_dimensions_params.ts              |   6 +-
 src/pab/pab_nombre.ts                         |  18 +-
 src/pab/pab_nombre_params.ts                  |   6 +-
 src/pab/pab_params.ts                         |   6 +-
 src/pab/pab_puissance.ts                      |  10 +-
 src/pab/pab_puissance_params.ts               |   6 +-
 src/par/par.ts                                |  38 ++--
 src/par/par_params.ts                         |   6 +-
 src/par/par_simulation.ts                     |  28 +--
 src/par/par_simulation_params.ts              |   6 +-
 src/par/par_type.ts                           |  16 +-
 src/par/par_type_chevron.ts                   |  22 +-
 src/par/par_type_fatou.ts                     |  25 +--
 src/par/par_type_pf.ts                        |   6 +-
 src/par/par_type_plane.ts                     |  27 ++-
 src/par/par_type_sc.ts                        |   7 +-
 src/par/par_type_superactive.ts               |  20 +-
 src/param/mirror-iterator.ts                  |   6 +-
 src/param/param-definition.ts                 |  30 +--
 src/param/param-domain.ts                     |   4 +-
 src/param/param-value-iterator.ts             |  32 +--
 src/param/param-values.ts                     |   8 +-
 src/param/param_definition_iterator.ts        |   6 +-
 src/param/params-equation.ts                  |   8 +-
 src/param/params_equation_array_iterator.ts   |   8 +-
 src/pipe_flow/cond_distri.ts                  |  10 +-
 src/pipe_flow/cond_distri_params.ts           |   6 +-
 src/pipe_flow/pl_lechaptcalmon.ts             |  18 +-
 src/pipe_flow/pl_lechaptcalmon_params.ts      |   6 +-
 src/pipe_flow/pressureloss.ts                 |  14 +-
 src/pipe_flow/pressureloss_law.ts             |   2 +-
 src/pipe_flow/pressureloss_params.ts          |   2 +-
 src/pipe_flow/pressurelosslaw_params.ts       |   6 +-
 src/prebarrage/pb_bassin.ts                   |  26 +--
 src/prebarrage/pb_bassin_params.ts            |   6 +-
 src/prebarrage/pb_cloison.ts                  |  28 +--
 src/prebarrage/pre_barrage.ts                 |  74 +++----
 src/prebarrage/pre_barrage_params.ts          |   6 +-
 src/props.ts                                  |   2 +-
 src/session.ts                                | 205 +++++++++---------
 src/session_settings.ts                       |   4 +-
 src/solveur/solveur.ts                        |  26 +--
 src/solveur/solveur_params.ts                 |   8 +-
 src/structure/dever.ts                        |  24 +-
 src/structure/dever_params.ts                 |   6 +-
 src/structure/factory_structure.ts            |  63 +++---
 src/structure/parallel_structure.ts           |  22 +-
 src/structure/parallel_structure_params.ts    |   6 +-
 src/structure/rectangular_structure.ts        |   6 +-
 src/structure/rectangular_structure_params.ts |   6 +-
 src/structure/structure.ts                    |  26 +--
 src/structure/structure_gate_cem88d.ts        |  12 +-
 src/structure/structure_gate_cem88v.ts        |  18 +-
 src/structure/structure_gate_cunge80.ts       |  14 +-
 src/structure/structure_kivi.ts               |  16 +-
 src/structure/structure_kivi_params.ts        |   6 +-
 src/structure/structure_orifice_free.ts       |  12 +-
 .../structure_orifice_free_params.ts          |   6 +-
 src/structure/structure_orifice_submerged.ts  |  10 +-
 .../structure_orifice_submerged_params.ts     |   6 +-
 src/structure/structure_params.ts             |   6 +-
 src/structure/structure_props.ts              |   2 +-
 .../structure_rectangular_orifice_free.ts     |  14 +-
 ...structure_rectangular_orifice_submerged.ts |  12 +-
 .../structure_triangular_trunc_weir.ts        |  12 +-
 .../structure_triangular_trunc_weir_params.ts |   6 +-
 src/structure/structure_triangular_weir.ts    |  13 +-
 .../structure_triangular_weir_broad.ts        |  12 +-
 .../structure_triangular_weir_free.ts         |   8 +-
 .../structure_triangular_weir_params.ts       |   6 +-
 src/structure/structure_vanlev_larinier.ts    |   6 +-
 src/structure/structure_vanlev_params.ts      |   6 +-
 src/structure/structure_vanlev_villemonte.ts  |   6 +-
 src/structure/structure_weir_cem88d.ts        |   8 +-
 src/structure/structure_weir_cem88v.ts        |   8 +-
 src/structure/structure_weir_cunge80.ts       |   8 +-
 src/structure/structure_weir_free.ts          |  12 +-
 src/structure/structure_weir_submerged.ts     |  12 +-
 .../structure_weir_submerged_larinier.ts      |  12 +-
 src/structure/structure_weir_villemonte.ts    |  14 +-
 src/util/enum.ts                              |   2 +-
 src/util/interval.ts                          |   6 +-
 src/util/log.ts                               |   4 +-
 src/util/message.ts                           |   6 +-
 src/util/number_array_iterator.ts             |   2 +-
 src/util/number_array_reverse_iterator.ts     |   4 +-
 src/util/result.ts                            |  16 +-
 src/util/resultelement.ts                     |  10 +-
 src/util/search_interval.ts                   |  28 +--
 src/variated-details.ts                       |   6 +-
 src/verification/espece.ts                    | 154 ++++++-------
 src/verification/espece_params.ts             |   6 +-
 src/verification/verificateur.ts              |  47 ++--
 src/verification/verificateur_params.ts       |   2 +-
 154 files changed, 1343 insertions(+), 1181 deletions(-)
 create mode 100644 src/internal_modules.ts

diff --git a/src/base.ts b/src/base.ts
index 9a77b280..e1b32c23 100644
--- a/src/base.ts
+++ b/src/base.ts
@@ -82,7 +82,7 @@ export function isEqual(a: number, b: number, e: number = 1E-7): boolean {
         return true;
     }
     if (b === 0) { // ne pas diviser par 0
-        [ a, b ] = [ b, a ];
+        [a, b] = [b, a];
     }
     if (a === 0) { // éviter d'avoir un quotient toujours nul
         return (Math.abs(b) < e);
diff --git a/src/child_nub.ts b/src/child_nub.ts
index adef909a..00590704 100644
--- a/src/child_nub.ts
+++ b/src/child_nub.ts
@@ -1,5 +1,5 @@
-import { Nub } from "./nub";
-import { ParamDefinition } from "./param/param-definition";
+import { Nub } from "./internal_modules";
+import { ParamDefinition } from "./internal_modules";
 
 /**
  * A Nub that is meant to exist within a parent only
diff --git a/src/compute-node.ts b/src/compute-node.ts
index 2f5548ee..15b0402c 100644
--- a/src/compute-node.ts
+++ b/src/compute-node.ts
@@ -1,8 +1,8 @@
-import { Debug, IDebug } from "./base";
-import { JalhydObject } from "./jalhyd_object";
-import { ParamDefinition } from "./param/param-definition";
-import { IParamDefinitionIterator } from "./param/param_definition_iterator";
-import { ParamsEquation } from "./param/params-equation";
+import { Debug, IDebug } from "./internal_modules";
+import { JalhydObject } from "./internal_modules";
+import { ParamDefinition } from "./internal_modules";
+import { IParamDefinitionIterator } from "./internal_modules";
+import { ParamsEquation } from "./internal_modules";
 
 /**
  * type de calculette
@@ -142,7 +142,7 @@ export abstract class ComputeNode extends JalhydObject implements IDebug {
         this._resultsFamilies = {};
     }
 
-    public get resultsFamilies()  {
+    public get resultsFamilies() {
         return this._resultsFamilies;
     }
 
@@ -150,7 +150,7 @@ export abstract class ComputeNode extends JalhydObject implements IDebug {
         this._resultsUnits = {};
     }
 
-    public get resultsUnits()  {
+    public get resultsUnits() {
         return this._resultsUnits;
     }
 
diff --git a/src/devalaison/grille.ts b/src/devalaison/grille.ts
index 1170c087..1b5ea897 100644
--- a/src/devalaison/grille.ts
+++ b/src/devalaison/grille.ts
@@ -1,11 +1,11 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Interval } from "../util/interval";
-import { Message, MessageCode } from "../util/message";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { GrilleParams } from "./grille_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Interval } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { GrilleParams } from "../internal_modules";
 
 export enum GrilleProfile {
     Rectangular,
@@ -413,7 +413,7 @@ export class Grille extends Nub implements Observer {
             }
         }
 
-        for (const pct of [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 ]) {
+        for (const pct of [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60]) {
             let KO: number;
             let XI: number;
             const VCSDG = (VAPDG * VAPDG) / (2 * g);
diff --git a/src/devalaison/grille_params.ts b/src/devalaison/grille_params.ts
index 961237dd..c9709c5c 100644
--- a/src/devalaison/grille_params.ts
+++ b/src/devalaison/grille_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class GrilleParams extends ParamsEquation {
 
diff --git a/src/devalaison/jet.ts b/src/devalaison/jet.ts
index d61b0f4a..a46556bd 100644
--- a/src/devalaison/jet.ts
+++ b/src/devalaison/jet.ts
@@ -1,10 +1,10 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability, ParamFamily } from "../param/param-definition";
-import { ParamValueMode } from "../param/param-value-mode";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { JetParams } from "./jet_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability, ParamFamily } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { JetParams } from "../internal_modules";
 
 export class Jet extends Nub {
 
@@ -141,7 +141,7 @@ export class Jet extends Nub {
             // H will be calculated
 
             // 1. find all extended values lists; ignore ZW (will be calculated) and D (will be reaffected)
-            for (const symbol of [ "S", "V0", "ZJ" ]) {
+            for (const symbol of ["S", "V0", "ZJ"]) {
                 const p = this.getParameter(symbol);
                 valuesLists[symbol] = [];
                 if (this.calculatedParam.symbol === symbol) { // calculated
@@ -167,7 +167,7 @@ export class Jet extends Nub {
                 if (this.result.resultElements[i].ok) {
                     // set clone params values; ignore ZW (will be calculated)
                     // and D (will be reaffected by getDAbscissae)
-                    for (const symbol of [ "S", "V0", "ZJ" ]) {
+                    for (const symbol of ["S", "V0", "ZJ"]) {
                         const val = valuesLists[symbol][i];
                         nub.getParameter(symbol).v = val;
                     }
@@ -180,7 +180,7 @@ export class Jet extends Nub {
             }
 
         } else { // nothing is varying
-            for (const symbol of [ "S", "V0", "ZJ" ]) {
+            for (const symbol of ["S", "V0", "ZJ"]) {
                 // init .v of clone
                 nub.getParameter(symbol).v = nub.getParameter(symbol).singleValue;
             }
@@ -195,7 +195,7 @@ export class Jet extends Nub {
         return (
             0.5 * g * Math.pow(this.prms.D.v, 2)
             / (Math.pow(Math.cos(this.alpha), 2) * Math.pow(this.prms.V0.v, 2)
-        ) - Math.tan(this.alpha) * this.prms.D.v);
+            ) - Math.tan(this.alpha) * this.prms.D.v);
     }
 
     /**
@@ -209,7 +209,7 @@ export class Jet extends Nub {
             nub.prms.D.v = x;
             // console.log("__computing H for x =", x, nub.prms.D.v);
             const h = nub.Calc("ZW");
-            traj.push([ x, h.vCalc ]);
+            traj.push([x, h.vCalc]);
         }
         return traj;
     }
diff --git a/src/devalaison/jet_params.ts b/src/devalaison/jet_params.ts
index e4bd6cce..83911b9c 100644
--- a/src/devalaison/jet_params.ts
+++ b/src/devalaison/jet_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class JetParams extends ParamsEquation {
 
diff --git a/src/dichotomie.ts b/src/dichotomie.ts
index a4bb12e8..115d1f6b 100644
--- a/src/dichotomie.ts
+++ b/src/dichotomie.ts
@@ -1,12 +1,12 @@
-import { BoolIdentity, Debug } from "./base";
-import { Nub } from "./nub";
-import { ParamDefinition } from "./param/param-definition";
-import { ParamDomain, ParamDomainValue } from "./param/param-domain";
-import { SessionSettings } from "./session_settings";
-import { Interval } from "./util/interval";
-import { Message, MessageCode } from "./util/message";
-import { Result } from "./util/result";
-import { SearchInterval } from "./util/search_interval";
+import { BoolIdentity, Debug } from "./internal_modules";
+import { Nub } from "./internal_modules";
+import { ParamDefinition } from "./internal_modules";
+import { ParamDomain, ParamDomainValue } from "./internal_modules";
+import { SessionSettings } from "./internal_modules";
+import { Interval } from "./internal_modules";
+import { Message, MessageCode } from "./internal_modules";
+import { Result } from "./internal_modules";
+import { SearchInterval } from "./internal_modules";
 
 /**
  * calcul par dichotomie
@@ -128,8 +128,8 @@ export class Dichotomie extends Debug {
     }
 
     public debug(s: string) {
-        if(this.DBG) {
-            super.debug("Dichotomie: "+s);
+        if (this.DBG) {
+            super.debug("Dichotomie: " + s);
         }
     }
 
@@ -151,13 +151,13 @@ export class Dichotomie extends Debug {
      */
     private isIncreasingFunction(x: number, dom: Interval): boolean {
         let epsilon = 1e-8;
-        for(let i=0; i < 20; i++) {
+        for (let i = 0; i < 20; i++) {
             const bounds = new Interval(x - epsilon, x + epsilon);
             bounds.setInterval(bounds.intersect(dom)); // au cas où l'on sorte du domaine de la variable de la fonction
 
             const y1 = this.CalculX(bounds.min);
             const y2 = this.CalculX(bounds.max);
-            if(Math.abs(y2 - y1) > 1E-6) return y2 > y1;
+            if (Math.abs(y2 - y1) > 1E-6) return y2 > y1;
             epsilon *= 10;
         }
         return true;
@@ -188,9 +188,9 @@ export class Dichotomie extends Debug {
             }
             intSearch.growStep(2);
             intSearch.next();
-            if(bAllowRestart) {
+            if (bAllowRestart) {
                 intSearch.checkDirection()
-            } else if(n > this._startIntervalMaxSteps / 2) {
+            } else if (n > this._startIntervalMaxSteps / 2) {
                 bAllowRestart = true;
                 intSearch.reInit();
             }
@@ -343,7 +343,7 @@ export class Dichotomie extends Debug {
      *
      */
     private uniroot<T>(func: (param: number) => number, thisArg: T, lowerLimit: number, upperLimit: number,
-                       errorTol: number = 0, maxIter?: number
+        errorTol: number = 0, maxIter?: number
     ): { found: boolean, value: number } {
         let a = lowerLimit;
         let b = upperLimit;
diff --git a/src/fish_pass.ts b/src/fish_pass.ts
index 6f17f46d..096b642a 100644
--- a/src/fish_pass.ts
+++ b/src/fish_pass.ts
@@ -1,4 +1,4 @@
-import { Nub } from "./nub";
+import { Nub } from "./internal_modules";
 
 /**
  * An intermediate class for all fish passes (Pab, Par, MacroRugo[Compound]…),
diff --git a/src/internal_modules.ts b/src/internal_modules.ts
new file mode 100644
index 00000000..c0694861
--- /dev/null
+++ b/src/internal_modules.ts
@@ -0,0 +1,170 @@
+// Implementation of the "internal module pattern" to solve the "TypeError: Class extends value undefined is not a constructor or null" error
+// cf. https://medium.com/visual-development/how-to-fix-nasty-circular-dependency-issues-once-and-for-all-in-javascript-typescript-a04c987cf0de
+// All imports in jalhyd are from this file only.
+// Exported modules outside jalhyd by index.ts may be different (generally a subset of this present file).
+
+export * from "./base";
+export * from "./param/param-definition";
+export * from "./jalhyd_object";
+export * from "./compute-node";
+export * from "./dichotomie";
+export * from "./nub";
+export * from "./child_nub";
+export * from "./props";
+export * from "./session_settings";
+export * from "./config";
+export * from "./param/param-domain";
+export * from "./param/param-value-mode";
+export * from "./param/param-values";
+export * from "./param/param-value-iterator";
+export * from "./param/param_definition_iterator";
+export * from "./param/params-equation";
+export * from "./param/params_equation_array_iterator";
+export * from "./param/mirror-iterator";
+export * from "./linked-value";
+export * from "./util/interval";
+export * from "./util/message";
+export * from "./util/result";
+export * from "./util/resultelement";
+export * from "./util/observer";
+export * from "./util/log";
+export * from "./util/map_iterator";
+export * from "./util/search_interval";
+export * from "./util/mermaid";
+export * from "./util/array_reverse_iterator";
+export * from "./variated-details";
+export * from "./lc-material";
+
+// Calculettes
+export * from "./devalaison/grille";
+export * from "./devalaison/grille_params";
+export * from "./devalaison/jet";
+export * from "./devalaison/jet_params";
+export * from "./fish_pass";
+export * from "./macrorugo/macrorugo";
+export * from "./macrorugo/macrorugo_params";
+export * from "./macrorugo/macrorugo_compound";
+export * from "./macrorugo/macrorugo_compound_params";
+export * from "./macrorugo/concentration_blocs";
+export * from "./macrorugo/concentration_blocs_params";
+export * from "./macrorugo/mrc-inclination";
+export * from "./math/spp";
+export * from "./math/spp_params";
+export * from "./math/trigo";
+export * from "./math/trigo_params";
+export * from "./math/yaxb";
+export * from "./math/yaxb_params";
+export * from "./math/yaxn";
+export * from "./math/yaxn_params";
+export * from "./open-channel/section/section_nub";
+export * from "./open-channel/methode-resolution";
+export * from "./open-channel/remous";
+export * from "./open-channel/remous_params";
+export * from "./open-channel/section/section_type";
+export * from "./open-channel/section/newton";
+export * from "./open-channel/section/section_type_params";
+export * from "./open-channel/section/section_parametree";
+export * from "./open-channel/section/section_parametree_params";
+export * from "./open-channel/section/section_circulaire";
+export * from "./open-channel/section/section_circulaire_params";
+export * from "./open-channel/section/section_puissance";
+export * from "./open-channel/section/section_puissance_params";
+export * from "./open-channel/section/section_rectang";
+export * from "./open-channel/section/section_rectang_params";
+export * from "./open-channel/section/section_trapez";
+export * from "./open-channel/section/section_trapez_params";
+export * from "./open-channel/section/hauteur_conjuguee";
+export * from "./open-channel/section/hauteur_correspondante";
+export * from "./open-channel/section/hauteur_critique";
+export * from "./open-channel/section/hauteur_normale";
+export * from "./open-channel/bief";
+export * from "./open-channel/bief_params";
+export * from "./open-channel/pente";
+export * from "./open-channel/pente_params";
+export * from "./open-channel/regime_uniforme";
+export * from "./par/par";
+export * from "./par/par_params";
+export * from "./par/par_simulation";
+export * from "./par/par_simulation_params";
+export * from "./par/par_type";
+export * from "./par/par_type_pf";
+export * from "./par/par_type_fatou";
+export * from "./par/par_type_sc";
+export * from "./par/par_type_chevron";
+export * from "./par/par_type_plane";
+export * from "./par/par_type_superactive";
+export * from "./structure/structure";
+export * from "./structure/structure_params";
+export * from "./structure/parallel_structure";
+export * from "./structure/parallel_structure_params";
+export * from "./structure/dever";
+export * from "./structure/dever_params";
+export * from "./structure/factory_structure";
+export * from "./structure/structure_props";
+export * from "./structure/rectangular_structure";
+export * from "./structure/rectangular_structure_params";
+export * from "./structure/structure_gate_cem88d";
+export * from "./structure/structure_gate_cem88v";
+export * from "./structure/structure_gate_cunge80";
+export * from "./structure/structure_kivi";
+export * from "./structure/structure_kivi_params";
+export * from "./structure/structure_orifice_free";
+export * from "./structure/structure_orifice_free_params";
+export * from "./structure/structure_orifice_submerged";
+export * from "./structure/structure_orifice_submerged_params";
+export * from "./structure/structure_rectangular_orifice_free";
+export * from "./structure/structure_rectangular_orifice_submerged";
+export * from "./structure/structure_triangular_trunc_weir";
+export * from "./structure/structure_triangular_trunc_weir_params";
+export * from "./structure/structure_triangular_weir_free";
+export * from "./structure/structure_triangular_weir";
+export * from "./structure/structure_triangular_weir_params";
+export * from "./structure/structure_triangular_weir_broad";
+export * from "./structure/structure_weir_submerged";
+export * from "./structure/structure_weir_submerged_larinier";
+export * from "./structure/structure_weir_free";
+export * from "./structure/structure_weir_villemonte";
+export * from "./structure/structure_vanlev_params";
+export * from "./structure/structure_vanlev_larinier";
+export * from "./structure/structure_vanlev_villemonte";
+export * from "./structure/structure_weir_cem88d";
+export * from "./structure/structure_weir_cem88v";
+export * from "./structure/structure_weir_cunge80";
+export * from "./structure/villemonte";
+export * from "./pab/pab";
+export * from "./pab/pab_params";
+export * from "./pab/cloison_aval";
+export * from "./pab/cloison_aval_params";
+export * from "./pab/cloisons";
+export * from "./pab/cloisons_params";
+export * from "./pab/pab_chute";
+export * from "./pab/pab_chute_params";
+export * from "./pab/pab_dimension";
+export * from "./pab/pab_dimensions_params";
+export * from "./pab/pab_nombre";
+export * from "./pab/pab_nombre_params";
+export * from "./pab/pab_puissance";
+export * from "./pab/pab_puissance_params";
+export * from "./pipe_flow/cond_distri";
+export * from "./pipe_flow/cond_distri_params";
+export * from "./pipe_flow/pressureloss";
+export * from "./pipe_flow/pressureloss_params";
+export * from "./pipe_flow/pressureloss_law";
+export * from "./pipe_flow/pressurelosslaw_params";
+export * from "./pipe_flow/pl_lechaptcalmon";
+export * from "./pipe_flow/pl_lechaptcalmon_params";
+export * from "./prebarrage/pb_bassin";
+export * from "./prebarrage/pb_bassin_params";
+export * from "./prebarrage/pb_cloison";
+export * from "./prebarrage/pre_barrage";
+export * from "./prebarrage/pre_barrage_params";
+export * from "./solveur/solveur";
+export * from "./solveur/solveur_params";
+export * from "./verification/diving-jet-support";
+export * from "./verification/espece";
+export * from "./verification/espece_params";
+export * from "./verification/fish_species";
+export * from "./verification/verificateur";
+export * from "./verification/verificateur_params";
+
+export * from "./session";
diff --git a/src/jalhyd_object.ts b/src/jalhyd_object.ts
index e15a97ff..fe5df0d2 100644
--- a/src/jalhyd_object.ts
+++ b/src/jalhyd_object.ts
@@ -1,4 +1,4 @@
-import { ParamFamily } from "./param/param-definition";
+import { ParamFamily } from "./internal_modules";
 
 import * as base64 from "base-64";
 
diff --git a/src/linked-value.ts b/src/linked-value.ts
index 1fb7f99c..783d5112 100644
--- a/src/linked-value.ts
+++ b/src/linked-value.ts
@@ -1,8 +1,8 @@
-import { Nub } from "./nub";
-import { ParamDefinition } from "./param/param-definition";
-import { INamedIterableValues } from "./param/param-value-iterator";
-import { ParamValueMode } from "./param/param-value-mode";
-import { ParamValues } from "./param/param-values";
+import { Nub } from "./internal_modules";
+import { ParamDefinition } from "./internal_modules";
+import { INamedIterableValues } from "./internal_modules";
+import { ParamValueMode } from "./internal_modules";
+import { ParamValues } from "./internal_modules";
 
 export class LinkedValue {
     /** linked value metadata (ex: calculator title for GUI) */
@@ -80,7 +80,7 @@ export class LinkedValue {
         return (
             this.nub !== undefined
             && this.symbol !== undefined
-            && ! this.isParameter()
+            && !this.isParameter()
         );
     }
 
@@ -143,7 +143,7 @@ export class LinkedValue {
             if (targetParam.valueMode === ParamValueMode.CALCUL) {
                 // if already computed, expose handmade fake param values for iterability
                 if (this.nub.result) {
-                    if (! this._paramValues) {
+                    if (!this._paramValues) {
                         this._paramValues = new ParamValues();
                         // populate
                         if (targetParam.hasMultipleValues) {
@@ -171,7 +171,7 @@ export class LinkedValue {
             // is result available ?
             if (this.nub.result) {
                 // expose handmade fake param values for iterability
-                if (! this._paramValues) {
+                if (!this._paramValues) {
                     this._paramValues = new ParamValues();
                     // populate
                     if (this.nub.resultHasMultipleValues()) {
diff --git a/src/macrorugo/concentration_blocs.ts b/src/macrorugo/concentration_blocs.ts
index d2738e3b..36937b11 100644
--- a/src/macrorugo/concentration_blocs.ts
+++ b/src/macrorugo/concentration_blocs.ts
@@ -1,10 +1,10 @@
-import { floatDivAndMod, isEqual } from "../base";
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { ConcentrationBlocsParams } from "./concentration_blocs_params";
+import { floatDivAndMod, isEqual } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ConcentrationBlocsParams } from "../internal_modules";
 
 export class ConcentrationBlocs extends Nub {
 
@@ -24,7 +24,7 @@ export class ConcentrationBlocs extends Nub {
      */
     public Equation(sVarCalc: string): Result {
         let rounded = false;
-        if (sVarCalc !== "N" && ! Number.isInteger(this.prms.N.v)) {
+        if (sVarCalc !== "N" && !Number.isInteger(this.prms.N.v)) {
             this.prms.N.v = Math.round(this.prms.N.v);
             rounded = true;
         }
@@ -56,7 +56,7 @@ export class ConcentrationBlocs extends Nub {
                     v++;
                 }
                 // harmonisation ?
-                if (! isEqual(R, 0, 1e-2)) {
+                if (!isEqual(R, 0, 1e-2)) {
                     // vers le bas
                     if (v > 0) {
                         NB = v;
diff --git a/src/macrorugo/concentration_blocs_params.ts b/src/macrorugo/concentration_blocs_params.ts
index 8bb42420..8c35f597 100644
--- a/src/macrorugo/concentration_blocs_params.ts
+++ b/src/macrorugo/concentration_blocs_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class ConcentrationBlocsParams extends ParamsEquation {
 
diff --git a/src/macrorugo/macrorugo.ts b/src/macrorugo/macrorugo.ts
index 4c80085d..2c9c95a2 100644
--- a/src/macrorugo/macrorugo.ts
+++ b/src/macrorugo/macrorugo.ts
@@ -1,14 +1,14 @@
-import { CalculatorType } from "../compute-node";
-import { Dichotomie } from "../dichotomie";
-import { MacrorugoCompound } from "../index";
-import { ParamCalculability, ParamFamily } from "../param/param-definition";
-import { ParamValueMode } from "../param/param-value-mode";
-import { SessionSettings } from "../session_settings";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { MacrorugoParams } from "./macrorugo_params";
-import { MRCInclination } from "./mrc-inclination";
-import { FishPass } from "../fish_pass";
+import { CalculatorType } from "../internal_modules";
+import { Dichotomie } from "../internal_modules";
+import { MacrorugoCompound } from "../internal_modules";
+import { ParamCalculability, ParamFamily } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
+import { SessionSettings } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { MacrorugoParams } from "../internal_modules";
+import { MRCInclination } from "../internal_modules";
+import { FishPass } from "../internal_modules";
 
 export enum MacroRugoFlowType {
     EMERGENT,
@@ -108,7 +108,7 @@ export class MacroRugo extends FishPass {
 
         // La concentration est-elle dans les valeurs admissibles 8-20% (#284)
         if (this.parent === undefined) {
-            if(this.prms.C.V < 0.08 || this.prms.C.V > 0.2) {
+            if (this.prms.C.V < 0.08 || this.prms.C.V > 0.2) {
                 r.resultElement.log.add(
                     new Message(MessageCode.WARNING_MACRORUGO_CONCENTRATION_OUT_OF_BOUNDS)
                 );
@@ -126,7 +126,7 @@ export class MacroRugo extends FishPass {
         r.resultElement.values.Vdeb = resVdeb;
         if (this.flowType !== MacroRugoFlowType.SUBMERGED) {
             // Froude
-            r.resultElement.values.Vg =  r.resultElement.values.Vdeb / (1 - Math.sqrt(MacroRugo.fracAxAy * this.prms.C.v));
+            r.resultElement.values.Vg = r.resultElement.values.Vdeb / (1 - Math.sqrt(MacroRugo.fracAxAy * this.prms.C.v));
             let resFr = r.resultElement.values.Vg / Math.sqrt(MacroRugo.g * this.prms.Y.v);
             if (isNaN(resFr)) { // if Y == 0
                 resFr = 0;
@@ -300,7 +300,7 @@ export class MacroRugo extends FishPass {
      */
     private get Cd(): number {
         if (this._cache.Cd === undefined) {
-            if(this.paramCdNewVersion) {
+            if (this.paramCdNewVersion) {
                 this._cache.Cd = this.prms.Cd0.v * Math.min(this.paramMaxCd, (this.paramFhStar[0] + this.paramFhStar[1] / Math.pow(this.prms.Y.v / this.prms.PBD.v, this.paramFhStar[2])));
             } else {
                 this._cache.Cd = Math.min(this.paramMaxCd, this.prms.Cd0.v * (this.paramFhStar[0] + this.paramFhStar[1] / Math.pow(this.prms.Y.v / this.prms.PBD.v, this.paramFhStar[2])));
@@ -464,7 +464,7 @@ export class MacroRugo extends FishPass {
         const Fr = U0 /
             (1 - Math.sqrt(MacroRugo.fracAxAy * this.prms.C.v)) /
             Math.sqrt(MacroRugo.g * this.prms.Y.v);
-            return Math.max(1, Math.pow(Math.min(r / (1 - Math.pow(Fr, 2) / 4), Math.pow(Fr, -2 / 3)), 2));
+        return Math.max(1, Math.pow(Math.min(r / (1 - Math.pow(Fr, 2) / 4), Math.pow(Fr, -2 / 3)), 2));
     }
 }
 
@@ -487,7 +487,7 @@ export class MacroRugo extends FishPass {
  *
  */
 function uniroot<T>(func: (param: number) => number, thisArg: T, lowerLimit: number, upperLimit: number,
-                    errorTol: number = 0, maxIter: number = 1000
+    errorTol: number = 0, maxIter: number = 1000
 ) {
     let a = lowerLimit;
     let b = upperLimit;
diff --git a/src/macrorugo/macrorugo_compound.ts b/src/macrorugo/macrorugo_compound.ts
index 0a16b571..7be71618 100644
--- a/src/macrorugo/macrorugo_compound.ts
+++ b/src/macrorugo/macrorugo_compound.ts
@@ -1,14 +1,14 @@
-import { round } from "../base";
-import { CalculatorType } from "../compute-node";
-import { ParamCalculability } from "../param/param-definition";
-import { Props } from "../props";
-import { Session } from "../session";
-import { Message, MessageCode } from "../util/message";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { MacroRugo } from "./macrorugo";
-import { MacrorugoCompoundParams } from "./macrorugo_compound_params";
-import { MRCInclination } from "./mrc-inclination";
+import { round } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Props } from "../internal_modules";
+import { Session } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { MacroRugo } from "../internal_modules";
+import { MacrorugoCompoundParams } from "../internal_modules";
+import { MRCInclination } from "../internal_modules";
 
 export class MacrorugoCompound extends MacroRugo implements Observer {
 
@@ -52,7 +52,7 @@ export class MacrorugoCompound extends MacroRugo implements Observer {
                     valsZ1 = this.prms.Z1.getInferredValuesList();
                 } else {
                     valsZ1 = new Array(child.prms.ZF1.getInferredValuesList().length)
-                    .fill(this.prms.Z1.singleValue);
+                        .fill(this.prms.Z1.singleValue);
                 }
                 if (child.prms.ZF1.hasMultipleValues) {
                     valsChildZF1 = child.prms.ZF1.getInferredValuesList();
@@ -112,7 +112,7 @@ export class MacrorugoCompound extends MacroRugo implements Observer {
             }
         }
         // Check block concentration bounds
-        if(this.prms.C.v < 0.08 || this.prms.C.v > 0.2) {
+        if (this.prms.C.v < 0.08 || this.prms.C.v > 0.2) {
             this._result.resultElement.log.add(
                 new Message(MessageCode.WARNING_MACRORUGO_CONCENTRATION_OUT_OF_BOUNDS)
             );
@@ -125,7 +125,7 @@ export class MacrorugoCompound extends MacroRugo implements Observer {
         const res = new Result(0);
         for (const child of this.children) {
             child.Calc(sVarCalc);
-            if(!child.result.ok) {
+            if (!child.result.ok) {
                 const m = new Message(MessageCode.ERROR_SOMETHING_FAILED_IN_CHILD);
                 m.extraVar.number = String(child.findPositionInParent() + 1);
                 return new Result(m);
@@ -260,7 +260,7 @@ export class MacrorugoCompound extends MacroRugo implements Observer {
             this.children[this.children.length - 1].prms.ZF1.singleValue = round(
                 this.prms.ZRR.singleValue + xCenter / this.prms.BR.singleValue
                 * (this.prms.ZRL.singleValue - this.prms.ZRR.singleValue)
-            , 3);
+                , 3);
             this.children[this.children.length - 1].prms.B.singleValue = round((xCenter - lastBorder) * 2, 3);
             lastBorder += this.children[this.children.length - 1].prms.B.singleValue;
         }
diff --git a/src/macrorugo/macrorugo_compound_params.ts b/src/macrorugo/macrorugo_compound_params.ts
index 2813f7f0..13e588d2 100644
--- a/src/macrorugo/macrorugo_compound_params.ts
+++ b/src/macrorugo/macrorugo_compound_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { MacrorugoParams } from "./macrorugo_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { MacrorugoParams } from "../internal_modules";
 
 export class MacrorugoCompoundParams extends MacrorugoParams {
 
diff --git a/src/macrorugo/macrorugo_params.ts b/src/macrorugo/macrorugo_params.ts
index 310b27b7..859dbc19 100644
--- a/src/macrorugo/macrorugo_params.ts
+++ b/src/macrorugo/macrorugo_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class MacrorugoParams extends ParamsEquation {
 
diff --git a/src/math/spp.ts b/src/math/spp.ts
index b59c5bc0..598fa5b3 100644
--- a/src/math/spp.ts
+++ b/src/math/spp.ts
@@ -1,10 +1,10 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { SPPParams } from "./spp_params";
-import { YAXN } from "./yaxn";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { SPPParams } from "../internal_modules";
+import { YAXN } from "../internal_modules";
 
 export enum SPPOperation {
     SUM,        // Somme
@@ -45,7 +45,7 @@ export class SPP extends Nub {
      */
     public Calc(sVarCalc: string | any, rInit?: number): Result {
         // if Calc() is called outside of CalcSerie(), _result might not be initialized
-        if (! this.result) {
+        if (!this.result) {
             this.initNewResultElement();
         }
         switch (sVarCalc) {
diff --git a/src/math/spp_params.ts b/src/math/spp_params.ts
index a6b80ae1..75a8d0c1 100644
--- a/src/math/spp_params.ts
+++ b/src/math/spp_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * Y = Σ ou π (a1.x1^p1, … an.xn^pn)
diff --git a/src/math/trigo.ts b/src/math/trigo.ts
index 606210c5..4050e21c 100644
--- a/src/math/trigo.ts
+++ b/src/math/trigo.ts
@@ -1,10 +1,10 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { TrigoParams } from "./trigo_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { TrigoParams } from "../internal_modules";
 
 export enum TrigoOperation {
     COS,
diff --git a/src/math/trigo_params.ts b/src/math/trigo_params.ts
index cf448ec1..a4cc6c0c 100644
--- a/src/math/trigo_params.ts
+++ b/src/math/trigo_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * Y = f(X)
diff --git a/src/math/yaxb.ts b/src/math/yaxb.ts
index dff5d1df..80fb6aee 100644
--- a/src/math/yaxb.ts
+++ b/src/math/yaxb.ts
@@ -1,9 +1,9 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { YAXBParams } from "./yaxb_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { YAXBParams } from "../internal_modules";
 
 /**
  * Y = A.X + B
diff --git a/src/math/yaxb_params.ts b/src/math/yaxb_params.ts
index 6eaadca8..56b95a2e 100644
--- a/src/math/yaxb_params.ts
+++ b/src/math/yaxb_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * Y = A.X + B
diff --git a/src/math/yaxn.ts b/src/math/yaxn.ts
index 2cb0b762..604b9c47 100644
--- a/src/math/yaxn.ts
+++ b/src/math/yaxn.ts
@@ -1,9 +1,9 @@
-import { ChildNub } from "../child_nub";
-import { CalculatorType } from "../compute-node";
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { YAXNParams } from "./yaxn_params";
+import { ChildNub } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { YAXNParams } from "../internal_modules";
 
 /**
  * Y = A.X^N
@@ -28,7 +28,7 @@ export class YAXN extends ChildNub {
 
         switch (sVarCalc) {
             case "Y":
-                if (this.prms.X.v < 0 && ! Number.isInteger(this.prms.N.v)) {
+                if (this.prms.X.v < 0 && !Number.isInteger(this.prms.N.v)) {
                     const m = new Message(MessageCode.ERROR_NON_INTEGER_POWER_ON_NEGATIVE_NUMBER);
                     m.extraVar.X = this.prms.X.v;
                     m.extraVar.N = this.prms.N.v;
diff --git a/src/math/yaxn_params.ts b/src/math/yaxn_params.ts
index 30f17696..026c9779 100644
--- a/src/math/yaxn_params.ts
+++ b/src/math/yaxn_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * Y = A.X^N
diff --git a/src/nub.ts b/src/nub.ts
index 0b6ed333..f3412228 100644
--- a/src/nub.ts
+++ b/src/nub.ts
@@ -1,19 +1,21 @@
-import { CalculatorType, ComputeNode } from "./compute-node";
-import { Dichotomie } from "./dichotomie";
-import { acSection, MacrorugoCompound, Pab, ParamDefinition, ParamsEquation,
-         Session, Solveur, Structure, Verificateur } from "./index";
-import { LinkedValue } from "./linked-value";
-import { ParamCalculability, ParamFamily } from "./param/param-definition";
-import { ParamValueMode } from "./param/param-value-mode";
-import { IParamDefinitionIterator } from "./param/param_definition_iterator";
-import { ParamsEquationArrayIterator } from "./param/params_equation_array_iterator";
-import { Props } from "./props";
-import { SessionSettings } from "./session_settings";
-import { Message, MessageCode, MessageSeverity } from "./util/message";
-import { IObservable, Observable, Observer } from "./util/observer";
-import { Result } from "./util/result";
-import { ResultElement } from "./util/resultelement";
-import { VariatedDetails } from "./variated-details";
+import { CalculatorType, ComputeNode } from "./internal_modules";
+import { Dichotomie } from "./internal_modules";
+import {
+    acSection, MacrorugoCompound, Pab, ParamDefinition, ParamsEquation,
+    Session, Solveur, Structure, Verificateur
+} from "./internal_modules";
+import { LinkedValue } from "./internal_modules";
+import { ParamCalculability, ParamFamily } from "./internal_modules";
+import { ParamValueMode } from "./internal_modules";
+import { IParamDefinitionIterator } from "./internal_modules";
+import { ParamsEquationArrayIterator } from "./internal_modules";
+import { Props } from "./internal_modules";
+import { SessionSettings } from "./internal_modules";
+import { Message, MessageCode } from "./internal_modules";
+import { IObservable, Observable, Observer } from "./internal_modules";
+import { Result } from "./internal_modules";
+import { ResultElement } from "./internal_modules";
+import { VariatedDetails } from "./internal_modules";
 
 /**
  * Classe abstraite de Noeud de calcul dans une session :
@@ -28,8 +30,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
      * @param variated list of variated parameter/valuesList pairs to examinate
      */
     public static findVariatedSize(variated: VariatedDetails[])
-        : { size: number, longest: number, minLinkedResultParam: VariatedDetails }
-    {
+        : { size: number, longest: number, minLinkedResultParam: VariatedDetails } {
         if (variated.length > 0) {
             let minLinkedResultParam;
             let minLinkedResultsSize = Infinity;
@@ -119,7 +120,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
      * (used by CalcSerie with varying parameters)
      */
     protected set currentResultElement(r: Result) {
-        if (! this._result) {
+        if (!this._result) {
             this.initNewResultElement();
         }
         this._result.resultElement = r.resultElement;
@@ -295,7 +296,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
                 // keep old value to restore it in case of an error, or else it breaks fixTargets()
                 oldValue = this._props.getPropValue(p); // should always be undefined but who knows
                 this._props.setPropValue(p, props.getPropValue(p));
-            } catch(e) {
+            } catch (e) {
                 error = e;
                 // no one will notice ^^
                 this._props.setPropValue(p, oldValue);
@@ -392,10 +393,10 @@ export abstract class Nub extends ComputeNode implements IObservable {
     public findFirstCalculableParameter(otherThan?: ParamDefinition) {
         for (const p of this.parameterIterator) {
             if (
-                [ ParamCalculability.EQUATION, ParamCalculability.DICHO ].includes(p.calculability)
+                [ParamCalculability.EQUATION, ParamCalculability.DICHO].includes(p.calculability)
                 && p.visible
                 && p !== otherThan
-                && [ ParamValueMode.SINGLE, ParamValueMode.MINMAX, ParamValueMode.LISTE ].includes(p.valueMode)
+                && [ParamValueMode.SINGLE, ParamValueMode.MINMAX, ParamValueMode.LISTE].includes(p.valueMode)
             ) {
                 return p;
             }
@@ -424,7 +425,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
      */
     public EquationFirstAnalyticalParameter(): number {
         const res = this.Equation(this.firstAnalyticalPrmSymbol);
-        if (! res.ok) {
+        if (!res.ok) {
             this._result = res;
             throw new Error(this.constructor.name + ".EquationFirstAnalyticalParameter(): fail");
         }
@@ -532,7 +533,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
                     || (
                         p.valueMode === ParamValueMode.LINK
                         && p.isReferenceDefined()
-                        && ! p.referencedValue.hasMultipleValues()
+                        && !p.referencedValue.hasMultipleValues()
                     )
                 )
             ) {
@@ -790,13 +791,13 @@ export abstract class Nub extends ComputeNode implements IObservable {
         // no linking is possible at all.
         // Different Structures in the same parent can get linked to each other.
         if (
-            ! this.isParentOrChildOf(src.nubUid)
+            !this.isParentOrChildOf(src.nubUid)
             && ( // check grand-parent for PreBarrage special case @TODO find a generic way
-                 // to perform both tests (synthesise .nubUid and .originNub.uid)
-                ! (this._calcType === CalculatorType.PreBarrage)
-                || ! this.isParentOrChildOf(src.originNub.uid)
+                // to perform both tests (synthesise .nubUid and .originNub.uid)
+                !(this._calcType === CalculatorType.PreBarrage)
+                || !this.isParentOrChildOf(src.originNub.uid)
             )
-         ) {
+        ) {
             // 1. own parameters
             for (const p of this._prms) {
                 // if symbol and Nub type are identical
@@ -818,7 +819,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
                 ) {
                     // if variability doesn't cause any problem (a non-variable
                     // parameter cannot be linked to a variating one)
-                    if (src.calculability !== ParamCalculability.FIXED || ! p.hasMultipleValues) {
+                    if (src.calculability !== ParamCalculability.FIXED || !p.hasMultipleValues) {
                         // if it is safe to link p's value to src
                         if (p.isLinkableTo(src)) {
                             // if p is a CALC param of a Structure other than "Q"
@@ -828,8 +829,8 @@ export abstract class Nub extends ComputeNode implements IObservable {
                             // expose its parent
                             if (
                                 (
-                                (this instanceof Structure && p.symbol !== "Q" && ! this.isSiblingOf(src.nubUid))
-                                || this instanceof acSection
+                                    (this instanceof Structure && p.symbol !== "Q" && !this.isSiblingOf(src.nubUid))
+                                    || this instanceof acSection
                                 )
                                 && (p.valueMode === ParamValueMode.CALCUL)
                             ) {
@@ -855,7 +856,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
             // 2. extra results
             if (this._resultsFamilies) {
                 // if I don't depend on your result, you may depend on mine !
-                if (! this.dependsOnNubResult(src.parentNub)) {
+                if (!this.dependsOnNubResult(src.parentNub)) {
                     const erk = Object.keys(this._resultsFamilies);
                     // browse extra results
                     for (const erSymbol of erk) {
@@ -884,9 +885,9 @@ export abstract class Nub extends ComputeNode implements IObservable {
 
         // 3. children Nubs, except for PAB and MRC and PreBarrage
         if (
-            ! (this instanceof MacrorugoCompound)
+            !(this instanceof MacrorugoCompound)
             && ( // meta-except, if source param in a PAB's Cloison (should only apply to QA)
-                ! (this instanceof Pab)
+                !(this instanceof Pab)
                 || (
                     src.originNub instanceof Pab
                     && src.symbol === "QA"
@@ -953,7 +954,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
     public getRequiredNubs(visited: string[] = []): Nub[] {
         let requiredNubs: Nub[] = [];
         // prevent loops
-        if (! visited.includes(this.uid)) {
+        if (!visited.includes(this.uid)) {
             visited.push(this.uid);
 
             // inspect all target Nubs
@@ -981,7 +982,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
                 if (rn.uid !== rn2.uid) {
                     keep = (
                         keep
-                        && ! rn2.dependsOnNubResult(rn, true)
+                        && !rn2.dependsOnNubResult(rn, true)
                     );
                 }
             }
@@ -1016,7 +1017,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
     public getTargettedNubs(visited: string[] = []) {
         const targettedNubs: Nub[] = [];
         // prevent loops
-        if (! visited.includes(this.uid)) {
+        if (!visited.includes(this.uid)) {
             visited.push(this.uid);
 
             // inspect all target Nubs
@@ -1138,7 +1139,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
         includeValuesLinks: boolean = false,
         includeOtherDependencies: boolean = false
     ): boolean {
-        if (uid !== this.uid && ! visited.includes(this.uid)) {
+        if (uid !== this.uid && !visited.includes(this.uid)) {
             visited.push(this.uid);
 
             // does any of our parameters depend on the target Nub ?
@@ -1269,12 +1270,12 @@ export abstract class Nub extends ComputeNode implements IObservable {
         };
 
         if (extra) {
-            ret =  {...ret, ...{ meta: extra } }; // merge properties
+            ret = { ...ret, ...{ meta: extra } }; // merge properties
         }
-        ret = {...ret, ...{  children: [], parameters: [] } }; // extend here to make "parameters" the down-most key
+        ret = { ...ret, ...{ children: [], parameters: [] } }; // extend here to make "parameters" the down-most key
 
         // iterate over local parameters
-        const localParametersIterator =  new ParamsEquationArrayIterator([this._prms]);
+        const localParametersIterator = new ParamsEquationArrayIterator([this._prms]);
         for (const p of localParametersIterator) {
             if (p.visible) {
                 ret.parameters.push(p.objectRepresentation(nubUidsInSession));
@@ -1333,7 +1334,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
                 // create the Nub
                 const subNub = Session.getInstance().createNub(new Props(props), this);
                 // try to keep the original ID
-                if (! Session.getInstance().uidAlreadyUsed(s.uid)) {
+                if (!Session.getInstance().uidAlreadyUsed(s.uid)) {
                     subNub.setUid(s.uid);
                 } else {
                     ret.changedUids[s.uid] = subNub.uid;
@@ -1426,7 +1427,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
      * @param keepParametersState if true, mode and value of parameters will be kept between old and new section
      */
     public replaceChild(index: number, child: Nub, resetCalcParam: boolean = false,
-                        keepParametersState: boolean = true
+        keepParametersState: boolean = true
     ) {
         if (index > -1 && index < this._children.length) {
             const hasOldChild = (this._children[index] !== undefined);
@@ -1456,7 +1457,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
             }
         } else {
             throw new Error(`${this.constructor.name}.replaceChild invalid index ${index}`
-                          + ` (children length: ${this._children.length})`);
+                + ` (children length: ${this._children.length})`);
         }
         // postprocessing
         this.adjustChildParameters(child);
@@ -1596,7 +1597,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
      * the same for all children
      */
     public initNewResultElement() {
-        if (! this._result) {
+        if (!this._result) {
             this._result = new Result(undefined, this);
         }
         // push empty result element for further affectation va set currentResult()
@@ -1788,7 +1789,7 @@ export abstract class Nub extends ComputeNode implements IObservable {
      * Optional postprocessing after adding / replacing a child
      */
     // tslint:disable-next-line:no-empty
-    protected adjustChildParameters(child: Nub) {}
+    protected adjustChildParameters(child: Nub) { }
 
     /**
      * Résoud l'équation par une méthode numérique
diff --git a/src/open-channel/bief.ts b/src/open-channel/bief.ts
index 59bf16f9..c449b55c 100644
--- a/src/open-channel/bief.ts
+++ b/src/open-channel/bief.ts
@@ -1,16 +1,16 @@
-import { CalculatorType, SectionType } from "../compute-node";
-import { ParamCalculability } from "../param/param-definition";
-import { ParamValues } from "../param/param-values";
-import { Session } from "../session";
-import { Message, MessageCode } from "../util/message";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { BiefParams, BiefRegime } from "./bief_params";
-import { MethodeResolution } from "./methode-resolution";
-import { CourbeRemous, ITrYResult } from "./remous";
-import { CourbeRemousParams } from "./remous_params";
-import { SectionNub } from "./section/section_nub";
-import { acSection } from "./section/section_type";
+import { CalculatorType } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { ParamValues } from "../internal_modules";
+import { Session } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { BiefParams, BiefRegime } from "../internal_modules";
+import { MethodeResolution } from "../internal_modules";
+import { CourbeRemous, ITrYResult } from "../internal_modules";
+import { CourbeRemousParams } from "../internal_modules";
+import { SectionNub } from "../internal_modules";
+import { acSection } from "../internal_modules";
 
 export class Bief extends SectionNub implements Observer {
 
@@ -97,7 +97,7 @@ export class Bief extends SectionNub implements Observer {
         xValues.setValues(0, l, dx);
 
         // in Dichotomie mode, update sandbox value of calculated param
-        if (! this.calculatedParam.isAnalytical()) {
+        if (!this.calculatedParam.isAnalytical()) {
             // we're calculating Ks or Q, in section
             this.courbeRemous.section.getParameter(this.calculatedParam.symbol).v = this.calculatedParam.v;
         }
diff --git a/src/open-channel/bief_params.ts b/src/open-channel/bief_params.ts
index ed84bd47..007b5dd6 100644
--- a/src/open-channel/bief_params.ts
+++ b/src/open-channel/bief_params.ts
@@ -1,4 +1,4 @@
-import { CourbeRemousParams } from "./remous_params";
+import { CourbeRemousParams } from "../internal_modules";
 
 export enum BiefRegime {
     Fluvial,
diff --git a/src/open-channel/pente.ts b/src/open-channel/pente.ts
index c06070d2..a4b68aea 100644
--- a/src/open-channel/pente.ts
+++ b/src/open-channel/pente.ts
@@ -1,8 +1,8 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { PenteParams } from "./pente_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { PenteParams } from "../internal_modules";
 
 export class Pente extends Nub {
 
diff --git a/src/open-channel/pente_params.ts b/src/open-channel/pente_params.ts
index f47737d2..db8ba8bc 100644
--- a/src/open-channel/pente_params.ts
+++ b/src/open-channel/pente_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class PenteParams extends ParamsEquation {
 
diff --git a/src/open-channel/regime_uniforme.ts b/src/open-channel/regime_uniforme.ts
index 4666bb50..ce690dd3 100644
--- a/src/open-channel/regime_uniforme.ts
+++ b/src/open-channel/regime_uniforme.ts
@@ -1,12 +1,12 @@
-import { CalculatorType } from "../compute-node";
-import { ParamCalculability, ParamFamily } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { SectionNub } from "./section/section_nub";
-import { SectionParams } from "./section/section_parametree_params";
-import { acSection } from "./section/section_type";
-import { cSnCirc } from "./section/section_circulaire";
-import { isGreaterThan } from "../base";
+import { CalculatorType } from "../internal_modules";
+import { ParamCalculability, ParamFamily } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { SectionNub } from "../internal_modules";
+import { SectionParams } from "../internal_modules";
+import { acSection } from "../internal_modules";
+import { cSnCirc } from "../internal_modules";
+import { isGreaterThan } from "../internal_modules";
 
 export class RegimeUniforme extends SectionNub {
 
diff --git a/src/open-channel/remous.ts b/src/open-channel/remous.ts
index 817708d7..0c043b26 100644
--- a/src/open-channel/remous.ts
+++ b/src/open-channel/remous.ts
@@ -1,19 +1,19 @@
-import { round, XOR } from "../base";
-import { CalculatorType } from "../compute-node";
-import { Dichotomie } from "../dichotomie";
-import { MirrorIterator } from "../param/mirror-iterator";
-import { ParamCalculability } from "../param/param-definition";
-import { INumberIterator } from "../param/param-value-iterator";
-import { ParamValues } from "../param/param-values";
-import { SessionSettings } from "../session_settings";
-import { cLog } from "../util/log";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { ResultElement } from "../util/resultelement";
-import { MethodeResolution } from "./methode-resolution";
-import { CourbeRemousParams } from "./remous_params";
-import { SectionNub } from "./section/section_nub";
-import { acSection } from "./section/section_type";
+import { round, XOR } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { Dichotomie } from "../internal_modules";
+import { MirrorIterator } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { INumberIterator } from "../internal_modules";
+import { ParamValues } from "../internal_modules";
+import { SessionSettings } from "../internal_modules";
+import { cLog } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ResultElement } from "../internal_modules";
+import { MethodeResolution } from "../internal_modules";
+import { CourbeRemousParams } from "../internal_modules";
+import { SectionNub } from "../internal_modules";
+import { acSection } from "../internal_modules";
 
 export interface ITrYResult {
     trY: { [key: number]: number; };
diff --git a/src/open-channel/remous_params.ts b/src/open-channel/remous_params.ts
index ffacb219..940346fc 100644
--- a/src/open-channel/remous_params.ts
+++ b/src/open-channel/remous_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * paramètres pour les courbes de remous
diff --git a/src/open-channel/section/hauteur_conjuguee.ts b/src/open-channel/section/hauteur_conjuguee.ts
index 44dc3068..e9ab2695 100644
--- a/src/open-channel/section/hauteur_conjuguee.ts
+++ b/src/open-channel/section/hauteur_conjuguee.ts
@@ -1,8 +1,8 @@
-import { Message, MessageCode } from "../../util/message";
-import { Result } from "../../util/result";
-import { acNewton } from "./newton";
-import { acSection } from "./section_type";
-import { ParamsSection } from "./section_type_params";
+import { Message, MessageCode } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { acNewton } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
+import { ParamsSection } from "../../internal_modules";
 
 /**
  * Calcul de la hauteur conjuguée (Impulsion égale)
diff --git a/src/open-channel/section/hauteur_correspondante.ts b/src/open-channel/section/hauteur_correspondante.ts
index 2bf1e507..98450116 100644
--- a/src/open-channel/section/hauteur_correspondante.ts
+++ b/src/open-channel/section/hauteur_correspondante.ts
@@ -1,8 +1,8 @@
-import { Message, MessageCode } from "../../util/message";
-import { Result } from "../../util/result";
-import { acNewton } from "./newton";
-import { acSection } from "./section_type";
-import { ParamsSection } from "./section_type_params";
+import { Message, MessageCode } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { acNewton } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
+import { ParamsSection } from "../../internal_modules";
 
 /**
  * Calcul de la hauteur correspondante (charge égale)
diff --git a/src/open-channel/section/hauteur_critique.ts b/src/open-channel/section/hauteur_critique.ts
index d369c58d..e827d6f5 100644
--- a/src/open-channel/section/hauteur_critique.ts
+++ b/src/open-channel/section/hauteur_critique.ts
@@ -1,8 +1,8 @@
-import { Message, MessageCode } from "../../util/message";
-import { Result } from "../../util/result";
-import { acNewton } from "./newton";
-import { acSection } from "./section_type";
-import { ParamsSection } from "./section_type_params";
+import { Message, MessageCode } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { acNewton } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
+import { ParamsSection } from "../../internal_modules";
 
 /**
  * Calcul de la hauteur critique
diff --git a/src/open-channel/section/hauteur_normale.ts b/src/open-channel/section/hauteur_normale.ts
index 579a60b0..0b674beb 100644
--- a/src/open-channel/section/hauteur_normale.ts
+++ b/src/open-channel/section/hauteur_normale.ts
@@ -1,6 +1,6 @@
-import { Result } from "../../util/result";
-import { acNewton } from "./newton";
-import { acSection } from "./section_type";
+import { Result } from "../../internal_modules";
+import { acNewton } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
 
 /**
  * Calcul de la hauteur normale
diff --git a/src/open-channel/section/newton.ts b/src/open-channel/section/newton.ts
index 1f5a623c..3f5ea1bb 100644
--- a/src/open-channel/section/newton.ts
+++ b/src/open-channel/section/newton.ts
@@ -1,9 +1,9 @@
-import { Debug, XOR } from "../../base";
-import { SessionSettings } from "../../session_settings";
-import { Message, MessageCode } from "../../util/message";
-import { Result } from "../../util/result";
-import { ResultElement } from "../../util/resultelement";
-import { ParamsSection } from "./section_type_params";
+import { Debug, XOR } from "../../internal_modules";
+import { SessionSettings } from "../../internal_modules";
+import { Message, MessageCode } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { ResultElement } from "../../internal_modules";
+import { ParamsSection } from "../../internal_modules";
 
 // tslint:disable-next-line:class-name
 export abstract class acNewton extends Debug {
diff --git a/src/open-channel/section/section_circulaire.ts b/src/open-channel/section/section_circulaire.ts
index e522e808..c96857fc 100644
--- a/src/open-channel/section/section_circulaire.ts
+++ b/src/open-channel/section/section_circulaire.ts
@@ -1,9 +1,9 @@
-import { SectionType } from "../../compute-node";
-import { ParamCalculability } from "../../param/param-definition";
-import { Message, MessageCode } from "../../util/message";
-import { Result } from "../../util/result";
-import { ParamsSectionCirc } from "./section_circulaire_params";
-import { acSection } from "./section_type";
+import { SectionType } from "../../internal_modules";
+import { ParamCalculability } from "../../internal_modules";
+import { Message, MessageCode } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { ParamsSectionCirc } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
 
 /**
  * Calculs de la section circulaire
diff --git a/src/open-channel/section/section_circulaire_params.ts b/src/open-channel/section/section_circulaire_params.ts
index 4bf5fa3d..b5a954c0 100644
--- a/src/open-channel/section/section_circulaire_params.ts
+++ b/src/open-channel/section/section_circulaire_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../../param/param-definition";
-import { ParamDomainValue } from "../../param/param-domain";
-import { ParamsSection } from "./section_type_params";
+import { ParamDefinition, ParamFamily } from "../../internal_modules";
+import { ParamDomainValue } from "../../internal_modules";
+import { ParamsSection } from "../../internal_modules";
 
 export class ParamsSectionCirc extends ParamsSection {
 	private _D: ParamDefinition;          // Diamètre du cercle
@@ -14,9 +14,9 @@ export class ParamsSectionCirc extends ParamsSection {
 		this.LargeurBerge.visible = false; // or else something might get linked to it although it is undefined
 	}
 
-    /**
-     * Diamètre du cercle
-     */
+	/**
+	 * Diamètre du cercle
+	 */
 	get D(): ParamDefinition {
 		return this._D;
 	}
diff --git a/src/open-channel/section/section_nub.ts b/src/open-channel/section/section_nub.ts
index a563f418..bc4dffc5 100644
--- a/src/open-channel/section/section_nub.ts
+++ b/src/open-channel/section/section_nub.ts
@@ -1,9 +1,9 @@
-import { Session } from "../../index";
-import { Nub } from "../../nub";
-import { ParamDefinition } from "../../param/param-definition";
-import { ParamsEquation } from "../../param/params-equation";
-import { Props } from "../../props";
-import { acSection } from "./section_type";
+import { Session } from "../../internal_modules";
+import { Nub } from "../../internal_modules";
+import { ParamDefinition } from "../../internal_modules";
+import { ParamsEquation } from "../../internal_modules";
+import { Props } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
 
 /**
  * A Nub that contains an acSection (ex: RegimeUniforme, SectionParametree, Remous)
diff --git a/src/open-channel/section/section_parametree.ts b/src/open-channel/section/section_parametree.ts
index 725057ae..12e4293d 100644
--- a/src/open-channel/section/section_parametree.ts
+++ b/src/open-channel/section/section_parametree.ts
@@ -1,11 +1,11 @@
-import { CalculatorType } from "../../compute-node";
-import { ParamCalculability, ParamDefinition, ParamFamily } from "../../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../../param/param-domain";
-import { Message, MessageCode } from "../../util/message";
-import { Result } from "../../util/result";
-import { SectionNub } from "./section_nub";
-import { SectionParams } from "./section_parametree_params";
-import { acSection } from "./section_type";
+import { CalculatorType } from "../../internal_modules";
+import { ParamCalculability, ParamDefinition, ParamFamily } from "../../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../../internal_modules";
+import { Message, MessageCode } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { SectionNub } from "../../internal_modules";
+import { SectionParams } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
 
 /**
  * Nub sur les sections paramétrées
@@ -81,7 +81,7 @@ export class SectionParametree extends SectionNub {
         // par les appels successifs car c'est en même temps un paramètre et une variable temporaire)
         const Y = this.getParameter("Y").v;
 
-        if (! this.result) {
+        if (!this.result) {
             this.initNewResultElement();
         }
 
@@ -181,7 +181,7 @@ export class SectionParametree extends SectionNub {
     }
 
     // tslint:disable-next-line:no-empty
-    protected adjustChildParameters(): void {}
+    protected adjustChildParameters(): void { }
 
     protected exposeResults() {
         this._resultsFamilies = {
diff --git a/src/open-channel/section/section_parametree_params.ts b/src/open-channel/section/section_parametree_params.ts
index 3de86f5d..6d046f32 100644
--- a/src/open-channel/section/section_parametree_params.ts
+++ b/src/open-channel/section/section_parametree_params.ts
@@ -1,4 +1,4 @@
-import { ParamsEquation } from "../../param/params-equation";
+import { ParamsEquation } from "../../internal_modules";
 
 // dummy ParamsEquation for code consistency
-export class SectionParams extends ParamsEquation {}
+export class SectionParams extends ParamsEquation { }
diff --git a/src/open-channel/section/section_puissance.ts b/src/open-channel/section/section_puissance.ts
index eafb2f4b..c54eda30 100644
--- a/src/open-channel/section/section_puissance.ts
+++ b/src/open-channel/section/section_puissance.ts
@@ -1,8 +1,8 @@
-import { SectionType } from "../../compute-node";
-import { ParamCalculability } from "../../param/param-definition";
-import { Result } from "../../util/result";
-import { ParamsSectionPuiss } from "./section_puissance_params";
-import { acSection } from "./section_type";
+import { SectionType } from "../../internal_modules";
+import { ParamCalculability } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { ParamsSectionPuiss } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
 
 /**
  * Calculs de la section parabolique ou "puissance"
diff --git a/src/open-channel/section/section_puissance_params.ts b/src/open-channel/section/section_puissance_params.ts
index 745ba78d..13f6e6d9 100644
--- a/src/open-channel/section/section_puissance_params.ts
+++ b/src/open-channel/section/section_puissance_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition } from "../../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../../param/param-domain";
-import { ParamsSection } from "./section_type_params";
+import { ParamDefinition } from "../../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../../internal_modules";
+import { ParamsSection } from "../../internal_modules";
 
 /**
  * Paramètres de la section parabolique ou "puissance"
@@ -12,17 +12,17 @@ export class ParamsSectionPuiss extends ParamsSection {
         rIf: number, rYB: number, nullParams: boolean = false) {
 
         super(rY, rLargeurBerge, rKs, rQ, rIf, rYB, nullParams);
-            this._k = new ParamDefinition(
-                this, "k", new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), undefined, rk, undefined, undefined, nullParams
-            );
+        this._k = new ParamDefinition(
+            this, "k", new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), undefined, rk, undefined, undefined, nullParams
+        );
 
-            this.addParamDefinition(this._k);
+        this.addParamDefinition(this._k);
     }
 
     /**
      * Coefficient de forme compris entre 0 et 1
      */
     get k(): ParamDefinition {
-            return this._k;
+        return this._k;
     }
 }
diff --git a/src/open-channel/section/section_rectang.ts b/src/open-channel/section/section_rectang.ts
index 5aff1413..f801ad55 100644
--- a/src/open-channel/section/section_rectang.ts
+++ b/src/open-channel/section/section_rectang.ts
@@ -1,7 +1,7 @@
-import { SectionType } from "../../compute-node";
-import { Result } from "../../util/result";
-import { ParamsSectionRectang } from "./section_rectang_params";
-import { acSection } from "./section_type";
+import { SectionType } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { ParamsSectionRectang } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
 
 /**
  * Calculs de la section rectangulaire
diff --git a/src/open-channel/section/section_rectang_params.ts b/src/open-channel/section/section_rectang_params.ts
index a4c10922..18217f49 100644
--- a/src/open-channel/section/section_rectang_params.ts
+++ b/src/open-channel/section/section_rectang_params.ts
@@ -1,4 +1,4 @@
-import { ParamsSection } from "./section_type_params";
+import { ParamsSection } from "../../internal_modules";
 
 export class ParamsSectionRectang extends ParamsSection {
     constructor(rY: number, rLargeurFond: number, rKs: number, rQ: number, rIf: number, rYB: number, nullParams: boolean = false) {
diff --git a/src/open-channel/section/section_trapez.ts b/src/open-channel/section/section_trapez.ts
index 5112111b..578842f0 100644
--- a/src/open-channel/section/section_trapez.ts
+++ b/src/open-channel/section/section_trapez.ts
@@ -1,8 +1,8 @@
-import { SectionType } from "../../compute-node";
-import { ParamCalculability } from "../../param/param-definition";
-import { Result } from "../../util/result";
-import { ParamsSectionTrapez } from "./section_trapez_params";
-import { acSection } from "./section_type";
+import { SectionType } from "../../internal_modules";
+import { ParamCalculability } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { ParamsSectionTrapez } from "../../internal_modules";
+import { acSection } from "../../internal_modules";
 
 /**
  * Calculs de la section trapézoïdale
@@ -169,7 +169,7 @@ export class cSnTrapez extends acSection {
         const g = ParamsSectionTrapez.G;
         const B = this.prms.LargeurFond.v;
         const Qstar = 4 * Math.pow(Math.pow(z, 3) * Math.pow(Q, 2) / g / Math.pow(B, 5), 1 / 3);
-        const Yc_star = Math.pow( 1 + 1.161 * Qstar * (1 + 2/3 * Math.pow(Qstar, 1.041), 0.374), 0.144);
+        const Yc_star = Math.pow(1 + 1.161 * Qstar * (1 + 2 / 3 * Math.pow(Qstar, 1.041), 0.374), 0.144);
         const nu = - 0.5 + 0.5 *
             Math.pow((5 * Math.pow(Yc_star, 6) + 1) / (6 * Math.pow(Yc_star, 5) - Qstar), 3);
         const Yc = nu * B / z;
diff --git a/src/open-channel/section/section_trapez_params.ts b/src/open-channel/section/section_trapez_params.ts
index 7d97fb01..7ee5cbfc 100644
--- a/src/open-channel/section/section_trapez_params.ts
+++ b/src/open-channel/section/section_trapez_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../../param/param-definition";
-import { ParamDomainValue } from "../../param/param-domain";
-import { ParamsSection } from "./section_type_params";
+import { ParamDefinition, ParamFamily } from "../../internal_modules";
+import { ParamDomainValue } from "../../internal_modules";
+import { ParamsSection } from "../../internal_modules";
 
 export class ParamsSectionTrapez extends ParamsSection {
     private _LargeurFond: ParamDefinition; // Largeur au fond
diff --git a/src/open-channel/section/section_type.ts b/src/open-channel/section/section_type.ts
index dc7c5976..8c7b1983 100644
--- a/src/open-channel/section/section_type.ts
+++ b/src/open-channel/section/section_type.ts
@@ -1,15 +1,15 @@
-import { CalculatorType, SectionType } from "../../compute-node";
-import { Nub } from "../../nub";
-import { ParamCalculability, ParamDefinition } from "../../param/param-definition";
-import { Props } from "../../props";
-import { SessionSettings } from "../../session_settings";
-import { Message, MessageCode } from "../../util/message";
-import { Result } from "../../util/result";
-import { cHautConjuguee } from "./hauteur_conjuguee";
-import { cHautCorrespondante } from "./hauteur_correspondante";
-import { cHautCritique } from "./hauteur_critique";
-import { cHautNormale } from "./hauteur_normale";
-import { ParamsSection } from "./section_type_params";
+import { CalculatorType, SectionType } from "../../internal_modules";
+import { Nub } from "../../internal_modules";
+import { ParamCalculability, ParamDefinition } from "../../internal_modules";
+import { Props } from "../../internal_modules";
+import { SessionSettings } from "../../internal_modules";
+import { Message, MessageCode } from "../../internal_modules";
+import { Result } from "../../internal_modules";
+import { cHautConjuguee } from "../../internal_modules";
+import { cHautCorrespondante } from "../../internal_modules";
+import { cHautCritique } from "../../internal_modules";
+import { cHautNormale } from "../../internal_modules";
+import { ParamsSection } from "../../internal_modules";
 
 /**
  * Gestion commune pour les différents types de section.
diff --git a/src/open-channel/section/section_type_params.ts b/src/open-channel/section/section_type_params.ts
index adec79dc..15025ea7 100644
--- a/src/open-channel/section/section_type_params.ts
+++ b/src/open-channel/section/section_type_params.ts
@@ -1,7 +1,7 @@
-import { ParamDefinition, ParamFamily } from "../../param/param-definition";
-import { ParamDomainValue } from "../../param/param-domain";
-import { ParamsEquation } from "../../param/params-equation";
-import { SessionSettings } from "../../session_settings";
+import { ParamDefinition, ParamFamily } from "../../internal_modules";
+import { ParamDomainValue } from "../../internal_modules";
+import { ParamsEquation } from "../../internal_modules";
+import { SessionSettings } from "../../internal_modules";
 
 export abstract class ParamsSection extends ParamsEquation {
 
diff --git a/src/pab/cloison_aval.ts b/src/pab/cloison_aval.ts
index f3b2ee10..16d4cced 100644
--- a/src/pab/cloison_aval.ts
+++ b/src/pab/cloison_aval.ts
@@ -1,12 +1,12 @@
-import { CalculatorType, Structure } from "../index";
-import { ParamCalculability } from "../param/param-definition";
-import { ParallelStructure } from "../structure/parallel_structure";
-import { loiAdmissiblesCloisonAval, LoiDebit } from "../structure/structure_props";
-import { StructureVanLevLarinier } from "../structure/structure_vanlev_larinier";
-import { StructureVanLevVillemonte } from "../structure/structure_vanlev_villemonte";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { CloisonsAvalParams } from "./cloison_aval_params";
+import { CalculatorType, Structure } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { ParallelStructure } from "../internal_modules";
+import { loiAdmissiblesCloisonAval, LoiDebit } from "../internal_modules";
+import { StructureVanLevLarinier } from "../internal_modules";
+import { StructureVanLevVillemonte } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { CloisonsAvalParams } from "../internal_modules";
 
 export class CloisonAval extends ParallelStructure {
 
diff --git a/src/pab/cloison_aval_params.ts b/src/pab/cloison_aval_params.ts
index dc243866..5fd9fa02 100644
--- a/src/pab/cloison_aval_params.ts
+++ b/src/pab/cloison_aval_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParallelStructureParams } from "../structure/parallel_structure_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParallelStructureParams } from "../internal_modules";
 
 export class CloisonsAvalParams extends ParallelStructureParams {
 
diff --git a/src/pab/cloisons.ts b/src/pab/cloisons.ts
index 20f26e37..f2787ab2 100644
--- a/src/pab/cloisons.ts
+++ b/src/pab/cloisons.ts
@@ -1,12 +1,12 @@
-import { CalculatorType } from "../compute-node";
-import { Nub, Pab, Structure, StructureParams } from "../index";
-import { ParamCalculability } from "../param/param-definition";
-import { ParallelStructure } from "../structure/parallel_structure";
-import { StructureKiviParams } from "../structure/structure_kivi_params";
-import { loiAdmissiblesCloisons, LoiDebit } from "../structure/structure_props";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { CloisonsParams } from "./cloisons_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub, Pab, Structure, StructureParams } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { ParallelStructure } from "../internal_modules";
+import { StructureKiviParams } from "../internal_modules";
+import { loiAdmissiblesCloisons, LoiDebit } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { CloisonsParams } from "../internal_modules";
 
 export class Cloisons extends ParallelStructure {
 
@@ -79,7 +79,7 @@ export class Cloisons extends ParallelStructure {
                 s.result.resultElement.addExtraResult("ZDV", this.prms.Z1.v - s.prms.h1.v);
             }
             // calcul de la pelle
-            if(s.properties.getPropValue("loiDebit") !== LoiDebit.OrificeSubmerged) {
+            if (s.properties.getPropValue("loiDebit") !== LoiDebit.OrificeSubmerged) {
                 const pelle = s.prms.ZDV.v - this.prms.ZRAM.v;
                 s.result.resultElement.values.P = pelle;
                 if (pelle < -1E-7) { // si c'est enfoncé d'un dixième de micron ça va
diff --git a/src/pab/cloisons_params.ts b/src/pab/cloisons_params.ts
index d39d15cc..a6de143f 100644
--- a/src/pab/cloisons_params.ts
+++ b/src/pab/cloisons_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParallelStructureParams } from "../structure/parallel_structure_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParallelStructureParams } from "../internal_modules";
 
 /**
  * Common parameters of hydraulic structure equations
diff --git a/src/pab/pab.ts b/src/pab/pab.ts
index fe4d7647..da52306f 100644
--- a/src/pab/pab.ts
+++ b/src/pab/pab.ts
@@ -1,22 +1,22 @@
-import { CalculatorType } from "../compute-node";
-import { Session, JalhydObject } from "../index";
-import { ParamValueMode } from "../index";
-import { Nub } from "../nub";
-import { ParamCalculability, ParamDefinition } from "../param/param-definition";
-import { IParamDefinitionIterator } from "../param/param_definition_iterator";
-import { ParamsEquation } from "../param/params-equation";
-import { ParamsEquationArrayIterator } from "../param/params_equation_array_iterator";
-import { Props } from "../props";
-import { ParallelStructure } from "../structure/parallel_structure";
-import { StructureTriangularTruncWeirFree } from "../structure/structure_triangular_trunc_weir";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { ResultElement } from "../util/resultelement";
-import { CloisonAval } from "./cloison_aval";
-import { CloisonsAvalParams } from "./cloison_aval_params";
-import { Cloisons } from "./cloisons";
-import { PabParams } from "./pab_params";
-import { FishPass } from "../fish_pass";
+import { CalculatorType } from "../internal_modules";
+import { Session, JalhydObject } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability, ParamDefinition } from "../internal_modules";
+import { IParamDefinitionIterator } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
+import { ParamsEquationArrayIterator } from "../internal_modules";
+import { Props } from "../internal_modules";
+import { ParallelStructure } from "../internal_modules";
+import { StructureTriangularTruncWeirFree } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ResultElement } from "../internal_modules";
+import { CloisonAval } from "../internal_modules";
+import { CloisonsAvalParams } from "../internal_modules";
+import { Cloisons } from "../internal_modules";
+import { PabParams } from "../internal_modules";
+import { FishPass } from "../internal_modules";
 
 export class Pab extends FishPass {
 
@@ -84,7 +84,7 @@ export class Pab extends FishPass {
 
         // Generate an image of the object for multiplication
         // Use 2nd param as a trick to break links and copy values
-        const serialisedCloisonModel = cloisonModel.serialise(undefined, [ cloisonModel.uid ]);
+        const serialisedCloisonModel = cloisonModel.serialise(undefined, [cloisonModel.uid]);
         for (let i = 0; i < n; i++) {
             const cl: Cloisons =
                 Session.getInstance().unserialiseSingleNub(serialisedCloisonModel, false).nub as Cloisons;
diff --git a/src/pab/pab_chute.ts b/src/pab/pab_chute.ts
index 952b8221..2a8c6a43 100644
--- a/src/pab/pab_chute.ts
+++ b/src/pab/pab_chute.ts
@@ -1,9 +1,9 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { PabChuteParams } from "./pab_chute_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { PabChuteParams } from "../internal_modules";
 
 export class PabChute extends Nub {
     constructor(prms: PabChuteParams, dbg: boolean = false) {
@@ -23,7 +23,7 @@ export class PabChute extends Nub {
     public Equation(sVarCalc: string): Result {
         let v: number;
 
-        if (! [ "Z1", "Z2" ].includes(sVarCalc) && this.prms.Z1.v <= this.prms.Z2.v) {
+        if (!["Z1", "Z2"].includes(sVarCalc) && this.prms.Z1.v <= this.prms.Z2.v) {
             const m = new Message(MessageCode.ERROR_ELEVATION_ZI_LOWER_THAN_Z2);
             m.extraVar.Z1 = this.prms.Z1.v;
             m.extraVar.Z2 = this.prms.Z2.v;
diff --git a/src/pab/pab_chute_params.ts b/src/pab/pab_chute_params.ts
index c6943fae..1c11ccb8 100644
--- a/src/pab/pab_chute_params.ts
+++ b/src/pab/pab_chute_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class PabChuteParams extends ParamsEquation {
 
diff --git a/src/pab/pab_dimension.ts b/src/pab/pab_dimension.ts
index 5d94a1c1..7da9d578 100644
--- a/src/pab/pab_dimension.ts
+++ b/src/pab/pab_dimension.ts
@@ -1,8 +1,8 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { PabDimensionParams } from "./pab_dimensions_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { PabDimensionParams } from "../internal_modules";
 
 export class PabDimension extends Nub {
     constructor(prms: PabDimensionParams, dbg: boolean = false) {
diff --git a/src/pab/pab_dimensions_params.ts b/src/pab/pab_dimensions_params.ts
index 16538e1d..f448e499 100644
--- a/src/pab/pab_dimensions_params.ts
+++ b/src/pab/pab_dimensions_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class PabDimensionParams extends ParamsEquation {
 
diff --git a/src/pab/pab_nombre.ts b/src/pab/pab_nombre.ts
index ff1a2f3c..1eb540f6 100644
--- a/src/pab/pab_nombre.ts
+++ b/src/pab/pab_nombre.ts
@@ -1,10 +1,10 @@
-import { floatDivAndMod, isEqual } from "../base";
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { PabNombreParams } from "./pab_nombre_params";
+import { floatDivAndMod, isEqual } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { PabNombreParams } from "../internal_modules";
 
 export class PabNombre extends Nub {
     constructor(prms: PabNombreParams, dbg: boolean = false) {
@@ -23,7 +23,7 @@ export class PabNombre extends Nub {
 
     public Equation(sVarCalc: string): Result {
         let rounded = false;
-        if (sVarCalc !== "N" && ! Number.isInteger(this.prms.N.v)) {
+        if (sVarCalc !== "N" && !Number.isInteger(this.prms.N.v)) {
             this.prms.N.v = Math.round(this.prms.N.v);
             rounded = true;
         }
@@ -45,7 +45,7 @@ export class PabNombre extends Nub {
                 v = divAndMod.q;
                 DHR = divAndMod.r;
                 // harmonisation ?
-                if (! isEqual(DHR, 0)) {
+                if (!isEqual(DHR, 0)) {
                     // vers le bas
                     if (v > 0) {
                         NB = v;
diff --git a/src/pab/pab_nombre_params.ts b/src/pab/pab_nombre_params.ts
index 9bec5408..a5d47b6f 100644
--- a/src/pab/pab_nombre_params.ts
+++ b/src/pab/pab_nombre_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class PabNombreParams extends ParamsEquation {
 
diff --git a/src/pab/pab_params.ts b/src/pab/pab_params.ts
index 3483a010..0aaa35e8 100644
--- a/src/pab/pab_params.ts
+++ b/src/pab/pab_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * Parameters of a fish ladder
diff --git a/src/pab/pab_puissance.ts b/src/pab/pab_puissance.ts
index 17b11dcf..a7f2f506 100644
--- a/src/pab/pab_puissance.ts
+++ b/src/pab/pab_puissance.ts
@@ -1,8 +1,8 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { PabPuissanceParams } from "./pab_puissance_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { PabPuissanceParams } from "../internal_modules";
 
 export class PabPuissance extends Nub {
     constructor(prms: PabPuissanceParams, dbg: boolean = false) {
diff --git a/src/pab/pab_puissance_params.ts b/src/pab/pab_puissance_params.ts
index 06bf1510..78b4ebc6 100644
--- a/src/pab/pab_puissance_params.ts
+++ b/src/pab/pab_puissance_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class PabPuissanceParams extends ParamsEquation {
 
diff --git a/src/par/par.ts b/src/par/par.ts
index bf84a1a3..8793ad2c 100644
--- a/src/par/par.ts
+++ b/src/par/par.ts
@@ -1,17 +1,17 @@
-import { CalculatorType } from "../compute-node";
-import { ParamCalculability } from "../param/param-definition";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { ParParams } from "./par_params";
-import { ParTypeAbstract } from "./par_type";
-import { ParTypePlane } from "./par_type_plane";
-import { ParTypeFatou } from "./par_type_fatou";
-import { ParTypeSuperactive } from "./par_type_superactive";
-import { ParTypeChevron } from "./par_type_chevron";
-import { Message, MessageCode } from "../util/message";
-import { ResultElement } from "../util/resultelement";
-import { isLowerThan, isGreaterThan } from "../base";
-import { FishPass } from "../fish_pass";
+import { CalculatorType } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ParParams } from "../internal_modules";
+import { ParTypeAbstract } from "../internal_modules";
+import { ParTypePlane } from "../internal_modules";
+import { ParTypeFatou } from "../internal_modules";
+import { ParTypeSuperactive } from "../internal_modules";
+import { ParTypeChevron } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { ResultElement } from "../internal_modules";
+import { isLowerThan, isGreaterThan } from "../internal_modules";
+import { FishPass } from "../internal_modules";
 
 /** Type de Passe à Ralentisseurs */
 export enum ParType {
@@ -74,7 +74,7 @@ export class Par extends FishPass implements Observer {
         }
 
         // Check that input data is in the range given by abacuses
-        switch(this.calculatedParam) {
+        switch (this.calculatedParam) {
             case this.prms.ha:
                 // check qStar
                 const qStar = this.parCalc.CalcQStar();
@@ -108,7 +108,7 @@ export class Par extends FishPass implements Observer {
             this.result.resultElement.addMessage(m);
         }
 
-        if(!this.result.ok) return this.result;
+        if (!this.result.ok) return this.result;
 
         // extra results
         this.parCalc.addExtraResults(this.result);
@@ -201,9 +201,9 @@ export class Par extends FishPass implements Observer {
     }
 
     protected updateParamsVisibility() {
-        this.prms.L.visible = ([ ParType.PLANE, ParType.FATOU ].includes(this.parType));
-        this.prms.a.visible = ([ ParType.SUPERACTIVE, ParType.CHEVRON ].includes(this.parType));
-        this.prms.N.visible = ([ ParType.SUPERACTIVE, ParType.CHEVRON ].includes(this.parType));
+        this.prms.L.visible = ([ParType.PLANE, ParType.FATOU].includes(this.parType));
+        this.prms.a.visible = ([ParType.SUPERACTIVE, ParType.CHEVRON].includes(this.parType));
+        this.prms.N.visible = ([ParType.SUPERACTIVE, ParType.CHEVRON].includes(this.parType));
         this.prms.M.visible = (this.parType === ParType.CHEVRON);
     }
 
diff --git a/src/par/par_params.ts b/src/par/par_params.ts
index 97b84944..b8133785 100644
--- a/src/par/par_params.ts
+++ b/src/par/par_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class ParParams extends ParamsEquation {
 
diff --git a/src/par/par_simulation.ts b/src/par/par_simulation.ts
index a6d7ad83..39fb57b6 100644
--- a/src/par/par_simulation.ts
+++ b/src/par/par_simulation.ts
@@ -1,12 +1,12 @@
-import { CalculatorType } from "../compute-node";
-import { ParamCalculability, ParamDefinition } from "../param/param-definition";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { ParSimulationParams } from "./par_simulation_params";
-import { Message, MessageCode } from "../util/message";
-import { ResultElement } from "../util/resultelement";
-import { ParType, Par } from "./par";
-import { isEqual, round, isGreaterThan, isLowerThan } from "../base";
+import { CalculatorType } from "../internal_modules";
+import { ParamCalculability, ParamDefinition } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ParSimulationParams } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { ResultElement } from "../internal_modules";
+import { ParType, Par } from "../internal_modules";
+import { isEqual, round, isGreaterThan, isLowerThan } from "../internal_modules";
 
 export enum ParFlowRegime {
     /** Free flow (unsubmerged) */
@@ -77,7 +77,7 @@ export class ParSimulation extends Par implements Observer {
         }
 
         // Check Nb
-        const nb = this.CalcNb(czRes1.expectedZD, czRes2.expectedZD) ; // reference value
+        const nb = this.CalcNb(czRes1.expectedZD, czRes2.expectedZD); // reference value
         if (this.prms.Nb.v === undefined) {
             this.prms.Nb.v = nb;
             this.prms.Nb.singleValue = round(nb, 3);
@@ -119,7 +119,7 @@ export class ParSimulation extends Par implements Observer {
         this.nubCalc(sVarCalc, rInit);
 
         // add checkInput()'s non fatal warnings to current result
-        if (! status.fatal) {
+        if (!status.fatal) {
             for (const m of status.messages) {
                 this.result.resultElement.addMessage(m);
             }
@@ -176,7 +176,7 @@ export class ParSimulation extends Par implements Observer {
         let expectedZD: number;
         if (ZR.v === undefined && ZD.v === undefined) {
             message = new Message(MessageCode.ERROR_AT_LEAST_ONE_OF_THOSE_MUST_BE_DEFINED);
-            message.extraVar.variables = [ ZR.symbol, ZD.symbol ];
+            message.extraVar.variables = [ZR.symbol, ZD.symbol];
         } else {
             // calculate missing value
             let zrDef = true;
@@ -197,7 +197,7 @@ export class ParSimulation extends Par implements Observer {
             if (zrDef && zdDef) {
                 expectedZR = this.parCalc.CalcZRFromZD(ZD.V);
                 expectedZD = this.parCalc.CalcZDFromZR(ZR.V);
-                if (! isEqual(ZR.v, expectedZR, 1E-3)) {
+                if (!isEqual(ZR.v, expectedZR, 1E-3)) {
                     message = new Message(MessageCode.ERROR_PAR_ZR_ZD_MISMATCH);
                     message.extraVar.var_ZR = ZR.symbol;
                     message.extraVar.var_ZD = ZD.symbol;
@@ -225,7 +225,7 @@ export class ParSimulation extends Par implements Observer {
         }
         const rLs = (realZD1 - realZD2) * Math.sqrt(1 + this.prms.S.v * this.prms.S.v) / this.prms.S.v;
         const nb = Math.floor((rLs + 0.01) / this.parCalc.P)
-        switch(this.parType) {
+        switch (this.parType) {
             case ParType.PLANE:
             case ParType.FATOU:
                 return nb + 1;
diff --git a/src/par/par_simulation_params.ts b/src/par/par_simulation_params.ts
index ce2c29a4..436813c1 100644
--- a/src/par/par_simulation_params.ts
+++ b/src/par/par_simulation_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParParams } from "./par_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParParams } from "../internal_modules";
 
 export class ParSimulationParams extends ParParams {
 
diff --git a/src/par/par_type.ts b/src/par/par_type.ts
index 42ea8566..63933ef6 100644
--- a/src/par/par_type.ts
+++ b/src/par/par_type.ts
@@ -1,9 +1,9 @@
-import { ParParams } from "./par_params";
-import { Result } from "../util/result";
-import { ParamValueMode } from "../param/param-value-mode";
-import { ParType } from "./par";
-import { Message } from "../util/message";
-import { ParSimulationParams } from "./par_simulation_params";
+import { ParParams } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
+import { ParType } from "../internal_modules";
+import { Message } from "../internal_modules";
+import { ParSimulationParams } from "../internal_modules";
 
 export abstract class ParTypeAbstract {
 
@@ -160,8 +160,8 @@ export abstract class ParTypeAbstract {
 
     /** coefficients for calculating c(0|1|2)ha? @see getCoeff */
     protected abstract get coef(): {
-        [key:string]: {
-            [key:string]: number[]
+        [key: string]: {
+            [key: string]: number[]
         }
     }
 
diff --git a/src/par/par_type_chevron.ts b/src/par/par_type_chevron.ts
index 8ffc30cd..45bdadc0 100644
--- a/src/par/par_type_chevron.ts
+++ b/src/par/par_type_chevron.ts
@@ -1,8 +1,8 @@
-import { Result } from "../util/result";
-import { ParTypeSC } from "./par_type_sc";
-import { ParParams } from "./par_params";
-import { ParType } from "./par";
-import { Message, MessageCode } from "../util/message";
+import { Result } from "../internal_modules";
+import { ParTypeSC } from "../internal_modules";
+import { ParParams } from "../internal_modules";
+import { ParType } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
 
 export class ParTypeChevron extends ParTypeSC {
 
@@ -61,14 +61,14 @@ export class ParTypeChevron extends ParTypeSC {
     protected get coef() {
         return {
             "h": {
-                "c0": [ 0,  -4.97686,     1.30546    ],
-                "c1": [ 0,   0.176261,    0.661656   ],
-                "c2": [ 0,  -0.0733832,  -0.00839864 ]
+                "c0": [0, -4.97686, 1.30546],
+                "c1": [0, 0.176261, 0.661656],
+                "c2": [0, -0.0733832, -0.00839864]
             },
             "ha": {
-                "c0": [ 0,   5.02138,     0.709434   ],
-                "c1": [ 0,  -2.47998,     1.25363    ],
-                "c2": [ 0,   0.188324,   -0.0427461  ]
+                "c0": [0, 5.02138, 0.709434],
+                "c1": [0, -2.47998, 1.25363],
+                "c2": [0, 0.188324, -0.0427461]
             }
         };
     }
diff --git a/src/par/par_type_fatou.ts b/src/par/par_type_fatou.ts
index b20de3af..cc6fbc78 100644
--- a/src/par/par_type_fatou.ts
+++ b/src/par/par_type_fatou.ts
@@ -1,10 +1,9 @@
-import { Result } from "../util/result";
-import { ParTypePF } from "./par_type_pf";
-import { ParType } from "./par";
-import { ParParams } from "./par_params";
-import { Message, MessageCode } from "../util/message";
-import { ParamDefinition } from "../param/param-definition";
-import { isLowerThan, isGreaterThan } from "../base";
+import { Result } from "../internal_modules";
+import { ParTypePF } from "../internal_modules";
+import { ParType } from "../internal_modules";
+import { ParParams } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { isLowerThan, isGreaterThan } from "../internal_modules";
 
 export class ParTypeFatou extends ParTypePF {
 
@@ -69,14 +68,14 @@ export class ParTypeFatou extends ParTypePF {
     protected get coef() {
         return {
             "h": {
-                "c0": [  -3.56494,   0.450262,   0.0407576 ],
-                "c1": [  42.4113,  -24.4941,     8.84146   ],
-                "c2": [ -73.4829,   54.6733,   -14.0622    ]
+                "c0": [-3.56494, 0.450262, 0.0407576],
+                "c1": [42.4113, -24.4941, 8.84146],
+                "c2": [-73.4829, 54.6733, -14.0622]
             },
             "ha": {
-                "c0": [   15.8096,    -5.19282,   0.465827 ],
-                "c1": [  302.623,   -106.203,    13.2957   ],
-                "c2": [ -783.592,    269.991,   -25.2637   ]
+                "c0": [15.8096, -5.19282, 0.465827],
+                "c1": [302.623, -106.203, 13.2957],
+                "c2": [-783.592, 269.991, -25.2637]
             }
         };
     }
diff --git a/src/par/par_type_pf.ts b/src/par/par_type_pf.ts
index 47b47718..10d8a3cb 100644
--- a/src/par/par_type_pf.ts
+++ b/src/par/par_type_pf.ts
@@ -1,6 +1,6 @@
-import { ParTypeAbstract } from "./par_type";
-import { Message, MessageCode } from "../util/message";
-import { ParamValueMode } from "../param/param-value-mode";
+import { ParTypeAbstract } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
 
 /**
  * Intermediate class for common stuff between PLANE and FATOU pass types
diff --git a/src/par/par_type_plane.ts b/src/par/par_type_plane.ts
index 0bfbd6c4..a7891a14 100644
--- a/src/par/par_type_plane.ts
+++ b/src/par/par_type_plane.ts
@@ -1,10 +1,9 @@
-import { Result } from "../util/result";
-import { ParTypePF } from "./par_type_pf";
-import { ParType } from "./par";
-import { ParParams } from "./par_params";
-import { Message, MessageCode } from "../util/message";
-import { ParamDefinition } from "../param/param-definition";
-import { isLowerThan, isGreaterThan } from "../base";
+import { Result } from "../internal_modules";
+import { ParTypePF } from "../internal_modules";
+import { ParType } from "../internal_modules";
+import { ParParams } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { isLowerThan, isGreaterThan } from "../internal_modules";
 
 export class ParTypePlane extends ParTypePF {
 
@@ -35,7 +34,7 @@ export class ParTypePlane extends ParTypePF {
     }
 
     public CalcP(): number {
-        return (2/3) * this.prms.L.V;
+        return (2 / 3) * this.prms.L.V;
     }
 
     public addExtraResults(res: Result): void {
@@ -69,14 +68,14 @@ export class ParTypePlane extends ParTypePF {
     protected get coef() {
         return {
             "h": {
-                "c0": [   16.7218,   -6.09624,  0.834851  ],
-                "c1": [ -139.382,    47.2186,   0.0547598 ],
-                "c2": [  347.368,  -130.698,    8.14521   ]
+                "c0": [16.7218, -6.09624, 0.834851],
+                "c1": [-139.382, 47.2186, 0.0547598],
+                "c2": [347.368, -130.698, 8.14521]
             },
             "ha": {
-                "c0": [   15.2115,   -5.22606,   0.633654 ],
-                "c1": [ -184.043,    59.7073,   -0.530737 ],
-                "c2": [  315.110,  -115.164,     6.85371  ]
+                "c0": [15.2115, -5.22606, 0.633654],
+                "c1": [-184.043, 59.7073, -0.530737],
+                "c2": [315.110, -115.164, 6.85371]
             }
         };
     }
diff --git a/src/par/par_type_sc.ts b/src/par/par_type_sc.ts
index 2c0999a4..9ec87009 100644
--- a/src/par/par_type_sc.ts
+++ b/src/par/par_type_sc.ts
@@ -1,7 +1,6 @@
-import { ParTypeAbstract } from "./par_type";
-import { Message, MessageCode } from "../util/message";
-import { ParamValueMode } from "../param/param-value-mode";
-import { isLowerThan, isGreaterThan } from "../base";
+import { ParTypeAbstract } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { isLowerThan, isGreaterThan } from "../internal_modules";
 
 /**
  * Intermediate class for common stuff between SUPERACTIVE and CHEVRON pass types
diff --git a/src/par/par_type_superactive.ts b/src/par/par_type_superactive.ts
index 1f9b17a1..260d2a1e 100644
--- a/src/par/par_type_superactive.ts
+++ b/src/par/par_type_superactive.ts
@@ -1,7 +1,7 @@
-import { Result } from "../util/result";
-import { ParTypeSC } from "./par_type_sc";
-import { ParType } from "./par";
-import { ParParams } from "./par_params";
+import { Result } from "../internal_modules";
+import { ParTypeSC } from "../internal_modules";
+import { ParType } from "../internal_modules";
+import { ParParams } from "../internal_modules";
 
 export class ParTypeSuperactive extends ParTypeSC {
 
@@ -41,14 +41,14 @@ export class ParTypeSuperactive extends ParTypeSC {
     protected get coef() {
         return {
             "h": {
-                "c0": [ 0,  -2.62712,    0.601348    ],
-                "c1": [ 0,   1.15807,    1.07554     ],
-                "c2": [ 0,  -0.559218,   0.000504060 ]
+                "c0": [0, -2.62712, 0.601348],
+                "c1": [0, 1.15807, 1.07554],
+                "c2": [0, -0.559218, 0.000504060]
             },
             "ha": {
-                "c0": [ 0,  -2.22434,    0.596682    ],
-                "c1": [ 0,   0.514953,   1.25460     ],
-                "c2": [ 0,  -0.354624,  -0.0153156   ]
+                "c0": [0, -2.22434, 0.596682],
+                "c1": [0, 0.514953, 1.25460],
+                "c2": [0, -0.354624, -0.0153156]
             }
         };
     }
diff --git a/src/param/mirror-iterator.ts b/src/param/mirror-iterator.ts
index 2c9b0abe..6939a9fe 100644
--- a/src/param/mirror-iterator.ts
+++ b/src/param/mirror-iterator.ts
@@ -1,5 +1,5 @@
-import { INumberIterator } from "./param-value-iterator";
-import { ParamValues } from "./param-values";
+import { INumberIterator } from "../internal_modules";
+import { ParamValues } from "../internal_modules";
 
 /**
  * Itérateur miroir sur les (ou la) valeurs prises par un ParamValues.
@@ -61,7 +61,7 @@ export class MirrorIterator implements INumberIterator {
     public next(): IteratorResult<number> {
         if (this.hasNext) {
             this._current = this._valuesList[this._index];
-            this._index ++;
+            this._index++;
             return {
                 done: false,
                 value: this._current
diff --git a/src/param/param-definition.ts b/src/param/param-definition.ts
index 03e80592..18907050 100644
--- a/src/param/param-definition.ts
+++ b/src/param/param-definition.ts
@@ -1,16 +1,16 @@
-import { CalculatorType, ComputeNode } from "../compute-node";
-import { Session } from "../index";
-import { LinkedValue } from "../linked-value";
-import { Nub } from "../nub";
-import { acSection } from "../open-channel/section/section_type";
-import { Interval } from "../util/interval";
-import { Message, MessageCode } from "../util/message";
-import { IObservable, Observable, Observer } from "../util/observer";
-import { ParamDomain, ParamDomainValue } from "./param-domain";
-import { INamedIterableValues, INumberIterator } from "./param-value-iterator";
-import { ParamValueMode } from "./param-value-mode";
-import { ParamValues } from "./param-values";
-import { ParamsEquation } from "./params-equation";
+import { CalculatorType, ComputeNode } from "../internal_modules";
+import { Session } from "../internal_modules";
+import { LinkedValue } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { acSection } from "../internal_modules";
+import { Interval } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { IObservable, Observable, Observer } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { INamedIterableValues, INumberIterator } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
+import { ParamValues } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * Calculabilité du paramètre
@@ -171,7 +171,7 @@ export class ParamDefinition implements INamedIterableValues, IObservable {
      * when param value was set to undefined before
      */
     public set initValue(v: number) {
-        if (v !== undefined && ! isNaN(v) && v !== null) {
+        if (v !== undefined && !isNaN(v) && v !== null) {
             this._initValue = v;
         } else {
             if (this._initValue === undefined || isNaN(this._initValue) || this._initValue === null) {
@@ -622,7 +622,7 @@ export class ParamDefinition implements INamedIterableValues, IObservable {
                 break;
 
             case ParamDomainValue.INTEGER:
-                if (! Number.isInteger(v)) {
+                if (!Number.isInteger(v)) {
                     const f = new Message(MessageCode.ERROR_PARAMDEF_VALUE_INTEGER);
                     f.extraVar.symbol = this.symbol;
                     f.extraVar.value = v;
diff --git a/src/param/param-domain.ts b/src/param/param-domain.ts
index 64d07a72..85aa837b 100644
--- a/src/param/param-domain.ts
+++ b/src/param/param-domain.ts
@@ -1,5 +1,5 @@
-import { Interval } from "../util/interval";
-import { Message, MessageCode } from "../util/message";
+import { Interval } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
 
 /**
  * domaine de définition du paramètre
diff --git a/src/param/param-value-iterator.ts b/src/param/param-value-iterator.ts
index d2c6ec24..56835873 100644
--- a/src/param/param-value-iterator.ts
+++ b/src/param/param-value-iterator.ts
@@ -1,8 +1,8 @@
-import { isEqual } from "../base";
-import { INamedObject, IObjectWithFamily } from "../jalhyd_object";
-import { ExtensionStrategy } from "./param-definition";
-import { ParamValueMode } from "./param-value-mode";
-import { ParamValues } from "./param-values";
+import { isEqual } from "../internal_modules";
+import { INamedObject, IObjectWithFamily } from "../internal_modules";
+import { ExtensionStrategy } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
+import { ParamValues } from "../internal_modules";
 
 /**
  * itérateur sur des nombres
@@ -173,7 +173,7 @@ export class ParamValueIterator implements INumberIterator {
      */
     public nextValue(): IteratorResult<number> {
         const res = this.next();
-        if (! res.done) {
+        if (!res.done) {
             this._param.setCurrentValueFromIterator(res.value);
         }
         return res;
@@ -187,7 +187,7 @@ export class ParamValueIterator implements INumberIterator {
                     if (this.hasNext) {
                         this._current = this._param.singleValue;
                         this._index++;
-                        this._xindex ++;
+                        this._xindex++;
                         return {
                             done: false,
                             value: this._current
@@ -202,7 +202,7 @@ export class ParamValueIterator implements INumberIterator {
                 case ParamValueMode.LISTE:
                     if (this.hasNextWithoutExtension) { // default case
                         this._current = this._param.valueList[this._index++]; // what about _reverse ?
-                        this._xindex ++; // count values for possible extension
+                        this._xindex++; // count values for possible extension
                         return {
                             done: false,
                             value: this._current
@@ -210,7 +210,7 @@ export class ParamValueIterator implements INumberIterator {
                     } else { // no more real values
                         if (this._extendTo && this.hasNext) {
                             // extend
-                            this._index ++;
+                            this._index++;
                             switch (this._param.extensionStrategy) {
                                 case ExtensionStrategy.REPEAT_LAST:
                                     // repeat last real value (do not change this._current)
@@ -268,14 +268,14 @@ export class ParamValueIterator implements INumberIterator {
                                 this._index += this._param.step;
                             }
                         }
-                        this._xindex ++; // count values for possible extension
+                        this._xindex++; // count values for possible extension
                         return {
                             done: false,
                             value: this._current
                         };
                     } else { // no more real values
                         if (this._extendTo && this.hasNext) {
-                            this._xindex ++; // count values for possible extension
+                            this._xindex++; // count values for possible extension
                             switch (this._param.extensionStrategy) {
                                 case ExtensionStrategy.REPEAT_LAST:
                                     // repeat last real value (do not change this._current)
@@ -286,7 +286,7 @@ export class ParamValueIterator implements INumberIterator {
 
                                 case ExtensionStrategy.RECYCLE:
                                     // loop over real values using a local iterator that does not extend
-                                    if (this._locExIt === undefined || ! this._locExIt.hasNext) {
+                                    if (this._locExIt === undefined || !this._locExIt.hasNext) {
                                         // create / rewind iterator
                                         this._locExIt = this._param.getValuesIterator(
                                             this._reverse, undefined, this._addLastStep
@@ -347,7 +347,7 @@ export class ParamValueIterator implements INumberIterator {
                 return this._index === 0;
 
             case ParamValueMode.LISTE:
-                if (this._extendTo && ! ignoreExtension) {
+                if (this._extendTo && !ignoreExtension) {
                     return this._index < this._extendTo;
                 } else {
                     return this._index < this._param.valueList.length;
@@ -355,11 +355,11 @@ export class ParamValueIterator implements INumberIterator {
 
             case ParamValueMode.MINMAX:
                 // si extension, compter le nombre de valeurs
-                if (this._extendTo && ! ignoreExtension) {
+                if (this._extendTo && !ignoreExtension) {
                     return this._xindex < this._extendTo;
                 } else {
                     // sinon, s'il y a un dernier pas à faire
-                    return ! this.minMaxLastValueReached();
+                    return !this.minMaxLastValueReached();
                 }
 
             default:
@@ -381,7 +381,7 @@ export class ParamValueIterator implements INumberIterator {
      * Returns true if last value was reached in MINMAX mode
      */
     protected minMaxLastValueReached() {
-        if (! this._minMaxLastValueReached) {
+        if (!this._minMaxLastValueReached) {
             // update flag
             if (this._addLastStep) {
                 this._minMaxLastValueReached = this._reverse ?
diff --git a/src/param/param-values.ts b/src/param/param-values.ts
index 3e60df5b..01e27181 100644
--- a/src/param/param-values.ts
+++ b/src/param/param-values.ts
@@ -1,6 +1,6 @@
-import { ExtensionStrategy } from "./param-definition";
-import { INumberIterator, IterableValues, ParamValueIterator } from "./param-value-iterator";
-import { ParamValueMode } from "./param-value-mode";
+import { ExtensionStrategy } from "../internal_modules";
+import { INumberIterator, IterableValues, ParamValueIterator } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
 
 /**
  * Represents the value(s) taken by a Parameter, along with and depending on
@@ -128,7 +128,7 @@ export class ParamValues implements IterableValues {
      * taking in account reverse, extendTo and addLastStep if defined
      */
     public getInferredValuesList(reverse: boolean = false, extendTo?: number, addLastStep: boolean = false) {
-        if ([ ParamValueMode.MINMAX, ParamValueMode.LISTE ].includes(this.valueMode)) {
+        if ([ParamValueMode.MINMAX, ParamValueMode.LISTE].includes(this.valueMode)) {
             if (
                 (this.valueMode === ParamValueMode.LISTE)
                 || (
diff --git a/src/param/param_definition_iterator.ts b/src/param/param_definition_iterator.ts
index f7f27249..852f9d2f 100644
--- a/src/param/param_definition_iterator.ts
+++ b/src/param/param_definition_iterator.ts
@@ -1,6 +1,6 @@
-import { MapIterator } from "../util/map_iterator";
-import { ParamDefinition } from "./param-definition";
-import { ParamsEquation } from "./params-equation";
+import { MapIterator } from "../internal_modules";
+import { ParamDefinition } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export interface IParamDefinitionIterator extends IterableIterator<ParamDefinition> {
 }
diff --git a/src/param/params-equation.ts b/src/param/params-equation.ts
index 5e2549fd..16849b01 100644
--- a/src/param/params-equation.ts
+++ b/src/param/params-equation.ts
@@ -1,6 +1,6 @@
-import { ComputeNode } from "../compute-node";
-import { ParamDefinition } from "./param-definition";
-import { IParamDefinitionIterator, ParamDefinitionIterator } from "./param_definition_iterator";
+import { ComputeNode } from "../internal_modules";
+import { ParamDefinition } from "../internal_modules";
+import { IParamDefinitionIterator, ParamDefinitionIterator } from "../internal_modules";
 
 /**
  * liste des paramètres d'une équation
@@ -20,7 +20,7 @@ export abstract class ParamsEquation implements Iterable<ParamDefinition> {
     }
 
     get nubUid() {
-        if (! this.parent) {
+        if (!this.parent) {
             throw new Error("ParamsEquation.nubUid : equation has no parent Nub !");
         }
         return this.parent.uid;
diff --git a/src/param/params_equation_array_iterator.ts b/src/param/params_equation_array_iterator.ts
index 02cd6ade..aee816be 100644
--- a/src/param/params_equation_array_iterator.ts
+++ b/src/param/params_equation_array_iterator.ts
@@ -1,7 +1,7 @@
-import { MapIterator } from "../util/map_iterator";
-import { ParamDefinition } from "./param-definition";
-import { IParamDefinitionIterator } from "./param_definition_iterator";
-import { ParamsEquation } from "./params-equation";
+import { MapIterator } from "../internal_modules";
+import { ParamDefinition } from "../internal_modules";
+import { IParamDefinitionIterator } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * itérateur sur les paramètres d'un tableau de de ParamsEquation
diff --git a/src/pipe_flow/cond_distri.ts b/src/pipe_flow/cond_distri.ts
index 103b959a..4ea0fe9c 100644
--- a/src/pipe_flow/cond_distri.ts
+++ b/src/pipe_flow/cond_distri.ts
@@ -1,8 +1,8 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { ConduiteDistribParams } from "./cond_distri_params";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ConduiteDistribParams } from "../internal_modules";
 
 /**
  * classe de calcul sur la conduite distributrice
diff --git a/src/pipe_flow/cond_distri_params.ts b/src/pipe_flow/cond_distri_params.ts
index ea1cb884..43a01047 100644
--- a/src/pipe_flow/cond_distri_params.ts
+++ b/src/pipe_flow/cond_distri_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * paramètres pour la conduite distributrice
diff --git a/src/pipe_flow/pl_lechaptcalmon.ts b/src/pipe_flow/pl_lechaptcalmon.ts
index f9e975ca..e8b2923b 100644
--- a/src/pipe_flow/pl_lechaptcalmon.ts
+++ b/src/pipe_flow/pl_lechaptcalmon.ts
@@ -1,11 +1,11 @@
-import { CalculatorType } from "../compute-node";
-import { LCMaterial } from "../lc-material";
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { PL_LechaptCalmonParams } from "./pl_lechaptcalmon_params";
-import { PressureLossLaw, PressureLossType } from "./pressureloss_law";
+import { CalculatorType } from "../internal_modules";
+import { LCMaterial } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { PL_LechaptCalmonParams } from "../internal_modules";
+import { PressureLossLaw, PressureLossType } from "../internal_modules";
 
 /**
  * Calcul des pertes de charge dans un tube à partir des tables de Lechapt et Calmon
@@ -119,7 +119,7 @@ export class PL_LechaptCalmon extends PressureLossLaw implements Observer {
             r.resultElement.log.add(new Message(MessageCode.WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2));
         }
         r.values.Jl = this.prms.L.v * Math.pow(this.prms.Q.v, this.prms.M.v)
-        / Math.pow(this.prms.D.v, this.prms.N.v) * (this.prms.Lg.v / 1000);
+            / Math.pow(this.prms.D.v, this.prms.N.v) * (this.prms.Lg.v / 1000);
 
         r.vCalc = r.values.Jl + this.prms.Ks.v / 19.62 * Math.pow(r.values.V, 2);
 
diff --git a/src/pipe_flow/pl_lechaptcalmon_params.ts b/src/pipe_flow/pl_lechaptcalmon_params.ts
index 13e5787e..fe950e7e 100644
--- a/src/pipe_flow/pl_lechaptcalmon_params.ts
+++ b/src/pipe_flow/pl_lechaptcalmon_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { PressureLossLawParams } from "./pressurelosslaw_params";
+import { ParamDefinition } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { PressureLossLawParams } from "../internal_modules";
 
 /**
  * paramètres pour le calcul Lechapt et Calmon
diff --git a/src/pipe_flow/pressureloss.ts b/src/pipe_flow/pressureloss.ts
index 95413838..53580105 100644
--- a/src/pipe_flow/pressureloss.ts
+++ b/src/pipe_flow/pressureloss.ts
@@ -1,10 +1,10 @@
-import { Nub } from "../nub";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { CalculatorType } from "../compute-node";
-import { PressureLossParams } from "./pressureloss_params";
-import { PressureLossLaw } from "../pipe_flow/pressureloss_law";
-import { PressureLossLawParams } from "../pipe_flow/pressurelosslaw_params";
+import { Nub } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { PressureLossParams } from "../internal_modules";
+import { PressureLossLaw } from "../internal_modules";
+import { PressureLossLawParams } from "../internal_modules";
 
 export class PressureLoss extends Nub {
 
diff --git a/src/pipe_flow/pressureloss_law.ts b/src/pipe_flow/pressureloss_law.ts
index 39686a43..18c82a1d 100644
--- a/src/pipe_flow/pressureloss_law.ts
+++ b/src/pipe_flow/pressureloss_law.ts
@@ -1,4 +1,4 @@
-import { Nub } from "../nub";
+import { Nub } from "../internal_modules";
 
 /**
  * Loi de perte de charge
diff --git a/src/pipe_flow/pressureloss_params.ts b/src/pipe_flow/pressureloss_params.ts
index 0f8d169a..b12f1bc2 100644
--- a/src/pipe_flow/pressureloss_params.ts
+++ b/src/pipe_flow/pressureloss_params.ts
@@ -1,4 +1,4 @@
-import { ParamsEquation } from "../param/params-equation";
+import { ParamsEquation } from "../internal_modules";
 
 // dummy parameters class for code consistency, analogous to SectionParams
 export class PressureLossParams extends ParamsEquation { }
diff --git a/src/pipe_flow/pressurelosslaw_params.ts b/src/pipe_flow/pressurelosslaw_params.ts
index d477be6a..b91f3c84 100644
--- a/src/pipe_flow/pressurelosslaw_params.ts
+++ b/src/pipe_flow/pressurelosslaw_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamsEquation } from "../param/params-equation";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
 
 /**
  * generic pressure loss law parameters
diff --git a/src/prebarrage/pb_bassin.ts b/src/prebarrage/pb_bassin.ts
index 05022067..d99bbdfc 100644
--- a/src/prebarrage/pb_bassin.ts
+++ b/src/prebarrage/pb_bassin.ts
@@ -1,13 +1,13 @@
-import { Nub } from "../nub";
-import { Result } from "../util/result";
-import { PbBassinParams } from "./pb_bassin_params";
-import { ParamCalculability } from "../param/param-definition";
-import { PbCloison } from "./pb_cloison";
-import { CalculatorType } from "../compute-node";
-import { PreBarrage } from "./pre_barrage";
-import { Message, MessageCode } from "../util/message";
-
-export interface IPbBassinZstat{
+import { Nub } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { PbBassinParams } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { PbCloison } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { PreBarrage } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+
+export interface IPbBassinZstat {
     moy: number,
     min: number,
     max: number
@@ -43,7 +43,7 @@ export class PbBassin extends Nub {
 
     public Calc(sVarCalc?: string | any, rInit?: number): Result {
         // if Calc() is called outside of CalcSerie(), _result might not be initialized
-        if (! this.result) {
+        if (!this.result) {
             this.initNewResultElement();
         }
         const r = this.result;
@@ -64,7 +64,7 @@ export class PbBassin extends Nub {
     }
 
     public Equation(sVarCalc: string): Result {
-        switch(sVarCalc) {
+        switch (sVarCalc) {
             case "Q":
             case "Z":
                 const r = new Result();
@@ -90,7 +90,7 @@ export class PbBassin extends Nub {
 
     public CalcQ(): number {
         this.Q = 0;
-        for(const c of this.cloisonsAmont) {
+        for (const c of this.cloisonsAmont) {
             this.Q += Math.max(0, c.prms.Q.v);
         }
         return this.Q;
diff --git a/src/prebarrage/pb_bassin_params.ts b/src/prebarrage/pb_bassin_params.ts
index 88d0d812..87b9da78 100644
--- a/src/prebarrage/pb_bassin_params.ts
+++ b/src/prebarrage/pb_bassin_params.ts
@@ -1,6 +1,6 @@
-import { ParamsEquation } from "../param/params-equation";
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
+import { ParamsEquation } from "../internal_modules";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
 
 export class PbBassinParams extends ParamsEquation {
 
diff --git a/src/prebarrage/pb_cloison.ts b/src/prebarrage/pb_cloison.ts
index 07b39d44..6a5f18c2 100644
--- a/src/prebarrage/pb_cloison.ts
+++ b/src/prebarrage/pb_cloison.ts
@@ -1,11 +1,11 @@
-import { ParallelStructure } from "../structure/parallel_structure";
-import { PbBassin } from "./pb_bassin";
-import { PreBarrage } from "./pre_barrage";
-import { ParallelStructureParams } from "../structure/parallel_structure_params";
-import { CalculatorType } from "../compute-node";
-import { Result } from "../util/result";
-import { LoiDebit, loiAdmissiblesOuvrages } from "../structure/structure_props";
-import { Message, MessageCode } from "../util/message";
+import { ParallelStructure } from "../internal_modules";
+import { PbBassin } from "../internal_modules";
+import { PreBarrage } from "../internal_modules";
+import { ParallelStructureParams } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { LoiDebit, loiAdmissiblesOuvrages } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
 
 export class PbCloison extends ParallelStructure {
 
@@ -73,7 +73,7 @@ export class PbCloison extends ParallelStructure {
     }
 
     public get Z1(): number {
-        if(this.bassinAmont !== undefined) {
+        if (this.bassinAmont !== undefined) {
             return this.bassinAmont.Z;
         } else {
             return this.parent.prms.Z1.v;
@@ -81,7 +81,7 @@ export class PbCloison extends ParallelStructure {
     }
 
     public get Z2(): number {
-        if(this.bassinAval !== undefined) {
+        if (this.bassinAval !== undefined) {
             return this.bassinAval.Z;
         } else {
             return this.parent.prms.Z2.v;
@@ -91,7 +91,7 @@ export class PbCloison extends ParallelStructure {
     public Calc(sVarCalc?: string, rInit?: number): Result {
         this.updateZ1Z2();
         const r = super.Calc(sVarCalc, rInit);
-        switch(sVarCalc) {
+        switch (sVarCalc) {
             case "Z1":
                 // Upstream water elevation should be at least equal minZDV
                 r.vCalc = Math.max(this.getMinZDV(), r.vCalc);
@@ -122,9 +122,9 @@ export class PbCloison extends ParallelStructure {
      */
     public getMinZDV(): number {
         let minZDV: number;
-        for(const s of this.structures) {
-            if(s.prms.ZDV.visible) {
-                if(minZDV === undefined) {
+        for (const s of this.structures) {
+            if (s.prms.ZDV.visible) {
+                if (minZDV === undefined) {
                     minZDV = s.prms.ZDV.v;
                 } else {
                     minZDV = Math.min(minZDV, s.prms.ZDV.v);
diff --git a/src/prebarrage/pre_barrage.ts b/src/prebarrage/pre_barrage.ts
index 64188ac9..12305ba2 100644
--- a/src/prebarrage/pre_barrage.ts
+++ b/src/prebarrage/pre_barrage.ts
@@ -1,15 +1,15 @@
-import { Nub } from "../nub";
-import { ParamCalculability, ParamDefinition } from "../param/param-definition";
-import { Result } from "../util/result";
-import { PreBarrageParams } from "./pre_barrage_params";
-import { CalculatorType } from "../compute-node";
-import { PbBassin, IPbBassinZstat } from "./pb_bassin";
-import { PbCloison } from "./pb_cloison";
-import { SessionSettings } from "../session_settings";
-import { MessageCode, Message, MessageSeverity } from "../util/message";
-import { ResultElement } from "../util/resultelement";
-import { MermaidUtil } from "../util/mermaid";
-import { cLog } from "../index";
+import { Nub } from "../internal_modules";
+import { ParamCalculability, ParamDefinition } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { PreBarrageParams } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { PbBassin, IPbBassinZstat } from "../internal_modules";
+import { PbCloison } from "../internal_modules";
+import { SessionSettings } from "../internal_modules";
+import { MessageCode, Message, MessageSeverity } from "../internal_modules";
+import { ResultElement } from "../internal_modules";
+import { MermaidUtil } from "../internal_modules";
+import { cLog } from "../internal_modules";
 
 export class PreBarrage extends Nub {
 
@@ -108,7 +108,7 @@ export class PreBarrage extends Nub {
                 // browse graph downwards
                 for (const ca of startWall.bassinAval.cloisonsAval) {
                     // prevent loops @TODO detect loops instead, and throw an error ?
-                    if (! visited.includes(ca)) {
+                    if (!visited.includes(ca)) {
                         visited.push(ca);
                         ok = ok || this.hasUpDownConnection(ca, nbBasins + 1, visited);
                     }
@@ -371,16 +371,16 @@ export class PreBarrage extends Nub {
 
         // Initialisation des cotes sur les bassins et la CL amont
         if (this.isMeshed()) {
-            for(const b of this.bassins) {
+            for (const b of this.bassins) {
                 const zB = b.getMinZDV();
-                if(zB !== undefined) {
+                if (zB !== undefined) {
                     b.Z = Math.max(zB, b.prms.ZF.v) + 1;
                 } else {
                     b.Z = b.prms.ZF.v + 1;
                 }
             }
             const Z1 = this.getMinZDV(this._cloisonsAmont);
-            if(Z1 !== undefined) {
+            if (Z1 !== undefined) {
                 this.prms.Z1.v = Math.max(Z1, this.bassins[0].Z) + 1;
             } else {
                 this.prms.Z1.v = this.bassins[0].Z + 1;
@@ -420,7 +420,7 @@ export class PreBarrage extends Nub {
             // Balayage aval-amont: Calcul des cotes amont des cloisons
             this.debug("*** Calcul des Z aval --> amont ***")
             for (let i = this.bassins.length - 1; i >= 0; i--) {
-                this.debug("Bassin "+ i);
+                this.debug("Bassin " + i);
                 const zStat = this.bassins[i].CalcZ();
                 bConverged = bConverged && (zStat.max - zStat.min) < this._precision;
             }
@@ -429,14 +429,14 @@ export class PreBarrage extends Nub {
             this.prms.Z1.v = z1stat.moy;
             // tZ1.push(z1stat);
             bConverged = bConverged && (z1stat.max - z1stat.min) < this._precision
-            if(bConverged) {
+            if (bConverged) {
                 break;
             }
         }
         // console.debug(tQ);
         // console.debug(tZ1);
         const r = new Result(this.prms.Z1.v, this);
-        if(!bConverged) {
+        if (!bConverged) {
             r.resultElement.addMessage(new Message(MessageCode.WARNING_PREBARRAGE_NON_CONVERGENCE, {
                 precision: (z1stat.max - z1stat.min)
             }));
@@ -464,7 +464,7 @@ export class PreBarrage extends Nub {
             );
         }
         // PreBarrage must have at least one path from upstream to downstream
-        if (! this.hasUpDownConnection()) {
+        if (!this.hasUpDownConnection()) {
             throw new Error("PreBarrage.checkGeometry(): must have at least one path from upstream to downstream");
         }
 
@@ -522,12 +522,12 @@ export class PreBarrage extends Nub {
                     this._cloisonsAmont.push(c);
                 }
                 if (c.bassinAmont !== undefined) {
-                    if (! c.bassinAmont.cloisonsAval.includes(c)) {
+                    if (!c.bassinAmont.cloisonsAval.includes(c)) {
                         c.bassinAmont.cloisonsAval.push(c);
                     }
                 }
                 if (c.bassinAval !== undefined) {
-                    if (! c.bassinAval.cloisonsAmont.includes(c)) {
+                    if (!c.bassinAval.cloisonsAmont.includes(c)) {
                         c.bassinAval.cloisonsAmont.push(c);
                     }
                 }
@@ -554,19 +554,19 @@ export class PreBarrage extends Nub {
             c.prms.Q.initValue = Math.max(0, c.prms.Q.v);
             c.Calc("Q");
             // Relax! On ne prend pas toute la modification proposée !
-            if(c.prms.Q.v > 0) {
+            if (c.prms.Q.v > 0) {
                 c.prms.Q.v = (1 - this._relax) * c.prms.Q.initValue + this._relax * c.prms.Q.v;
                 QT2 += c.prms.Q.v;
             }
-            if(this.DBG) {this.debug(`CalcQ: Q=${c.prms.Q.v} Z1=${c.prms.Z1.v} Z2=${c.prms.Z2.v}`);}
+            if (this.DBG) { this.debug(`CalcQ: Q=${c.prms.Q.v} Z1=${c.prms.Z1.v} Z2=${c.prms.Z2.v}`); }
         }
-        if(this.DBG) {this.debug(`CalcQ: QT=${QT} QT2=${QT2}`);}
+        if (this.DBG) { this.debug(`CalcQ: QT=${QT} QT2=${QT2}`); }
         // Adjustement of each Q in order to get the good sum
         const adjustCoef = QT / QT2;
         // const tQ: number[] = [];
         for (const c of cloisons) {
-            if(c.prms.Q.v >= 0) {
-                if(QT2 !== 0) {
+            if (c.prms.Q.v >= 0) {
+                if (QT2 !== 0) {
                     c.prms.Q.v = c.prms.Q.v * adjustCoef;
                 } else {
                     c.prms.Q.v = QT / cloisons.length;
@@ -579,13 +579,13 @@ export class PreBarrage extends Nub {
     }
 
     public CalcZ1Cloisons(cloisons: PbCloison[]): IPbBassinZstat {
-        const zStat: IPbBassinZstat = {moy : 0, min: Infinity, max: -Infinity};
+        const zStat: IPbBassinZstat = { moy: 0, min: Infinity, max: -Infinity };
         let n: number = 0;
         for (const c of cloisons) {
             let Z1: number;
-            if(c.prms.Q.v >= 1E-6) {
+            if (c.prms.Q.v >= 1E-6) {
                 const r = c.Calc("Z1")
-                if(r.ok) {
+                if (r.ok) {
                     Z1 = r.vCalc;
                 } else {
                     Z1 = c.prms.Z2.v;
@@ -596,7 +596,7 @@ export class PreBarrage extends Nub {
             } else {
                 // Nul flow in submerged flow: Z1 = Z2
                 c.updateZ1Z2();
-                if(c.prms.Z2.v > c.getMinZDV()) {
+                if (c.prms.Z2.v > c.getMinZDV()) {
                     Z1 = c.prms.Z2.v;
                     zStat.moy += Z1;
                     n++;
@@ -604,12 +604,12 @@ export class PreBarrage extends Nub {
                     c.prms.Q.v = 0;
                 }
             }
-            if(Z1 !== undefined) {
+            if (Z1 !== undefined) {
                 zStat.min = Math.min(zStat.min, Z1);
                 zStat.max = Math.max(zStat.max, Z1);
             }
         }
-        if(n > 0) {
+        if (n > 0) {
             zStat.moy = zStat.moy / n;
         } else {
             // Nul flow on all cloisons which are all in free flow => Z1 = ZminZDV
@@ -617,16 +617,16 @@ export class PreBarrage extends Nub {
             zStat.min = zStat.moy;
             zStat.max = zStat.moy;
         }
-        this.debug(`CalcZ1Cloisons: Z= ${zStat.moy} [${(zStat.max-zStat.min)}]`);
+        this.debug(`CalcZ1Cloisons: Z= ${zStat.moy} [${(zStat.max - zStat.min)}]`);
         return zStat;
     }
 
     public getMinZDV(cloisons: PbCloison[]): number {
         let minZDV: number;
-        for(const c of cloisons) {
+        for (const c of cloisons) {
             const minZDVCloison = c.getMinZDV();
-            if(minZDVCloison !== undefined) {
-                if(minZDV === undefined) {
+            if (minZDVCloison !== undefined) {
+                if (minZDV === undefined) {
                     minZDV = minZDVCloison
                 } else {
                     minZDV = Math.min(minZDV, minZDVCloison);
diff --git a/src/prebarrage/pre_barrage_params.ts b/src/prebarrage/pre_barrage_params.ts
index 5cc04e51..e3f91d22 100644
--- a/src/prebarrage/pre_barrage_params.ts
+++ b/src/prebarrage/pre_barrage_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 export class PreBarrageParams extends ParamsEquation {
 
diff --git a/src/props.ts b/src/props.ts
index 3bb09a49..868e28df 100644
--- a/src/props.ts
+++ b/src/props.ts
@@ -1,4 +1,4 @@
-import { IObservable, Observable, Observer } from "./util/observer";
+import { IObservable, Observable, Observer } from "./internal_modules";
 
 /**
  * special property names
diff --git a/src/session.ts b/src/session.ts
index bf94f2bd..520e8054 100644
--- a/src/session.ts
+++ b/src/session.ts
@@ -1,95 +1,94 @@
-import { isNumeric } from "./base";
-import { CalculatorType, SectionType } from "./compute-node";
-import { config } from "./config";
-import { LCMaterial } from "./lc-material";
-import { LinkedValue } from "./linked-value";
-import { Nub } from "./nub";
-import { ParamDefinition } from "./param/param-definition";
-import { Props, Prop_NullParameters } from "./props";
-import { SessionSettings } from "./session_settings";
+import { isNumeric } from "./internal_modules";
+import { CalculatorType, SectionType } from "./internal_modules";
+import { config } from "./internal_modules";
+import { LCMaterial } from "./internal_modules";
+import { LinkedValue } from "./internal_modules";
+import { Nub } from "./internal_modules";
+import { ParamDefinition } from "./internal_modules";
+import { Props, Prop_NullParameters } from "./internal_modules";
+import { SessionSettings } from "./internal_modules";
 
 // Calculettes
-import { Grille, GrilleProfile, GrilleType } from "./devalaison/grille";
-import { GrilleParams } from "./devalaison/grille_params";
-import { Jet } from "./devalaison/jet";
-import { JetParams } from "./devalaison/jet_params";
-import { ConcentrationBlocs } from "./macrorugo/concentration_blocs";
-import { ConcentrationBlocsParams } from "./macrorugo/concentration_blocs_params";
-import { MacroRugo } from "./macrorugo/macrorugo";
-import { MacrorugoCompound } from "./macrorugo/macrorugo_compound";
-import { MacrorugoCompoundParams } from "./macrorugo/macrorugo_compound_params";
-import { MacrorugoParams } from "./macrorugo/macrorugo_params";
-import { MRCInclination } from "./macrorugo/mrc-inclination";
-import { SPP, SPPOperation } from "./math/spp";
-import { SPPParams } from "./math/spp_params";
-import { Trigo, TrigoOperation, TrigoUnit } from "./math/trigo";
-import { TrigoParams } from "./math/trigo_params";
-import { YAXB } from "./math/yaxb";
-import { YAXBParams } from "./math/yaxb_params";
-import { YAXN } from "./math/yaxn";
-import { YAXNParams } from "./math/yaxn_params";
-import { Bief } from "./open-channel/bief";
-import { BiefParams, BiefRegime } from "./open-channel/bief_params";
-import { MethodeResolution } from "./open-channel/methode-resolution";
-import { Pente } from "./open-channel/pente";
-import { PenteParams } from "./open-channel/pente_params";
-import { RegimeUniforme } from "./open-channel/regime_uniforme";
-import { CourbeRemous } from "./open-channel/remous";
-import { CourbeRemousParams } from "./open-channel/remous_params";
-import { cSnCirc } from "./open-channel/section/section_circulaire";
-import { ParamsSectionCirc } from "./open-channel/section/section_circulaire_params";
-import { SectionParametree } from "./open-channel/section/section_parametree";
-import { cSnPuiss } from "./open-channel/section/section_puissance";
-import { ParamsSectionPuiss } from "./open-channel/section/section_puissance_params";
-import { cSnRectang } from "./open-channel/section/section_rectang";
-import { ParamsSectionRectang } from "./open-channel/section/section_rectang_params";
-import { cSnTrapez } from "./open-channel/section/section_trapez";
-import { ParamsSectionTrapez } from "./open-channel/section/section_trapez_params";
-import { acSection } from "./open-channel/section/section_type";
-import { CloisonAval } from "./pab/cloison_aval";
-import { CloisonsAvalParams } from "./pab/cloison_aval_params";
-import { Cloisons } from "./pab/cloisons";
-import { CloisonsParams } from "./pab/cloisons_params";
-import { Pab } from "./pab/pab";
-import { PabChute } from "./pab/pab_chute";
-import { PabChuteParams } from "./pab/pab_chute_params";
-import { PabDimension } from "./pab/pab_dimension";
-import { PabDimensionParams } from "./pab/pab_dimensions_params";
-import { PabNombre } from "./pab/pab_nombre";
-import { PabNombreParams } from "./pab/pab_nombre_params";
-import { PabParams } from "./pab/pab_params";
-import { PabPuissance } from "./pab/pab_puissance";
-import { PabPuissanceParams } from "./pab/pab_puissance_params";
-import { ConduiteDistrib } from "./pipe_flow/cond_distri";
-import { ConduiteDistribParams } from "./pipe_flow/cond_distri_params";
-import { PL_LechaptCalmon } from "./pipe_flow/pl_lechaptcalmon";
-import { PL_LechaptCalmonParams } from "./pipe_flow/pl_lechaptcalmon_params";
-import { Solveur } from "./solveur/solveur";
-import { SolveurParams } from "./solveur/solveur_params";
-import { Dever } from "./structure/dever";
-import { DeverParams } from "./structure/dever_params";
-import { CreateStructure } from "./structure/factory_structure";
-import { ParallelStructure } from "./structure/parallel_structure";
-import { ParallelStructureParams } from "./structure/parallel_structure_params";
-import { LoiDebit, StructureType } from "./structure/structure_props";
-import { Par, ParType } from "./par/par";
-import { ParParams } from "./par/par_params";
-import { ParSimulation } from "./par/par_simulation";
-import { ParSimulationParams } from "./par/par_simulation_params";
-import { FishSpecies } from "./verification/fish_species";
-import { Espece } from "./verification/espece";
-import { EspeceParams } from "./verification/espece_params";
-import { Verificateur } from "./verification/verificateur";
-import { DivingJetSupport } from "./verification/diving-jet-support";
-import { PreBarrage } from "./prebarrage/pre_barrage";
-import { PreBarrageParams } from "./prebarrage/pre_barrage_params";
-import { PbCloison } from "./prebarrage/pb_cloison";
-import { PbBassin } from "./prebarrage/pb_bassin";
-import { PbBassinParams } from "./prebarrage/pb_bassin_params";
-import { ParamValueMode } from "./param/param-value-mode";
-import { PressureLoss } from "./pipe_flow/pressureloss";
-import { PressureLossParams } from "./pipe_flow/pressureloss_params";
-import { PressureLossLaw, PressureLossType } from "./pipe_flow/pressureloss_law";
+import { Grille, GrilleProfile, GrilleType } from "./internal_modules";
+import { GrilleParams } from "./internal_modules";
+import { Jet } from "./internal_modules";
+import { JetParams } from "./internal_modules";
+import { ConcentrationBlocs } from "./internal_modules";
+import { ConcentrationBlocsParams } from "./internal_modules";
+import { MacroRugo } from "./internal_modules";
+import { MacrorugoCompound } from "./internal_modules";
+import { MacrorugoCompoundParams } from "./internal_modules";
+import { MacrorugoParams } from "./internal_modules";
+import { MRCInclination } from "./internal_modules";
+import { SPP, SPPOperation } from "./internal_modules";
+import { SPPParams } from "./internal_modules";
+import { Trigo, TrigoOperation, TrigoUnit } from "./internal_modules";
+import { TrigoParams } from "./internal_modules";
+import { YAXB } from "./internal_modules";
+import { YAXBParams } from "./internal_modules";
+import { YAXN } from "./internal_modules";
+import { YAXNParams } from "./internal_modules";
+import { Bief } from "./internal_modules";
+import { BiefParams, BiefRegime } from "./internal_modules";
+import { MethodeResolution } from "./internal_modules";
+import { Pente } from "./internal_modules";
+import { PenteParams } from "./internal_modules";
+import { RegimeUniforme } from "./internal_modules";
+import { CourbeRemous } from "./internal_modules";
+import { CourbeRemousParams } from "./internal_modules";
+import { cSnCirc } from "./internal_modules";
+import { ParamsSectionCirc } from "./internal_modules";
+import { SectionParametree } from "./internal_modules";
+import { cSnPuiss } from "./internal_modules";
+import { ParamsSectionPuiss } from "./internal_modules";
+import { cSnRectang } from "./internal_modules";
+import { ParamsSectionRectang } from "./internal_modules";
+import { cSnTrapez } from "./internal_modules";
+import { ParamsSectionTrapez } from "./internal_modules";
+import { acSection } from "./internal_modules";
+import { CloisonAval } from "./internal_modules";
+import { CloisonsAvalParams } from "./internal_modules";
+import { Cloisons } from "./internal_modules";
+import { CloisonsParams } from "./internal_modules";
+import { Pab } from "./internal_modules";
+import { PabChute } from "./internal_modules";
+import { PabChuteParams } from "./internal_modules";
+import { PabDimension } from "./internal_modules";
+import { PabDimensionParams } from "./internal_modules";
+import { PabNombre } from "./internal_modules";
+import { PabNombreParams } from "./internal_modules";
+import { PabParams } from "./internal_modules";
+import { PabPuissance } from "./internal_modules";
+import { PabPuissanceParams } from "./internal_modules";
+import { ConduiteDistrib } from "./internal_modules";
+import { ConduiteDistribParams } from "./internal_modules";
+import { PL_LechaptCalmon } from "./internal_modules";
+import { PL_LechaptCalmonParams } from "./internal_modules";
+import { Solveur } from "./internal_modules";
+import { SolveurParams } from "./internal_modules";
+import { Dever } from "./internal_modules";
+import { DeverParams } from "./internal_modules";
+import { CreateStructure } from "./internal_modules";
+import { ParallelStructure } from "./internal_modules";
+import { ParallelStructureParams } from "./internal_modules";
+import { LoiDebit, StructureType } from "./internal_modules";
+import { Par, ParType } from "./internal_modules";
+import { ParParams } from "./internal_modules";
+import { ParSimulation } from "./internal_modules";
+import { ParSimulationParams } from "./internal_modules";
+import { FishSpecies } from "./internal_modules";
+import { Espece } from "./internal_modules";
+import { EspeceParams } from "./internal_modules";
+import { Verificateur } from "./internal_modules";
+import { DivingJetSupport } from "./internal_modules";
+import { PreBarrage } from "./internal_modules";
+import { PreBarrageParams } from "./internal_modules";
+import { PbCloison } from "./internal_modules";
+import { PbBassin } from "./internal_modules";
+import { PbBassinParams } from "./internal_modules";
+import { ParamValueMode } from "./internal_modules";
+import { PressureLoss } from "./internal_modules";
+import { PressureLossLaw, PressureLossType } from "./internal_modules";
 
 export class Session {
 
@@ -241,7 +240,7 @@ export class Session {
             maxIterations: SessionSettings.maxIterations
         };
         if (settings) {
-            sessionSettings = {...sessionSettings, ...settings};
+            sessionSettings = { ...sessionSettings, ...settings };
         }
         // nubs in session
         let ids: string[];
@@ -553,16 +552,16 @@ export class Session {
                 break;
 
             case CalculatorType.CloisonAval: {
-                    prms = new CloisonsAvalParams(
-                        0.5, // Q
-                        102, // Z1
-                        101.5, // Z2
-                        0, // ZRAM
-                        nullParams
-                    );
-                    nub = new CloisonAval(prms, dbg);
-                    break;
-                }
+                prms = new CloisonsAvalParams(
+                    0.5, // Q
+                    102, // Z1
+                    101.5, // Z2
+                    0, // ZRAM
+                    nullParams
+                );
+                nub = new CloisonAval(prms, dbg);
+                break;
+            }
 
             case CalculatorType.MacroRugoCompound:
                 nub = new MacrorugoCompound(
@@ -823,7 +822,7 @@ export class Session {
             // loading Solveur properties when unserialising a session might fail because target
             // Nub / param do not exist yet; silent fail in this case, and Solveur.fixTargets()
             // might fix it later
-            if (! (nub instanceof Solveur)) {
+            if (!(nub instanceof Solveur)) {
                 throw e;
             }
         }
@@ -842,7 +841,7 @@ export class Session {
                 alreadyUsed = true;
                 break;
             }
-            if (! alreadyUsed) {
+            if (!alreadyUsed) {
                 alreadyUsed = this.uidAlreadyUsed(uid, n.getChildren());
             }
         }
diff --git a/src/session_settings.ts b/src/session_settings.ts
index af7ba423..8925a51d 100644
--- a/src/session_settings.ts
+++ b/src/session_settings.ts
@@ -1,5 +1,5 @@
-import { IObservable, Observable, Observer } from "./util/observer";
-import { Props } from "./props";
+import { IObservable, Observable, Observer } from "./internal_modules";
+import { Props } from "./internal_modules";
 
 export class SessionSettings implements IObservable {
     private static _instance: SessionSettings;
diff --git a/src/solveur/solveur.ts b/src/solveur/solveur.ts
index 6db56950..e40c9af1 100644
--- a/src/solveur/solveur.ts
+++ b/src/solveur/solveur.ts
@@ -1,13 +1,13 @@
-import { CalculatorType } from "../compute-node";
-import { Nub } from "../nub";
-import { ParamCalculability, ParamDefinition } from "../param/param-definition";
-import { ParamValueMode } from "../param/param-value-mode";
-import { Session } from "../session";
-import { Observer } from "../util/observer";
-import { Result } from "../util/result";
-import { ResultElement } from "../util/resultelement";
-import { SolveurParams } from "./solveur_params";
-import { Message, MessageCode } from "../util/message";
+import { CalculatorType } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability, ParamDefinition } from "../internal_modules";
+import { ParamValueMode } from "../internal_modules";
+import { Session } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ResultElement } from "../internal_modules";
+import { SolveurParams } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
 
 export class Solveur extends Nub implements Observer {
 
@@ -36,7 +36,7 @@ export class Solveur extends Nub implements Observer {
         return searchableParams;
     }
 
-    constructor(prms: SolveurParams, dbg: boolean = false)  {
+    constructor(prms: SolveurParams, dbg: boolean = false) {
         super(prms, dbg);
         this.setCalculatorType(CalculatorType.Solveur);
         this._props.addObserver(this);
@@ -193,7 +193,7 @@ export class Solveur extends Nub implements Observer {
                 const t = this.targettedResult;
                 const p = this.searchedParameter;
                 if (n !== undefined && p !== undefined) {
-                    if (n !== p.parentNub && ! n.dependsOnNubResult(p.parentNub)) {
+                    if (n !== p.parentNub && !n.dependsOnNubResult(p.parentNub)) {
                         throw new Error(
                             "Solveur.update(): Nub to calculate is not linked to result of searchedParameter parent Nub"
                         );
@@ -225,7 +225,7 @@ export class Solveur extends Nub implements Observer {
                     if (t !== undefined && t !== "") {
                         if (
                             n.resultsFamilies
-                            && ! Object.keys(n.resultsFamilies).includes(t)
+                            && !Object.keys(n.resultsFamilies).includes(t)
                         ) {
                             throw new Error("Solveur.update(): targetted result T is not a declared extra result of Nub to calculate");
                         }
diff --git a/src/solveur/solveur_params.ts b/src/solveur/solveur_params.ts
index 2d283136..f996de7c 100644
--- a/src/solveur/solveur_params.ts
+++ b/src/solveur/solveur_params.ts
@@ -1,7 +1,7 @@
-import { ParamDefinition } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
-import { IObservable, Observable, Observer } from "../util/observer";
+import { ParamDefinition } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
+import { IObservable, Observable, Observer } from "../internal_modules";
 
 /**
  * Y = f(X)
diff --git a/src/structure/dever.ts b/src/structure/dever.ts
index 3ec2c332..3c092857 100644
--- a/src/structure/dever.ts
+++ b/src/structure/dever.ts
@@ -1,11 +1,11 @@
-import { CalculatorType } from "../compute-node";
-import { ParamCalculability } from "../param/param-definition";
-import { SessionSettings } from "../session_settings";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { DeverParams } from "./dever_params";
-import { ParallelStructure } from "./parallel_structure";
-import { loiAdmissiblesDever, LoiDebit } from "./structure_props";
+import { CalculatorType } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { SessionSettings } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { DeverParams } from "../internal_modules";
+import { ParallelStructure } from "../internal_modules";
+import { loiAdmissiblesDever, LoiDebit } from "../internal_modules";
 
 export class Dever extends ParallelStructure {
 
@@ -37,14 +37,14 @@ export class Dever extends ParallelStructure {
      */
     public Calc(sVarCalc: string | any, rInit?: number): Result {
         if (["Q", "Z1"].includes(sVarCalc)) {
-        this.bQcorrected = true;
+            this.bQcorrected = true;
         } else {
             this.bQcorrected = false;
         }
         this.bZcorrected = true;
         this.prms.Q.v = (this.prms.Q.V !== undefined && !isNaN(this.prms.Q.V)) ? this.prms.Q.V : 0;
         const r = super.Calc(sVarCalc, rInit);
-        if(!r.ok) {
+        if (!r.ok) {
             return r;
         }
         const QT = this.prms.Q.V;
@@ -86,8 +86,8 @@ export class Dever extends ParallelStructure {
                 r = super.CalcQ(iExcept);
                 i--;
             } while (i && Math.abs(r.vCalc - this.prms.Q.v) > SessionSettings.precision);
-            if(i===0) {
-                r = new Result(new Message(MessageCode.ERROR_DICHO_CONVERGE, {lastApproximation: r.vCalc}));
+            if (i === 0) {
+                r = new Result(new Message(MessageCode.ERROR_DICHO_CONVERGE, { lastApproximation: r.vCalc }));
             }
             return r;
         } else {
diff --git a/src/structure/dever_params.ts b/src/structure/dever_params.ts
index 7a186626..25fa465e 100644
--- a/src/structure/dever_params.ts
+++ b/src/structure/dever_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParallelStructureParams } from "./parallel_structure_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParallelStructureParams } from "../internal_modules";
 
 /**
  * Common parameters of hydraulic structure equations
diff --git a/src/structure/factory_structure.ts b/src/structure/factory_structure.ts
index f7e22968..849ca3ee 100755
--- a/src/structure/factory_structure.ts
+++ b/src/structure/factory_structure.ts
@@ -1,38 +1,37 @@
-import { ParallelStructure } from "./parallel_structure";
+import { ParallelStructure } from "../internal_modules";
 
 // Classes générales sur les structures
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure } from "./structure";
-import { LoiDebit, StructureProperties } from "./structure_props";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure } from "../internal_modules";
+import { LoiDebit, StructureProperties } from "../internal_modules";
 
 // Equations de débit
-import { StructureGateCem88d } from "./structure_gate_cem88d";
-import { StructureGateCem88v } from "./structure_gate_cem88v";
-import { StructureGateCunge80 } from "./structure_gate_cunge80";
-import { StructureKivi } from "./structure_kivi";
-import { StructureKiviParams } from "./structure_kivi_params";
-import { StructureOrificeFree } from "./structure_orifice_free";
-import { StructureOrificeFreeParams } from "./structure_orifice_free_params";
-import { StructureOrificeSubmerged } from "./structure_orifice_submerged";
-import { StructureOrificeSubmergedParams } from "./structure_orifice_submerged_params";
-import { StructureRectangularOrificeFree } from "./structure_rectangular_orifice_free";
-import { StructureRectangularOrificeSubmerged } from "./structure_rectangular_orifice_submerged";
-import { StructureTriangularTruncWeirFree } from "./structure_triangular_trunc_weir";
-import { TriangularTruncStructureParams } from "./structure_triangular_trunc_weir_params";
-import { StructureTriangularWeir } from "./structure_triangular_weir";
-import { StructureTriangularWeirBroad } from "./structure_triangular_weir_broad";
-import { TriangularStructureParams } from "./structure_triangular_weir_params";
-import { StructureVanLevLarinier } from "./structure_vanlev_larinier";
-import { StructureVanLevParams } from "./structure_vanlev_params";
-import { StructureVanLevVillemonte } from "./structure_vanlev_villemonte";
-import { StructureWeirCem88d } from "./structure_weir_cem88d";
-import { StructureWeirCem88v } from "./structure_weir_cem88v";
-import { StructureWeirCunge80 } from "./structure_weir_cunge80";
-import { StructureWeirFree } from "./structure_weir_free";
-import { StructureWeirSubmerged } from "./structure_weir_submerged";
-import { StructureWeirSubmergedLarinier } from "./structure_weir_submerged_larinier";
-import { StructureWeirVillemonte } from "./structure_weir_villemonte";
-import { SessionSettings } from "../session_settings";
+import { StructureGateCem88d } from "../internal_modules";
+import { StructureGateCem88v } from "../internal_modules";
+import { StructureGateCunge80 } from "../internal_modules";
+import { StructureKivi } from "../internal_modules";
+import { StructureKiviParams } from "../internal_modules";
+import { StructureOrificeFree } from "../internal_modules";
+import { StructureOrificeFreeParams } from "../internal_modules";
+import { StructureOrificeSubmerged } from "../internal_modules";
+import { StructureOrificeSubmergedParams } from "../internal_modules";
+import { StructureRectangularOrificeFree } from "../internal_modules";
+import { StructureRectangularOrificeSubmerged } from "../internal_modules";
+import { StructureTriangularTruncWeirFree } from "../internal_modules";
+import { TriangularTruncStructureParams } from "../internal_modules";
+import { StructureTriangularWeir } from "../internal_modules";
+import { StructureTriangularWeirBroad } from "../internal_modules";
+import { TriangularStructureParams } from "../internal_modules";
+import { StructureVanLevLarinier } from "../internal_modules";
+import { StructureVanLevParams } from "../internal_modules";
+import { StructureVanLevVillemonte } from "../internal_modules";
+import { StructureWeirCem88d } from "../internal_modules";
+import { StructureWeirCem88v } from "../internal_modules";
+import { StructureWeirCunge80 } from "../internal_modules";
+import { StructureWeirFree } from "../internal_modules";
+import { StructureWeirSubmerged } from "../internal_modules";
+import { StructureWeirSubmergedLarinier } from "../internal_modules";
+import { StructureWeirVillemonte } from "../internal_modules";
 
 export function CreateStructure(loiDebit: LoiDebit, parentNub?: ParallelStructure,
     dbg: boolean = false, nullParams: boolean = false
@@ -151,7 +150,7 @@ export function CreateStructure(loiDebit: LoiDebit, parentNub?: ParallelStructur
                 Infinity, // W = Infinity par défaut pour un seuil
                 nullParams
             );
-            if(loiDebit === LoiDebit.TriangularWeirFree) {
+            if (loiDebit === LoiDebit.TriangularWeirFree) {
                 ret = new StructureTriangularWeir(structTriangPrms, dbg);
             } else {
                 ret = new StructureTriangularWeirBroad(structTriangPrms, dbg);
diff --git a/src/structure/parallel_structure.ts b/src/structure/parallel_structure.ts
index 2d85e9b5..e22531ae 100644
--- a/src/structure/parallel_structure.ts
+++ b/src/structure/parallel_structure.ts
@@ -1,13 +1,13 @@
-import { CalculatorType } from "../compute-node";
-import { Session } from "../index";
-import { Nub } from "../nub";
-import { ParamCalculability } from "../param/param-definition";
-import { ParamsEquation } from "../param/params-equation";
-import { Result } from "../util/result";
-import { ParallelStructureParams } from "./parallel_structure_params";
-import { Structure } from "./structure";
-import { loiAdmissiblesOuvrages, LoiDebit } from "./structure_props";
-import { MessageCode, Message } from "../util/message";
+import { CalculatorType } from "../internal_modules";
+import { Session } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { ParallelStructureParams } from "../internal_modules";
+import { Structure } from "../internal_modules";
+import { loiAdmissiblesOuvrages, LoiDebit } from "../internal_modules";
+import { MessageCode, Message } from "../internal_modules";
 
 /**
  * Calcul de une ou plusieurs structures hydrauliques en parallèles
@@ -123,7 +123,7 @@ export class ParallelStructure extends Nub {
      */
     public Calc(sVarCalc: string | any, rInit?: number): Result {
         // if Calc() is called outside of CalcSerie(), _result might not be initialized
-        if (! this.result) {
+        if (!this.result) {
             this.initNewResultElement();
         }
         switch (sVarCalc) {
diff --git a/src/structure/parallel_structure_params.ts b/src/structure/parallel_structure_params.ts
index ec401c84..6492a2e6 100644
--- a/src/structure/parallel_structure_params.ts
+++ b/src/structure/parallel_structure_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * Common parameters of hydraulic structure equations
diff --git a/src/structure/rectangular_structure.ts b/src/structure/rectangular_structure.ts
index 075e956c..ec77126d 100644
--- a/src/structure/rectangular_structure.ts
+++ b/src/structure/rectangular_structure.ts
@@ -1,6 +1,6 @@
-import { ParamCalculability } from "../param/param-definition";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure } from "./structure";
+import { ParamCalculability } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure } from "../internal_modules";
 
 /**
  * Classe mère pour toutes les structures ayant une base rectangulaire (vannes, seuils)
diff --git a/src/structure/rectangular_structure_params.ts b/src/structure/rectangular_structure_params.ts
index 8a5b005c..ab68adfd 100644
--- a/src/structure/rectangular_structure_params.ts
+++ b/src/structure/rectangular_structure_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { StructureParams } from "./structure_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { StructureParams } from "../internal_modules";
 
 /**
  * Parameters for rectangular structures (common for all rectangular structure equations)
diff --git a/src/structure/structure.ts b/src/structure/structure.ts
index 52dc8ed7..78312bee 100644
--- a/src/structure/structure.ts
+++ b/src/structure/structure.ts
@@ -1,14 +1,14 @@
-import { ChildNub } from "../child_nub";
-import { CalculatorType } from "../compute-node";
-import { ParamCalculability, ParamDefinition, ParamFamily } from "../param/param-definition";
-import { Props } from "../props";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { StructureParams } from "./structure_params";
-import { LoiDebit, StructureProperties } from "./structure_props";
-import { ParallelStructure } from "./parallel_structure";
-import { round } from "../base";
-import { Nub } from "../nub";
+import { ChildNub } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { ParamCalculability, ParamDefinition, ParamFamily } from "../internal_modules";
+import { Props } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { StructureParams } from "../internal_modules";
+import { LoiDebit, StructureProperties } from "../internal_modules";
+import { ParallelStructure } from "../internal_modules";
+import { round } from "../internal_modules";
+import { Nub } from "../internal_modules";
 
 /**
  * Flow mode: weir or orifice flow
@@ -218,8 +218,8 @@ export abstract class Structure extends ChildNub {
                     return this._result;
                 default:
                     // Est-ce toujours vrai ? Nécessitera peut-être d'étendre la méthode
-                this.currentResultElement = new Result(0, this, flagsNull);
-                return this._result;
+                    this.currentResultElement = new Result(0, this, flagsNull);
+                    return this._result;
             }
         } else if (this.W === 0 && sVarCalc === "Z1") {
             // Si la vanne est fermée la cote amont est infinie
diff --git a/src/structure/structure_gate_cem88d.ts b/src/structure/structure_gate_cem88d.ts
index 6e5ee8a0..071d25e3 100644
--- a/src/structure/structure_gate_cem88d.ts
+++ b/src/structure/structure_gate_cem88d.ts
@@ -1,9 +1,9 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { RectangularStructure } from "./rectangular_structure";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructure } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation CEM88D : déversoir / orifice (pelle importante) Cemagref 1988
diff --git a/src/structure/structure_gate_cem88v.ts b/src/structure/structure_gate_cem88v.ts
index 8cd007c6..9af9b0ab 100644
--- a/src/structure/structure_gate_cem88v.ts
+++ b/src/structure/structure_gate_cem88v.ts
@@ -1,9 +1,9 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { RectangularStructure } from "./rectangular_structure";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructure } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation CEM88V : déversoir / vanne de fond (pelle faible) Cemagref 1988
@@ -78,7 +78,7 @@ export class StructureGateCem88v extends RectangularStructure {
     /**
      * Give the flow regime for Equation CEM88V : free, partially submerged or submerged flow
      */
-    protected getFlowRegime(): StructureFlowRegime  {
+    protected getFlowRegime(): StructureFlowRegime {
         const mode: StructureFlowMode = this.getFlowMode();
         // Weir have only two flow regimes: free and submerged flow
         let alfa: number;
@@ -87,7 +87,7 @@ export class StructureGateCem88v extends RectangularStructure {
                 alfa = 0.75;
                 break;
             case StructureFlowMode.ORIFICE:
-                alfa =  this.getAlfa(this.prms.h2.v);
+                alfa = this.getAlfa(this.prms.h2.v);
                 break;
         }
         if (this.prms.h2.v <= alfa * this.prms.h1.v) {
@@ -102,7 +102,7 @@ export class StructureGateCem88v extends RectangularStructure {
                 && this.prms.h2.v <= alfa * this.prms.h1.v + (1 - alfa) * this.W
             ) {
                 this.debug(
-                    "StructureWeirCem88v.getFlowRegime(h1="  + this.prms.h1.v
+                    "StructureWeirCem88v.getFlowRegime(h1=" + this.prms.h1.v
                     + ",h2=" + this.prms.h2.v + ",W=" + this.W + ")=PARTIAL");
                 return StructureFlowRegime.PARTIAL;
             } else {
diff --git a/src/structure/structure_gate_cunge80.ts b/src/structure/structure_gate_cunge80.ts
index b2a71ead..da72f261 100644
--- a/src/structure/structure_gate_cunge80.ts
+++ b/src/structure/structure_gate_cunge80.ts
@@ -1,9 +1,9 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { RectangularStructure } from "./rectangular_structure";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructure } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation Cunge80
@@ -41,7 +41,7 @@ export class StructureGateCunge80 extends RectangularStructure {
                 } else {
                     // Cd from Henderson, F.M., 1966. Open channel flow. MacMillan, New York.
                     // tslint:disable-next-line:variable-name
-                    const Cd = StructureGateCunge80.Cc / Math.sqrt( 1 + StructureGateCunge80.Cc * this.W / this.prms.h1.v)
+                    const Cd = StructureGateCunge80.Cc / Math.sqrt(1 + StructureGateCunge80.Cc * this.W / this.prms.h1.v)
                     v = this.prms.CdCunge.v * Cd * this.prms.L.v * Structure.R2G
                         * this.W * Math.pow(this.prms.h1.v, 0.5);
                     this.debug("StructureCunge80.Equation ORIFICE FREE Q=" + v);
diff --git a/src/structure/structure_kivi.ts b/src/structure/structure_kivi.ts
index a84bd2d2..a3751174 100644
--- a/src/structure/structure_kivi.ts
+++ b/src/structure/structure_kivi.ts
@@ -1,10 +1,10 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
-import { StructureKiviParams } from "./structure_kivi_params";
-import { LoiDebit } from "./structure_props";
-import { Villemonte } from "./villemonte";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { StructureKiviParams } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
+import { Villemonte } from "../internal_modules";
 
 export class StructureKivi extends Structure {
 
@@ -53,7 +53,7 @@ export class StructureKivi extends Structure {
 
     }
 
-     protected getFlowRegime(): StructureFlowRegime {
+    protected getFlowRegime(): StructureFlowRegime {
         if (this.prms.h2.v > 0) {
             return StructureFlowRegime.SUBMERGED;
         } else {
diff --git a/src/structure/structure_kivi_params.ts b/src/structure/structure_kivi_params.ts
index 4ca8791c..8174efa1 100644
--- a/src/structure/structure_kivi_params.ts
+++ b/src/structure/structure_kivi_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { StructureParams } from "./structure_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { StructureParams } from "../internal_modules";
 
 /**
  * Paramètres pour une équation de seuil rectangulaire Kindsvater-Carter & Villemonte (KIVI)
diff --git a/src/structure/structure_orifice_free.ts b/src/structure/structure_orifice_free.ts
index 2e73f509..b3e00ae7 100644
--- a/src/structure/structure_orifice_free.ts
+++ b/src/structure/structure_orifice_free.ts
@@ -1,9 +1,9 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "../structure/structure";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { StructureOrificeFreeParams } from "./structure_orifice_free_params";
-import { LoiDebit } from "./structure_props";
+import { ParamCalculability } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { StructureOrificeFreeParams } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation classique orifice dénoyé
diff --git a/src/structure/structure_orifice_free_params.ts b/src/structure/structure_orifice_free_params.ts
index 8515b299..a373231b 100644
--- a/src/structure/structure_orifice_free_params.ts
+++ b/src/structure/structure_orifice_free_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { StructureParams } from "../structure/structure_params";
+import { ParamDefinition } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { StructureParams } from "../internal_modules";
 
 export class StructureOrificeFreeParams extends StructureParams {
 
diff --git a/src/structure/structure_orifice_submerged.ts b/src/structure/structure_orifice_submerged.ts
index bf72df9e..781f323b 100644
--- a/src/structure/structure_orifice_submerged.ts
+++ b/src/structure/structure_orifice_submerged.ts
@@ -1,8 +1,8 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "../structure/structure";
-import { Result } from "../util/result";
-import { StructureOrificeSubmergedParams } from "./structure_orifice_submerged_params";
-import { LoiDebit } from "./structure_props";
+import { ParamCalculability } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { StructureOrificeSubmergedParams } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation classique orifice noyé
diff --git a/src/structure/structure_orifice_submerged_params.ts b/src/structure/structure_orifice_submerged_params.ts
index 55158a7d..5eaf169e 100644
--- a/src/structure/structure_orifice_submerged_params.ts
+++ b/src/structure/structure_orifice_submerged_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { StructureParams } from "../structure/structure_params";
+import { ParamDefinition } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { StructureParams } from "../internal_modules";
 
 /**
  * Parameters for rectangular structures (common for all rectangular structure equations)
diff --git a/src/structure/structure_params.ts b/src/structure/structure_params.ts
index 8a667f58..a9a48282 100644
--- a/src/structure/structure_params.ts
+++ b/src/structure/structure_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { ParamsEquation } from "../param/params-equation";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { ParamsEquation } from "../internal_modules";
 
 /**
  * Common parameters of hydraulic structure equations
diff --git a/src/structure/structure_props.ts b/src/structure/structure_props.ts
index 0ec01341..ffe82a92 100644
--- a/src/structure/structure_props.ts
+++ b/src/structure/structure_props.ts
@@ -1,4 +1,4 @@
-import { ParallelStructure } from "./parallel_structure";
+import { ParallelStructure } from "../internal_modules";
 
 export enum StructureType {
     SeuilRectangulaire,
diff --git a/src/structure/structure_rectangular_orifice_free.ts b/src/structure/structure_rectangular_orifice_free.ts
index fd66175e..3b092e79 100644
--- a/src/structure/structure_rectangular_orifice_free.ts
+++ b/src/structure/structure_rectangular_orifice_free.ts
@@ -1,10 +1,10 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { RectangularStructure } from "./rectangular_structure";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
+import { ParamCalculability } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructure } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation classique orifice dénoyé ("Vanne dénoyé")
diff --git a/src/structure/structure_rectangular_orifice_submerged.ts b/src/structure/structure_rectangular_orifice_submerged.ts
index d1715d16..2c09ae1d 100644
--- a/src/structure/structure_rectangular_orifice_submerged.ts
+++ b/src/structure/structure_rectangular_orifice_submerged.ts
@@ -1,9 +1,9 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { RectangularStructure } from "./rectangular_structure";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructure } from "../internal_modules"
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation classique orifice noyé ("Vanne noyé")
diff --git a/src/structure/structure_triangular_trunc_weir.ts b/src/structure/structure_triangular_trunc_weir.ts
index 5ef3cb3e..f65b03dc 100644
--- a/src/structure/structure_triangular_trunc_weir.ts
+++ b/src/structure/structure_triangular_trunc_weir.ts
@@ -1,9 +1,9 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
-import { TriangularTruncStructureParams } from "./structure_triangular_trunc_weir_params";
-import { Villemonte } from "./villemonte";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
+import { TriangularTruncStructureParams } from "../internal_modules";
+import { Villemonte } from "../internal_modules";
 
 /**
  * Equation classique seuil triangulaire (Villemonte)
diff --git a/src/structure/structure_triangular_trunc_weir_params.ts b/src/structure/structure_triangular_trunc_weir_params.ts
index a41c7dea..71325476 100644
--- a/src/structure/structure_triangular_trunc_weir_params.ts
+++ b/src/structure/structure_triangular_trunc_weir_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { StructureParams } from "./structure_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { StructureParams } from "../internal_modules";
 
 /**
  * Parameters for rectangular structures (common for all rectangular structure equations)
diff --git a/src/structure/structure_triangular_weir.ts b/src/structure/structure_triangular_weir.ts
index e4c445fb..00b98f84 100644
--- a/src/structure/structure_triangular_weir.ts
+++ b/src/structure/structure_triangular_weir.ts
@@ -1,10 +1,9 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
-import { TriangularStructureParams } from "./structure_triangular_weir_params";
-import { Villemonte } from "./villemonte";
-import { StructureTriangularWeirFree } from "./structure_triangular_weir_free";
+import { Result } from "../internal_modules";
+import { StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
+import { TriangularStructureParams } from "../internal_modules";
+import { Villemonte } from "../internal_modules";
+import { StructureTriangularWeirFree } from "../internal_modules";
 
 /**
  * Equation classique seuil triangulaire + Ennoiement Villemonte
diff --git a/src/structure/structure_triangular_weir_broad.ts b/src/structure/structure_triangular_weir_broad.ts
index 4f4e1101..f34f931c 100644
--- a/src/structure/structure_triangular_weir_broad.ts
+++ b/src/structure/structure_triangular_weir_broad.ts
@@ -1,10 +1,8 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
-import { TriangularStructureParams } from "./structure_triangular_weir_params";
-import { Villemonte } from "./villemonte";
-import { StructureTriangularWeirFree } from "./structure_triangular_weir_free";
+import { Result } from "../internal_modules";
+import { StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
+import { TriangularStructureParams } from "../internal_modules";
+import { StructureTriangularWeirFree } from "../internal_modules";
 
 /**
  * Equation classique seuil triangulaire + Ennoiement Villemonte
diff --git a/src/structure/structure_triangular_weir_free.ts b/src/structure/structure_triangular_weir_free.ts
index 15fee122..57a56186 100644
--- a/src/structure/structure_triangular_weir_free.ts
+++ b/src/structure/structure_triangular_weir_free.ts
@@ -1,7 +1,7 @@
-import { ParamCalculability } from "../param/param-definition";
-import { Result } from "../util/result";
-import { Structure, StructureFlowMode } from "./structure";
-import { TriangularStructureParams } from "./structure_triangular_weir_params";
+import { ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { Structure, StructureFlowMode } from "../internal_modules";
+import { TriangularStructureParams } from "../internal_modules";
 
 /**
  * Equation classique seuil triangulaire + Ennoiement Villemonte
diff --git a/src/structure/structure_triangular_weir_params.ts b/src/structure/structure_triangular_weir_params.ts
index 559f92bc..6da256d5 100644
--- a/src/structure/structure_triangular_weir_params.ts
+++ b/src/structure/structure_triangular_weir_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition } from "../param/param-definition";
-import { ParamDomain, ParamDomainValue } from "../param/param-domain";
-import { StructureParams } from "./structure_params";
+import { ParamDefinition } from "../internal_modules";
+import { ParamDomain, ParamDomainValue } from "../internal_modules";
+import { StructureParams } from "../internal_modules";
 
 /**
  * Parameters for rectangular structures (common for all rectangular structure equations)
diff --git a/src/structure/structure_vanlev_larinier.ts b/src/structure/structure_vanlev_larinier.ts
index 9fb690d9..002838b5 100644
--- a/src/structure/structure_vanlev_larinier.ts
+++ b/src/structure/structure_vanlev_larinier.ts
@@ -1,6 +1,6 @@
-import { LoiDebit } from "./structure_props";
-import { StructureVanLevParams } from "./structure_vanlev_params";
-import { StructureWeirSubmergedLarinier } from "./structure_weir_submerged_larinier";
+import { LoiDebit } from "../internal_modules";
+import { StructureVanLevParams } from "../internal_modules";
+import { StructureWeirSubmergedLarinier } from "../internal_modules";
 
 export class StructureVanLevLarinier extends StructureWeirSubmergedLarinier {
 
diff --git a/src/structure/structure_vanlev_params.ts b/src/structure/structure_vanlev_params.ts
index b9eec0bc..70afa608 100644
--- a/src/structure/structure_vanlev_params.ts
+++ b/src/structure/structure_vanlev_params.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition, ParamFamily } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
-import { RectangularStructureParams } from "./rectangular_structure_params";
+import { ParamDefinition, ParamFamily } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
 
 /**
  * Parameters of an automatic weir with crest elevation regulation
diff --git a/src/structure/structure_vanlev_villemonte.ts b/src/structure/structure_vanlev_villemonte.ts
index ca803315..da61603d 100644
--- a/src/structure/structure_vanlev_villemonte.ts
+++ b/src/structure/structure_vanlev_villemonte.ts
@@ -1,6 +1,6 @@
-import { LoiDebit } from "./structure_props";
-import { StructureVanLevParams } from "./structure_vanlev_params";
-import { StructureWeirVillemonte } from "./structure_weir_villemonte";
+import { LoiDebit } from "../internal_modules";
+import { StructureVanLevParams } from "../internal_modules";
+import { StructureWeirVillemonte } from "../internal_modules";
 
 export class StructureVanLevVillemonte extends StructureWeirVillemonte {
 
diff --git a/src/structure/structure_weir_cem88d.ts b/src/structure/structure_weir_cem88d.ts
index a35c7c87..783bf749 100644
--- a/src/structure/structure_weir_cem88d.ts
+++ b/src/structure/structure_weir_cem88d.ts
@@ -1,7 +1,7 @@
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { StructureFlowMode } from "./structure";
-import { StructureGateCem88d } from "./structure_gate_cem88d";
-import { LoiDebit } from "./structure_props";
+import { RectangularStructureParams } from "../internal_modules";
+import { StructureFlowMode } from "../internal_modules";
+import { StructureGateCem88d } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 export class StructureWeirCem88d extends StructureGateCem88d {
 
diff --git a/src/structure/structure_weir_cem88v.ts b/src/structure/structure_weir_cem88v.ts
index aa29d7f0..96d9eb48 100644
--- a/src/structure/structure_weir_cem88v.ts
+++ b/src/structure/structure_weir_cem88v.ts
@@ -1,7 +1,7 @@
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { StructureFlowMode } from "./structure";
-import { StructureGateCem88v } from "./structure_gate_cem88v";
-import { LoiDebit } from "./structure_props";
+import { RectangularStructureParams } from "../internal_modules";
+import { StructureFlowMode } from "../internal_modules";
+import { StructureGateCem88v } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 export class StructureWeirCem88v extends StructureGateCem88v {
 
diff --git a/src/structure/structure_weir_cunge80.ts b/src/structure/structure_weir_cunge80.ts
index c2fc2e4c..a74a0223 100644
--- a/src/structure/structure_weir_cunge80.ts
+++ b/src/structure/structure_weir_cunge80.ts
@@ -1,7 +1,7 @@
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { StructureFlowMode } from "./structure";
-import { StructureGateCunge80 } from "./structure_gate_cunge80";
-import { LoiDebit } from "./structure_props";
+import { RectangularStructureParams } from "../internal_modules";
+import { StructureFlowMode } from "../internal_modules";
+import { StructureGateCunge80 } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 export class StructureWeirCunge80 extends StructureGateCunge80 {
 
diff --git a/src/structure/structure_weir_free.ts b/src/structure/structure_weir_free.ts
index 6e588384..04269e83 100644
--- a/src/structure/structure_weir_free.ts
+++ b/src/structure/structure_weir_free.ts
@@ -1,9 +1,9 @@
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { RectangularStructure } from "./rectangular_structure";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructure } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation classique seuil dénoyé
diff --git a/src/structure/structure_weir_submerged.ts b/src/structure/structure_weir_submerged.ts
index 76f7969b..727c1ab3 100644
--- a/src/structure/structure_weir_submerged.ts
+++ b/src/structure/structure_weir_submerged.ts
@@ -1,9 +1,9 @@
-import { Message, MessageCode, ParamCalculability } from "../index";
-import { Result } from "../util/result";
-import { RectangularStructure } from "./rectangular_structure";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
+import { Message, MessageCode, ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructure } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation de la fente noyée
diff --git a/src/structure/structure_weir_submerged_larinier.ts b/src/structure/structure_weir_submerged_larinier.ts
index 72f0c5e6..22db3d6e 100644
--- a/src/structure/structure_weir_submerged_larinier.ts
+++ b/src/structure/structure_weir_submerged_larinier.ts
@@ -1,9 +1,9 @@
-import { Message, MessageCode, ParamCalculability } from "../index";
-import { Result } from "../util/result";
-import { RectangularStructure } from "./rectangular_structure";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
+import { Message, MessageCode, ParamCalculability } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructure } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { Structure, StructureFlowMode, StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
 
 /**
  * Equation de la fente noyé
diff --git a/src/structure/structure_weir_villemonte.ts b/src/structure/structure_weir_villemonte.ts
index 0599551f..eace90c7 100644
--- a/src/structure/structure_weir_villemonte.ts
+++ b/src/structure/structure_weir_villemonte.ts
@@ -1,10 +1,10 @@
-import { Message, MessageCode } from "../util/message";
-import { Result } from "../util/result";
-import { RectangularStructureParams } from "./rectangular_structure_params";
-import { StructureFlowRegime } from "./structure";
-import { LoiDebit } from "./structure_props";
-import { StructureWeirFree } from "./structure_weir_free";
-import { Villemonte } from "./villemonte";
+import { Message, MessageCode } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { StructureFlowRegime } from "../internal_modules";
+import { LoiDebit } from "../internal_modules";
+import { StructureWeirFree } from "../internal_modules";
+import { Villemonte } from "../internal_modules";
 
 export class StructureWeirVillemonte extends StructureWeirFree {
 
diff --git a/src/util/enum.ts b/src/util/enum.ts
index e3f865da..fc4a9cb0 100644
--- a/src/util/enum.ts
+++ b/src/util/enum.ts
@@ -18,7 +18,7 @@
  */
 // tslint:disable-next-line:max-line-length
 
-import { Session } from "../session";
+import { Session } from "../internal_modules";
 
 // see https://stackoverflow.com/questions/21293063/how-to-programmatically-enumerate-an-enum-type-in-typescript-0-9-5#21294925
 export class EnumEx {
diff --git a/src/util/interval.ts b/src/util/interval.ts
index 0f630c03..f7ca7445 100644
--- a/src/util/interval.ts
+++ b/src/util/interval.ts
@@ -1,5 +1,5 @@
-import { Message, MessageCode } from "./message";
-import { Debug } from "../base";
+import { Message, MessageCode } from "../internal_modules";
+import { Debug } from "../internal_modules";
 
 /**
  * Couple de valeurs ordonnées
@@ -8,7 +8,7 @@ export class Interval extends Debug {
 
     constructor(public val1: number, public val2: number, dbg: boolean = false) {
         super(dbg);
-     }
+    }
 
     public setValues(v1: number, v2: number) {
         this.val1 = v1;
diff --git a/src/util/log.ts b/src/util/log.ts
index f827625e..1398d152 100644
--- a/src/util/log.ts
+++ b/src/util/log.ts
@@ -1,5 +1,5 @@
-import { Message, MessageCode, MessageSeverity } from "./message";
-import { Result } from "./result";
+import { Message, MessageCode, MessageSeverity } from "../internal_modules";
+import { Result } from "../internal_modules";
 
 // tslint:disable-next-line:class-name
 export class cLog {
diff --git a/src/util/message.ts b/src/util/message.ts
index 2010f77c..7f5e56d0 100644
--- a/src/util/message.ts
+++ b/src/util/message.ts
@@ -1,5 +1,5 @@
-import { cLog } from "./log";
-import { Nub } from "../nub";
+import { cLog } from "../internal_modules";
+import { Nub } from "../internal_modules";
 
 export enum MessageCode {
 
@@ -193,7 +193,7 @@ export enum MessageCode {
     /** PAB : Erreur de calcul de la cote amont de la cloison %n% */
     ERROR_PAB_CALC_Z1_CLOISON,
 
-/** PAB : Erreur de calcul de la cote amont de la cloison aval */
+    /** PAB : Erreur de calcul de la cote amont de la cloison aval */
     ERROR_PAB_CALC_Z1_CLOISON_DW,
 
     /** Aucune ligne d'eau ne peut être calculée (aucun tirant d'eau à l'amont ni nà l'aval) */
diff --git a/src/util/number_array_iterator.ts b/src/util/number_array_iterator.ts
index e0e65c91..ff29835c 100644
--- a/src/util/number_array_iterator.ts
+++ b/src/util/number_array_iterator.ts
@@ -1,4 +1,4 @@
-import { INumberIterator } from "../param/param-value-iterator";
+import { INumberIterator } from "../internal_modules";
 
 /**
  * itérateur sur les valeurs prises par un tableau
diff --git a/src/util/number_array_reverse_iterator.ts b/src/util/number_array_reverse_iterator.ts
index 41e3fd56..2a33acca 100644
--- a/src/util/number_array_reverse_iterator.ts
+++ b/src/util/number_array_reverse_iterator.ts
@@ -1,5 +1,5 @@
-import { INumberIterator } from "../param/param-value-iterator";
-import { ArrayReverseIterator } from "../util/array_reverse_iterator";
+import { INumberIterator } from "../internal_modules";
+import { ArrayReverseIterator } from "../internal_modules";
 
 /**
  * itérateur sur les valeurs prises par un tableau (parcourues depuis la fin)
diff --git a/src/util/result.ts b/src/util/result.ts
index a5e5d79f..a1cb07b4 100644
--- a/src/util/result.ts
+++ b/src/util/result.ts
@@ -1,8 +1,8 @@
-import { JalhydObject } from "../jalhyd_object";
-import { Nub } from "../nub";
-import { cLog } from "./log";
-import { Message, MessageSeverity } from "./message";
-import { ResultElement } from "./resultelement";
+import { JalhydObject } from "../internal_modules";
+import { Nub } from "../internal_modules";
+import { cLog } from "../internal_modules";
+import { Message, MessageSeverity } from "../internal_modules";
+import { ResultElement } from "../internal_modules";
 
 /**
  * Result of a calculation.
@@ -88,7 +88,7 @@ export class Result extends JalhydObject {
         /* if (this._resultElements.length === 0) {
             throw new Error("Result.resultElement() : there are no result elements");
         } */
-        return this._resultElements[ this._resultElements.length - 1 ];
+        return this._resultElements[this._resultElements.length - 1];
     }
 
     /**
@@ -98,7 +98,7 @@ export class Result extends JalhydObject {
         if (this._resultElements.length === 0) {
             this._resultElements.push(r);
         } else {
-            this._resultElements[ this._resultElements.length - 1 ] = r;
+            this._resultElements[this._resultElements.length - 1] = r;
         }
         r.parent = this;
     }
@@ -265,7 +265,7 @@ export class Result extends JalhydObject {
      */
     public get hasOnlyErrors(): boolean {
         for (const r of this._resultElements) {
-            if (! r.hasErrorMessages()) {
+            if (!r.hasErrorMessages()) {
                 return false;
             }
         }
diff --git a/src/util/resultelement.ts b/src/util/resultelement.ts
index a89a3f56..313e464a 100644
--- a/src/util/resultelement.ts
+++ b/src/util/resultelement.ts
@@ -1,6 +1,6 @@
-import { cLog } from "./log";
-import { Message, MessageCode, MessageSeverity } from "./message";
-import { Result } from "./result";
+import { cLog } from "../internal_modules";
+import { Message, MessageSeverity } from "../internal_modules";
+import { Result } from "../internal_modules";
 
 /**
  * Calculation result for one iteration.
@@ -75,7 +75,7 @@ export class ResultElement {
     }
 
     public setVCalc(r: number, keepSymbol: boolean = false) {
-        if (! keepSymbol && this.parent && this.parent.symbol) {
+        if (!keepSymbol && this.parent && this.parent.symbol) {
             this._vCalcSymbol = this.parent.symbol;
         }
         this._values[this._vCalcSymbol] = r;
@@ -86,7 +86,7 @@ export class ResultElement {
      * after Equation() returned a ResultElement
      */
     public updateVCalcSymbol(s: string) {
-        if (! this.hasValues) {
+        if (!this.hasValues) {
             throw new Error("updateVCalcSymbol() : values map is empty");
         }
         const tmp = this.vCalc;
diff --git a/src/util/search_interval.ts b/src/util/search_interval.ts
index 1085d2e7..b3fae44f 100644
--- a/src/util/search_interval.ts
+++ b/src/util/search_interval.ts
@@ -1,12 +1,12 @@
-import { Dichotomie } from "../dichotomie";
-import { Interval } from "./interval";
-import { Message, MessageCode } from "./message";
+import { Dichotomie } from "../internal_modules";
+import { Interval } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
 
 export class SearchInterval extends Interval {
 
     private _initialValue: number;
 
-    private  _initialStep: number;
+    private _initialStep: number;
 
     private _step: number;
 
@@ -33,13 +33,13 @@ export class SearchInterval extends Interval {
     }
 
     public debug(s: string) {
-        if(this.DBG) {
-            super.debug("SearchInterval: "+s);
+        if (this.DBG) {
+            super.debug("SearchInterval: " + s);
         }
     }
 
     public reInit(rInit?: number) {
-        if(rInit !== undefined) {
+        if (rInit !== undefined) {
             this.val1 = rInit;
         } else {
             this.val1 = this._initialValue;
@@ -81,8 +81,8 @@ export class SearchInterval extends Interval {
     }
 
     public checkDirection() {
-        if(this._signDeltaTargets) { // !== undefined and !== 0
-            if(Math.sign(this.targets.val1 - this.targets.val2) !== this._signDeltaTargets) {
+        if (this._signDeltaTargets) { // !== undefined and !== 0
+            if (Math.sign(this.targets.val1 - this.targets.val2) !== this._signDeltaTargets) {
                 this.debug(this.toString() + " = [" + this.targets.val1 + "," + this.targets.val2 + "] sign changed!");
                 // We have gone too far, let's start again the search from here
                 if (this._step > 0) {
@@ -95,8 +95,8 @@ export class SearchInterval extends Interval {
             }
         }
         this._signDeltaTargets = Math.sign(this.targets.val1 - this.targets.val2)
-        this.debug(this.toString() + " = [" + this.targets.val1 + "," + this.targets.val2 + "]" + (this._signDeltaTargets > 0)?">0":"<0");
-        this.debug("_signDeltaTargets="+this._signDeltaTargets);
+        this.debug(this.toString() + " = [" + this.targets.val1 + "," + this.targets.val2 + "]" + (this._signDeltaTargets > 0) ? ">0" : "<0");
+        this.debug("_signDeltaTargets=" + this._signDeltaTargets);
     }
 
     public hasTargetValue(targ: number) {
@@ -109,7 +109,7 @@ export class SearchInterval extends Interval {
     }
 
     public updateTargets(bFatal: boolean = true) {
-        try{
+        try {
             let t1 = this.targets.val1;
             if (t1 === undefined || isNaN(t1)) {
                 t1 = this._dicho.CalculX(this.val1);
@@ -124,8 +124,8 @@ export class SearchInterval extends Interval {
                 this.debug(`updateTargets 2: f(${this.val2})=${t2}`)
             }
             this.targets.setValues(t1, t2);
-        } catch(e) {
-            if(bFatal) {
+        } catch (e) {
+            if (bFatal) {
                 throw e;
             } else {
                 this.reInit(this._lastGoodValue);
diff --git a/src/variated-details.ts b/src/variated-details.ts
index 5f004792..52949afc 100644
--- a/src/variated-details.ts
+++ b/src/variated-details.ts
@@ -1,6 +1,6 @@
-import { ParamDefinition } from "./param/param-definition";
-import { ParamValues } from "./param/param-values";
-import { INumberIterator } from "./param/param-value-iterator";
+import { ParamDefinition } from "./internal_modules";
+import { ParamValues } from "./internal_modules";
+import { INumberIterator } from "./internal_modules";
 
 export interface VariatedDetails {
     param: ParamDefinition;
diff --git a/src/verification/espece.ts b/src/verification/espece.ts
index 41112f79..dcc02623 100644
--- a/src/verification/espece.ts
+++ b/src/verification/espece.ts
@@ -1,26 +1,26 @@
-import { Nub } from "../nub";
-import { EspeceParams } from "./espece_params";
-import { CalculatorType } from "../compute-node";
-import { Observer } from "../util/observer";
-import { ParamCalculability } from "../param/param-definition";
-import { FishSpecies } from "./fish_species";
-import { Result } from "../util/result";
-import { FishPass } from "../fish_pass";
-import { StructureJetType, StructureFlowMode } from "../structure/structure";
-import { Message, MessageCode } from "../util/message";
-import { ParSimulation } from "../par/par_simulation";
-import { ParType } from "../par/par";
-import { MacroRugo, MacroRugoFlowType } from "../macrorugo/macrorugo";
-import { ResultElement } from "../util/resultelement";
-import { MacrorugoCompound } from "../macrorugo/macrorugo_compound";
-import { Pab } from "../pab/pab";
-import { LoiDebit, loiAdmissiblesCloisonAval } from "../structure/structure_props";
-import { RectangularStructureParams } from "../structure/rectangular_structure_params";
-import { ParallelStructure } from "../structure/parallel_structure";
-import { StructureOrificeSubmergedParams } from "../structure/structure_orifice_submerged_params";
-import { Cloisons } from "../pab/cloisons";
-import { isLowerThan, isGreaterThan } from "../base";
-import { DivingJetSupport } from "./diving-jet-support";
+import { Nub } from "../internal_modules";
+import { EspeceParams } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { Observer } from "../internal_modules";
+import { ParamCalculability } from "../internal_modules";
+import { FishSpecies } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { FishPass } from "../internal_modules";
+import { StructureJetType, StructureFlowMode } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { ParSimulation } from "../internal_modules";
+import { ParType } from "../internal_modules";
+import { MacroRugo, MacroRugoFlowType } from "../internal_modules";
+import { ResultElement } from "../internal_modules";
+import { MacrorugoCompound } from "../internal_modules";
+import { Pab } from "../internal_modules";
+import { LoiDebit, loiAdmissiblesCloisonAval } from "../internal_modules";
+import { RectangularStructureParams } from "../internal_modules";
+import { ParallelStructure } from "../internal_modules";
+import { StructureOrificeSubmergedParams } from "../internal_modules";
+import { Cloisons } from "../internal_modules";
+import { isLowerThan, isGreaterThan } from "../internal_modules";
+import { DivingJetSupport } from "../internal_modules";
 
 /**
  * Settings for a given fish species (or custom settings), to verify crossing capacities on fish passes.
@@ -87,15 +87,15 @@ export class Espece extends Nub implements Observer {
             DivingJetSupported: DivingJetSupport.SUPPORTED
         };
         this.presets[CalculatorType.Pab][FishSpecies.SPECIES_3a] =
-        this.presets[CalculatorType.Pab][FishSpecies.SPECIES_3b] = {
-            DHMaxS: 0.3,
-            BMin: 0.4,
-            PMinS: 1,
-            HMin: 0.4,
-            LMinS: 3.5,
-            PVMaxPrec: 150,
-            PVMaxLim: 200
-        };
+            this.presets[CalculatorType.Pab][FishSpecies.SPECIES_3b] = {
+                DHMaxS: 0.3,
+                BMin: 0.4,
+                PMinS: 1,
+                HMin: 0.4,
+                LMinS: 3.5,
+                PVMaxPrec: 150,
+                PVMaxLim: 200
+            };
         this.presets[CalculatorType.Pab][FishSpecies.SPECIES_3c] = {
             DHMaxS: 0.3,
             BMin: 0.15,
@@ -214,7 +214,7 @@ export class Espece extends Nub implements Observer {
             PVMaxPrec: 130,
             PVMaxLim: 150
         };
-        this.presets[CalculatorType.Pab][FishSpecies.SPECIES_9b] ={
+        this.presets[CalculatorType.Pab][FishSpecies.SPECIES_9b] = {
             DHMaxS: 0.2,
             BMin: 0.15,
             PMinS: 0.5,
@@ -289,10 +289,10 @@ export class Espece extends Nub implements Observer {
             VeMax: 2.5
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3a] =
-        this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3b] = {
-            YMin: 0.4,
-            VeMax: 2
-        };
+            this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3b] = {
+                YMin: 0.4,
+                VeMax: 2
+            };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3c] = {
             YMin: 0.15,
             VeMax: 2
@@ -306,28 +306,28 @@ export class Espece extends Nub implements Observer {
             VeMax: 2
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_5] =
-        this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_6] =
-        this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_7a] = {
-            YMin: 0.3,
-            VeMax: 2
-        };
+            this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_6] =
+            this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_7a] = {
+                YMin: 0.3,
+                VeMax: 2
+            };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_7b] = {
             YMin: 0.15,
             VeMax: 2
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8a] =
-        this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8b] =
-        this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8c] =
-        this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8d] = {
-            YMin: 0.3,
-            VeMax: 1.5
-        };
+            this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8b] =
+            this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8c] =
+            this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8d] = {
+                YMin: 0.3,
+                VeMax: 1.5
+            };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_9a] =
-        this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_9b] =
-        this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_10] = {
-            YMin: 0.2,
-            VeMax: 1.5
-        };
+            this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_9b] =
+            this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_10] = {
+                YMin: 0.2,
+                VeMax: 1.5
+            };
     }
 
     public get prms(): EspeceParams {
@@ -422,12 +422,12 @@ export class Espece extends Nub implements Observer {
                     hasAtLeastOneDivingJet = hasAtLeastOneDivingJet || this.hasJet(passB.downWall, StructureJetType.PLONGEANT);
 
                     let cpRetPAB: Result;
-                    let criteriaToCheck: string[] = [ /* "PVMaxPrec", "PVMaxLim", */ "HMin", "BMin" ];
+                    let criteriaToCheck: string[] = [ /* "PVMaxPrec", "PVMaxLim", */ "HMin", "BMin"];
                     if (hasAtLeastOneSurfaceJet) {
-                        criteriaToCheck = criteriaToCheck.concat([ "DHMaxS", "PMinS", "LMinS" ]);
+                        criteriaToCheck = criteriaToCheck.concat(["DHMaxS", "PMinS", "LMinS"]);
                     }
                     if (hasAtLeastOneDivingJet && this.divingJetSupported === DivingJetSupport.SUPPORTED) {
-                        criteriaToCheck = criteriaToCheck.concat([ "DHMaxP", "PMinP", "LMinP" ]);
+                        criteriaToCheck = criteriaToCheck.concat(["DHMaxP", "PMinP", "LMinP"]);
                     }
                     if (criteriaToCheck.length > 0) {
                         cpRetPAB = this.checkCriteriaPresence(criteriaToCheck);
@@ -499,7 +499,7 @@ export class Espece extends Nub implements Observer {
                         for (const devC of wca) {
                             ok = ok || devC;
                         }
-                        if (! ok) {
+                        if (!ok) {
                             const m = new Message(MessageCode.ERROR_VERIF_PAB_WALL_NOT_CROSSABLE);
                             m.extraVar.N = String(cloisonNumber); // keep the "+1" for readability
                             res.log.add(m);
@@ -533,7 +533,7 @@ export class Espece extends Nub implements Observer {
                     for (const devC of dwca) {
                         okDw = okDw || devC;
                     }
-                    if (! okDw) {
+                    if (!okDw) {
                         const m = new Message(MessageCode.ERROR_VERIF_PAB_DW_NOT_CROSSABLE);
                         res.log.add(m);
                     }
@@ -545,10 +545,10 @@ export class Espece extends Nub implements Observer {
 
                     // Check criteria presence, depending on baffle type
                     let parCriteria: string[] = [];
-                    if ([ ParType.PLANE, ParType.FATOU ].includes(passR.parType)) {
-                        parCriteria = [ "YMinPB" ];
-                    } else if ([ ParType.SUPERACTIVE, ParType.CHEVRON ].includes(passR.parType)) {
-                        parCriteria = [ "YMinSB" ];
+                    if ([ParType.PLANE, ParType.FATOU].includes(passR.parType)) {
+                        parCriteria = ["YMinPB"];
+                    } else if ([ParType.SUPERACTIVE, ParType.CHEVRON].includes(passR.parType)) {
+                        parCriteria = ["YMinSB"];
                     }
                     if (parCriteria.length > 0) {
                         const cpRetPAR = this.checkCriteriaPresence(parCriteria);
@@ -558,15 +558,15 @@ export class Espece extends Nub implements Observer {
                     }
 
                     // 1. species groups 3a, 3b, 7b are discouraged
-                    if ([ FishSpecies.SPECIES_3a, FishSpecies.SPECIES_3b, FishSpecies.SPECIES_7b ].includes(this.species)) {
+                    if ([FishSpecies.SPECIES_3a, FishSpecies.SPECIES_3b, FishSpecies.SPECIES_7b].includes(this.species)) {
                         res.log.add(new Message(MessageCode.WARNING_VERIF_PAR_SPECIES_GROUP));
                     }
 
                     // 2. water level
                     let minY = 0; // if this.prms.YMin(P|S)B is undefined, "skip test"
-                    if ([ ParType.PLANE, ParType.FATOU ].includes(passR.parType)) {
+                    if ([ParType.PLANE, ParType.FATOU].includes(passR.parType)) {
                         minY = this.prms.YMinPB.singleValue;
-                    } else if ([ ParType.SUPERACTIVE, ParType.CHEVRON ].includes(passR.parType)) {
+                    } else if ([ParType.SUPERACTIVE, ParType.CHEVRON].includes(passR.parType)) {
                         minY = this.prms.YMinSB.singleValue;
                     }
                     if (isLowerThan(r.values.h, minY, 1e-3)) {
@@ -583,7 +583,7 @@ export class Espece extends Nub implements Observer {
                     const passMRC = this._passToCheck as MacrorugoCompound;
 
                     // Check criteria presence
-                    const cpRetMRC = this.checkCriteriaPresence([ "YMin", "VeMax" ]);
+                    const cpRetMRC = this.checkCriteriaPresence(["YMin", "VeMax"]);
                     if (cpRetMRC !== undefined) {
                         return cpRetMRC;
                     }
@@ -607,7 +607,7 @@ export class Espece extends Nub implements Observer {
                         }
                         apronNumber++;
                     }
-                    if (! atLeastOneOK) {
+                    if (!atLeastOneOK) {
                         res.vCalc = 0;
                         res.log.add(new Message(MessageCode.ERROR_VERIF_MRC_AT_LEAST_ONE_APRON));
                     } else {
@@ -630,7 +630,7 @@ export class Espece extends Nub implements Observer {
 
                 case CalculatorType.MacroRugo:
                     // Check criteria presence
-                    const cpRetMR = this.checkCriteriaPresence([ "YMin", "VeMax" ]);
+                    const cpRetMR = this.checkCriteriaPresence(["YMin", "VeMax"]);
                     if (cpRetMR !== undefined) {
                         return cpRetMR;
                     }
@@ -835,18 +835,18 @@ export class Espece extends Nub implements Observer {
         let structureNumber = 1;
         for (const device of wall.structures) {
             const hasOtherDevicesThanWeirs = (
-                this.hasJet(wall, [ StructureJetType.PLONGEANT ])
-                || (this.getDevicesHavingLaw(wall, [ LoiDebit.WeirVillemonte, LoiDebit.WeirSubmergedLarinier ]).length < wall.structures.length)
+                this.hasJet(wall, [StructureJetType.PLONGEANT])
+                || (this.getDevicesHavingLaw(wall, [LoiDebit.WeirVillemonte, LoiDebit.WeirSubmergedLarinier]).length < wall.structures.length)
             );
             const hasOtherDevicesThanOrifice = (
-                this.hasJet(wall, [ StructureJetType.PLONGEANT ])
+                this.hasJet(wall, [StructureJetType.PLONGEANT])
                 || (this.getDevicesHavingLaw(wall, LoiDebit.OrificeSubmerged).length < wall.structures.length)
             );
             const iRes = device.result.resultElements[this.indexToCheck];
             const jt = iRes.values.ENUM_StructureJetType;
             if (jt !== StructureJetType.PLONGEANT) {
                 // Surface jets: for "Villemonte 1947" ("échancrure") or "Fente noyée (Larinier 1992)" ("fente") only
-                if ([ LoiDebit.WeirVillemonte, LoiDebit.WeirSubmergedLarinier ].includes(device.loiDebit)) {
+                if ([LoiDebit.WeirVillemonte, LoiDebit.WeirSubmergedLarinier].includes(device.loiDebit)) {
                     const structParams = device.prms as RectangularStructureParams;
                     if (this.prms.BMin.singleValue !== undefined && isLowerThan(structParams.L.v, this.prms.BMin.singleValue, 1e-3)) {
                         let m: Message;
@@ -968,8 +968,8 @@ export class Espece extends Nub implements Observer {
      * Returns true if given wall has at least one device with a jet type among given jetTypes
      */
     protected hasJet(wall: ParallelStructure, jetTypes: StructureJetType | StructureJetType[]): boolean {
-        if (! Array.isArray(jetTypes)) {
-            jetTypes = [ jetTypes ];
+        if (!Array.isArray(jetTypes)) {
+            jetTypes = [jetTypes];
         }
         for (const device of wall.structures) {
             const deviceJetType = device.result.resultElements[this.indexToCheck].values.ENUM_StructureJetType;
@@ -1003,8 +1003,8 @@ export class Espece extends Nub implements Observer {
      */
     protected getDevicesHavingLaw(wall: ParallelStructure, l: LoiDebit | LoiDebit[]): number[] {
         const idxs: number[] = [];
-        if (! Array.isArray(l)) {
-            l = [ l ];
+        if (!Array.isArray(l)) {
+            l = [l];
         }
         for (let i = 0; i < wall.structures.length; i++) {
             if (l.includes(wall.structures[i].loiDebit)) {
@@ -1127,7 +1127,7 @@ export class Espece extends Nub implements Observer {
                 found = false;
                 for (const pt of Object.keys(this.presets)) {
                     const preset = this.presets[pt];
-                    if (! found && preset !== undefined && preset[sp] !== undefined && preset[sp][p.symbol] !== undefined) {
+                    if (!found && preset !== undefined && preset[sp] !== undefined && preset[sp][p.symbol] !== undefined) {
                         found = true;
                         // if (preset[sp][p.symbol] !== undefined) console.log(`-> setting ${p.symbol} to ${preset[sp][p.symbol]}`);
                         // apply preset
diff --git a/src/verification/espece_params.ts b/src/verification/espece_params.ts
index 0e300ea2..5962a5f0 100644
--- a/src/verification/espece_params.ts
+++ b/src/verification/espece_params.ts
@@ -1,6 +1,6 @@
-import { ParamsEquation } from "../param/params-equation";
-import { ParamDefinition } from "../param/param-definition";
-import { ParamDomainValue } from "../param/param-domain";
+import { ParamsEquation } from "../internal_modules";
+import { ParamDefinition } from "../internal_modules";
+import { ParamDomainValue } from "../internal_modules";
 
 export class EspeceParams extends ParamsEquation {
 
diff --git a/src/verification/verificateur.ts b/src/verification/verificateur.ts
index 69a7df26..2d062163 100644
--- a/src/verification/verificateur.ts
+++ b/src/verification/verificateur.ts
@@ -1,17 +1,16 @@
-import { Nub } from "../nub";
-import { Observer } from "../util/observer";
-import { CalculatorType } from "../compute-node";
-import { Session } from "../session";
-import { Result } from "../util/result";
-import { Espece } from "./espece";
-import { FishSpecies } from "./fish_species";
-import { EspeceParams } from "./espece_params";
-import { FishPass } from "../fish_pass";
-import { Message, MessageCode } from "../util/message";
-import { VerificateurParams } from "./verificateur_params";
-import { ParSimulation } from "../par/par_simulation";
-import { isGreaterThan } from "../base";
-import { ParType } from "../par/par";
+import { Nub } from "../internal_modules";
+import { CalculatorType } from "../internal_modules";
+import { Session } from "../internal_modules";
+import { Result } from "../internal_modules";
+import { Espece } from "../internal_modules";
+import { FishSpecies } from "../internal_modules";
+import { EspeceParams } from "../internal_modules";
+import { FishPass } from "../internal_modules";
+import { Message, MessageCode } from "../internal_modules";
+import { VerificateurParams } from "../internal_modules";
+import { ParSimulation } from "../internal_modules";
+import { isGreaterThan } from "../internal_modules";
+import { ParType } from "../internal_modules";
 
 export class Verificateur extends Nub {
 
@@ -21,7 +20,7 @@ export class Verificateur extends Nub {
     /** Index of the reseult element to verify, when the pass to verify is variating */
     protected _variatingIndex = 0;
 
-    constructor(dbg: boolean = false)  {
+    constructor(dbg: boolean = false) {
         super(new VerificateurParams(), dbg);
         this.setCalculatorType(CalculatorType.Verificateur);
         // UID of Session Nub to verify
@@ -100,7 +99,7 @@ export class Verificateur extends Nub {
         // calc pass systematically
         this.nubToVerify.CalcSerie();
         // check presence of valid result
-        if (! this.nubToVerify.result || ! this.nubToVerify.result.ok) {
+        if (!this.nubToVerify.result || !this.nubToVerify.result.ok) {
             this._result = new Result(undefined, this);
             this._result.addMessage(new Message(MessageCode.ERROR_VERIF_ERRORS_IN_PASS));
             return this._result;
@@ -116,7 +115,7 @@ export class Verificateur extends Nub {
 
         const passIsVarying = this.nubToVerify.resultHasMultipleValues();
 
-        if (! passIsVarying) { // pass to verify is not varying
+        if (!passIsVarying) { // pass to verify is not varying
             // prepare a new slot to store results
             this._variatingIndex = 0;
             this.initNewResultElement();
@@ -147,7 +146,7 @@ export class Verificateur extends Nub {
                 this.initNewResultElement();
 
                 // don't calculate if this iteration has errors
-                if (! this.nubToVerify.result.resultElements[this._variatingIndex].ok) {
+                if (!this.nubToVerify.result.resultElements[this._variatingIndex].ok) {
                     const m = new Message(MessageCode.ERROR_VERIF_VARYING_ERRORS_IN_PASS);
                     m.extraVar.i = String(l + 1);
                     this._result.resultElement.addMessage(m);
@@ -155,7 +154,7 @@ export class Verificateur extends Nub {
                 } else {
                     // calculate
                     this.doCalc(undefined); // résultat dans this.currentResult (resultElement le plus récent)
-                    if (! this._result.resultElement.ok) {
+                    if (!this._result.resultElement.ok) {
                         stageErrorsCount++;
                     }
                 }
@@ -195,7 +194,7 @@ export class Verificateur extends Nub {
         // species-independent check: PAR
         if (this.nubToVerify instanceof ParSimulation) {
             // 1. slope
-            const maxS = [ ParType.PLANE, ParType.FATOU ].includes(this.nubToVerify.parType) ? 0.2 : 0.16;
+            const maxS = [ParType.PLANE, ParType.FATOU].includes(this.nubToVerify.parType) ? 0.2 : 0.16;
             if (isGreaterThan(this.nubToVerify.prms.S.v, maxS)) {
                 const m = new Message(MessageCode.ERROR_VERIF_PAR_SLOPE);
                 m.extraVar.S = this.nubToVerify.prms.S.v;
@@ -223,13 +222,13 @@ export class Verificateur extends Nub {
             const subRes = speciesNub.Calc();
 
             let m: Message;
-            const isCustomSpecies = ! (this.speciesList[spIndex] in FishSpecies);
+            const isCustomSpecies = !(this.speciesList[spIndex] in FishSpecies);
             // if at least one error log in Espece nub, add one at Verificateur level, so that .ok is false
             // else add a success info message
             if (isCustomSpecies) {
                 if (subRes.resultElements[this._variatingIndex].hasErrorMessages()) {
                     m = new Message(MessageCode.ERROR_VERIF_SPECIES_NUB_KO);
-                } else if(subRes.resultElements[this._variatingIndex].hasWarningMessages()) {
+                } else if (subRes.resultElements[this._variatingIndex].hasWarningMessages()) {
                     m = new Message(MessageCode.WARNING_VERIF_SPECIES_NUB_OK_BUT);
                 } else {
                     m = new Message(MessageCode.INFO_VERIF_SPECIES_NUB_OK);
@@ -238,7 +237,7 @@ export class Verificateur extends Nub {
             } else {
                 if (subRes.resultElements[this._variatingIndex].hasErrorMessages()) {
                     m = new Message(MessageCode.ERROR_VERIF_SPECIES_GROUP_KO);
-                } else if(subRes.resultElements[this._variatingIndex].hasWarningMessages()) {
+                } else if (subRes.resultElements[this._variatingIndex].hasWarningMessages()) {
                     m = new Message(MessageCode.WARNING_VERIF_SPECIES_GROUP_OK_BUT);
                 } else {
                     m = new Message(MessageCode.INFO_VERIF_SPECIES_GROUP_OK);
@@ -252,7 +251,7 @@ export class Verificateur extends Nub {
                 v = 0;
             }
 
-            spIndex ++;
+            spIndex++;
         }
         r.vCalc = v;
 
diff --git a/src/verification/verificateur_params.ts b/src/verification/verificateur_params.ts
index cdca1cbf..4a04db76 100644
--- a/src/verification/verificateur_params.ts
+++ b/src/verification/verificateur_params.ts
@@ -1,4 +1,4 @@
-import { ParamsEquation } from "../param/params-equation";
+import { ParamsEquation } from "../internal_modules";
 
 export class VerificateurParams extends ParamsEquation {
 }
-- 
GitLab