diff --git a/src/base.ts b/src/base.ts
index 9a77b28048a31bb519dec6971f7e9a64c8cdb9f7..e1b32c23c3653fa71f7271df6dfdf49db0788ccd 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 adef909ae4e19d2385f97289a503415fe7b62300..0059070447b2b2205ff01f0cb5c831e5bcd1f60c 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 2f5548eee221383924047f364fc4aed29e67e33d..15b0402cd61879f221f3ec4ea036b329e5f2186e 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 1170c0874b9fb7ccec9342ee3150ac9120252ed0..1b5ea89734685bdb0e48041f36e8969476e96d4d 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 961237ddf5a137ec3120b81c7d6d5f02da3986da..c9709c5c36d87b381488887b1e50c242af0733ae 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 d61b0f4a5e2706242764a7785ae6aa64f3451b6c..a46556bdadd2acebc0fc62a2c614a8babe5f7040 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 e4bd6ccef5b9f9fd9773950f349c57a0e0817dca..83911b9c70cc697759a8e4159e8cda93b961567a 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 a4bb12e8e04646b726e915a0abc37f0fb5372df6..115d1f6b0afb84c288dbbc5278f15e2bd98cc8d4 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 6f17f46dc3e0028a487a7fdb1400222a0230fcd4..096b642a149dc1f3d4097c416488241b97cda9b4 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 0000000000000000000000000000000000000000..c0694861dee7972b84726fa02fffdcc5e68f439f
--- /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 e15a97ff854a4d7055828c0dbc60ac24c9c7e549..fe5df0d25023b716b022a7a1a363c18cea744f4d 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 1fb7f99c488b6bcca3dd28d405ca942d4768bf59..783d51123d574614392fa9affe8aab168df80bf7 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 d2738e3bc307c35fe5ae8b9d7dd7d7aa17ea2ebf..36937b11a1218abdca5b2bf88550d41b6a24de7e 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 8bb42420bcc182e483dd73a359722e86822e819e..8c35f597c5402d85778be79ddce215eafe86b4b5 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 4c80085da29da805eda7c02abe3af34430094b1e..2c9c95a2c8443f02f524b00d202a00ebc5c9b416 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 0a16b571c0955248b8ebfb06f7f773c0344085c2..7be71618f58b71da83beb687c51ee6a1959a4603 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 2813f7f04f4809b4e135411440f0e83df4c5a67b..13e588d2c467663dda06f13d3234d8f329194a38 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 310b27b7dd26499d5220f39c33414e2acfb94400..859dbc19248258979510ca0451cf1646dde09edd 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 b59c5bc03a1b7e94fc8825f6a47f7a1c8633a2f8..598fa5b3bea70a4d6e0847ec8221e459c8ee5244 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 a6b80ae1ce2331aca1454526a7719f4af469ad93..75a8d0c1481c61a7e74e14cd43b2452c8a114a77 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 606210c5f970d45a98df5579cf82fc0a646b62c8..4050e21c213332a009d2d2b8c8034c10400b939d 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 cf448ec199c1b06237b2665fa45ab8d3c368bba4..a4cc6c0cc1fc112991562d35539beb1357e0e84e 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 dff5d1df9395d38076c038b2bfd27727113d73d8..80fb6aeef4fec2658d31774d98b5e98114cd7fd0 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 6eaadca835118334729c0735ff3c73c9b10f6070..56b95a2e9eae927b5838a7b85ac0709f8708ab69 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 2cb0b7624ab0a3699dbc45c4b890e0ab5957d76d..604b9c473b5a1a1e6f49f1b240947f530e33d393 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 30f176969cbb808ba0461d8e0210db4de319b617..026c9779cbf3be29e833f48d59229f9395522841 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 0b6ed3335e942383487078f274b88cd86451c320..f3412228a348752517d7f9cc0440dc105dc2ff78 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 59bf16f956145b965660024105a5a188f0f293b7..c449b55c2a5829459f4f052254091298ad3ab686 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 ed84bd477acf4e29df104577f4a6665d1a0c89c6..007b5dd62f9072399d09fc1ffd5ac5b3701dd35c 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 c06070d2c2bd73e03a8dcf9389ba912918b29bf0..a4b68aeaafff29c8e9b82ad85fccbd6831d03c1d 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 f47737d26bbcf531f8fb0bb8305ddef3ffe6fc6c..db8ba8bc5d122e09679d6062d04bd7ced37ac0ae 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 4666bb50c094dd303da61c8af0829aefb60000ec..ce690dd3ee2667868c3ee811d2e2728b82ca39f3 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 817708d7ac7ca5bb5af4f7aba3af97d63b5a1616..0c043b268252ee5ae5f23b9971a18b77b36c3314 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 ffacb2190cdaa7243d94df028d04ae5136dff69e..940346fc20096f72b546351950ece124b32e09e5 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 44dc3068fe0c33b712537c9d4b8055d612966f2c..e9ab2695cfd78ceaeffd31faf3e6738a33c4251a 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 2bf1e507542696255a9a65d8e3b525d0551d915a..984501163d2571c0945ef57555f2171d641100ad 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 d369c58dc2bcaa99d53bde668290775cf4b6eeec..e827d6f513f1710e196232e02c62c09ad37972e3 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 579a60b0009ffcedf4d1239801174f84525b48fb..0b674bebb21b2befdb0c397a4762e305b2d9becb 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 1f5a623cd1c8f0737fbeb2a5b44de72716ebc477..3f5ea1bbf04248e0c3051e5938617461e046e245 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 e522e80857fcc47057bb76c8f8062119a05a3c5f..c96857fc761b332d7cb262699f8e1ac37674c97b 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 4bf5fa3d54c06f5ddf34753b95bbda9ab9cdb263..b5a954c02976ccacb2637ac1d120f9de0def08cc 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 a563f418222ed10bb70d498be9f6707b0f2704b8..bc4dffc5be5ffdfebdd5e4ea9364aa04854bb8e8 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 725057ae8424efce7cb004f288ae2a8eb250bf46..12e4293d551d3593565d34582b61cc492ab9a4f4 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 3de86f5d6a4b24e8e130bd645929dbc5f1d3af9f..6d046f3243ca9e2ac62aff0c234a0dd0b387a639 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 eafb2f4b108d9317d2b474649d3b374ab4d2fd07..c54eda30758ed032abe09832b00448e09ae3f168 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 745ba78d088750bfc4aeb9e12e3732e6411316a9..13f6e6d97f0d42c59a793b842bb8d998d42455bc 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 5aff1413768e324bfd2d193cbbbb5c707653e803..f801ad556fad44e97f2995f578cb0315b13d8731 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 a4c1092256befa76043b294dd0636d217d707b29..18217f49f102c0602fbac495ae13ed286493007f 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 5112111b0f831362c4555bbdc8a5875d1ac4ace1..578842f06e6862de5f099683acc95ecdc31443d6 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 7d97fb01aaa3522da1be9c9cafcc57977c4f434b..7ee5cbfcaee4ca615e1c3fe0df34adc56818a120 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 dc7c597687c05868a4c6c65061ed538af93b09ef..8c7b1983d2d4a45df395f35e1d514f8a4c719783 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 adec79dc0047ac37ac3ba1a88d19f362159e9ebc..15025ea7dfaa191f6c8920f3a28f24b551b634ba 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 f3b2ee103696196596b32ed26e5cac1e4650fd9c..16d4cced82cc63e25064dd839d428f1dcee7fcdb 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 dc243866162a6ee89c7c5b4f5005d9bc816fa719..5fd9fa02c8aef734d57bbbc33400231f66226ef7 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 20f26e37711b106ecd540d67cac3421f727e44cd..f2787ab2fa067dc02261f04b3c744676ee993596 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 d39d15cc0323f9c9ee2c9a841725a36eb3be5674..a6de143fb1632dbe2350a6dd5b343868e00f36ac 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 fe4d7647a43487a7fab1bcb8cfc89dcafe05755e..da52306f500de759a6852683bd0d44b370d3905c 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 952b8221ec0df8d917fa9a93e10517c02aaf1d9d..2a8c6a438d5fb003a3aaeaf65e04fd5969bc754c 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 c6943fae4fd48ccdd313e315040b937c4f377be0..1c11ccb8b3072710792e13f1ba6a2bb35700ee20 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 5d94a1c1176883e44f393d44724515235cbb07a1..7da9d5786d327e86c9930948a05b869ce72a2049 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 16538e1de2997d58085cea45ad26d0fdba1ee7e5..f448e4991210b53e12ba0b39e4969fa5ad7e9753 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 ff1a2f3c7791e7b45de7575d3c142a15476e25f2..1eb540f66a6f01cc97991c7005a4f08777e810a8 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 9bec54080b6dba172ce4277bf409a3eb238e0f27..a5d47b6fb6f8aa43d653bcf8a10cb6c97582d14a 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 3483a010c5f68f8c2aa97b3143e69ed96dec2ebb..0aaa35e885287b5c0f50068fcc43989519b78f09 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 17b11dcf8e2722a1bddc90ede1cad47935e9ab70..a7f2f506f312a4b9c5332ac325c9bf566c19c8e2 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 06bf1510c0e269991907d0f89d84d277a3e12187..78b4ebc692b7829443ae607c8d623b0e636ec450 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 bf84a1a394c3e8b2c381539cfd804a92169c0ec2..8793ad2c0071e10bcadc1030c5211b473fddf2bb 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 97b8494484acec409d59d64d089d6bddc3e4e2cc..b8133785e605b3f975ca10f93a5d7bc6fcdc6b3e 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 a6d7ad8385528193b1c24ac16223a86472eaf7b4..39fb57b6fff5bd16946113e8bce79c58ffdd3d16 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 ce2c29a40021f14d062d27c7e7854aceba6e349a..436813c1c5c5bc4717bf890dd3785ff05338aad7 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 42ea8566d364dbe0e8b57e419b71e620e9f07d14..63933ef69413eb66476e4d2020320758e52f35b3 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 8ffc30cd26d36ca2f459755df3e54612b548334c..45bdadc0cd2d07f3cb1589633c43a9897677f416 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 b20de3af765e1bc01d1acdb15fb6fa648f3fe0a0..cc6fbc7886dfd86b4f5481849e11e8cd44b52bce 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 47b47718a3e6796199ef52b7abf42b3e6dde77e0..10d8a3cbcea6ca1371b31e0f3e0cd08f378d0ace 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 0bfbd6c4f126914f1181524fa13301a78d27d140..a7891a1426b26ee549bd37167951c5c2d7be78ba 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 2c0999a4475571d0b77cc8a129d2adde152675e0..9ec8700906bc9e4e36619672e430c6ba155edb5b 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 1f9b17a1da6f4e65461de93c8592da31de397395..260d2a1e5eeff40aa0aec26cbd24207f84279ceb 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 2c9b0abe8040d44c3483a29c962fe7e1cd490501..6939a9fed3e69279c388b59887f0bba3166851f0 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 03e8059211c181bca799ad12fcc05e1f5904e277..18907050c89a3433d5d80df9c62528529c604462 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 64d07a7236ce5d873b8d702d6baae694238e01f3..85aa837ba5a9bf496a8c69faa5f7e941f0b0d2f3 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 d2c6ec24526df4d7c929ec46836b01df72765424..56835873c88b6cfe7e8ee624a984d5ce9cc97236 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 3e60df5b18a8117b61c84339a1114e990f4a7a39..01e27181eed68745869eb8a2ceee243aadb842fe 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 f7f272492eb11a972b04061fa29f994a7e3607fb..852f9d2f8fac8d69032c8bbe631133e3eceed975 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 5e2549fdf4561bf92ddb1e75901ef6fff81da188..16849b018000482904c4bed241a1cce47a0c38fc 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 02cd6ade25da5b3ee0cbbdbadf87db707eb66d17..aee816be91f568d0d18653e7fc77aa02f651a753 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 103b959a6f30b93baae833544fca274899015329..4ea0fe9ca295b48f3a51ca56b89638a0d04eca0e 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 ea1cb884724b1c4fa10be405e4fb0411f1e768a4..43a01047eba050a9956e89222695b90831803ea8 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 f9e975caad18da42b32b96807cf622c8bd831819..e8b2923bbdd4ca9fb17ec30d8b7d44db27af7263 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 13e5787e4cdbb0a0d7b7b08337df42971a80c3f6..fe950e7e8cbd66aff796c473efc813e5977526f7 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 954138386c13d7306b98ae18ffc06985079b78dc..53580105c5bb91de481ce4d63f5a9d7865689219 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 39686a438367e776388c85835c924966b4f460e0..18c82a1d0ed1599ff6e88ac8d8b9c809e238c248 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 0f8d169a4d59731cb7e10131c29d122117d413fc..b12f1bc23855b3143abdd0d4d6941bf89c8acdf6 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 d477be6a179fcde2b2e15cc63abca8e38d74b872..b91f3c84b6a330e1e7b17d32e5d8f1d75155b9ff 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 05022067bf926834847cdd151948edf8c4e792ea..d99bbdfcc1a0a0c8bab9304e7d7d5a3458bba2d2 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 88d0d812c71900684e75b5334bc5df3fbfd632cc..87b9da78c4a0aa977f244ed5b50c454418e6c016 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 07b39d44c2c5abe3d5c7a234c59d7c05e2c0bec1..6a5f18c26ac2194c114fe128f420b6bedd0c5f15 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 64188ac9c202caaf23f689438939a791a2c35e52..12305ba2ad9b8f231e1eb7b1c799bd7ee331768e 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 5cc04e51b4ead4475e4b3342a5d7555d1cb2a401..e3f91d22dd22fee1a911fb6c7a45c96bb267c43d 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 3bb09a498c88976792d0634e3f42090ee9783d01..868e28dfe4c6bec48a7fdffab4fe7cce576023a4 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 bf94f2bdfee8d4cf8dfc77c7542cf77ae6a31347..520e8054d08071622ee25bcbb2993adb85e82dbe 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 af7ba42307d477b428b218eb05b471cfcd991ada..8925a51d4632c8ec3bf6bb05cce9ebb03f95938f 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 6db56950ffc97381b539c65f2d3f1cccb2a3720d..e40c9af1478a75e28bb8f504ad8c27ebd0b5f3e8 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 2d2831361e1fbdf7b44890c15d4a88286ed2b0b3..f996de7c03511d217d16ec76a4579684c922fc79 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 3ec2c332d4ed104d3d8d530545d81593f7926ff7..3c092857f384868e46dd7d72419654e055ccd76e 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 7a186626c5ee63c0aa321760d657982ce0af69f4..25fa465e83b214ab4daee31d553cfac20c2d5ec7 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 f7e229685cf10d9214d9b5ff2101613873190e17..849ca3ee347a7c8dd318c9b821ed8f89605d7445 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 2d85e9b5c4b49a6eef00c791911bcf86947b3885..e22531ae1800083cad07623f6e869d42146e2a73 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 ec401c849506c3d0e725e3575e29685a1db07b09..6492a2e6344da4cd75fac8fddb811031103b4f03 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 075e956ca703738865dcee6eae8fbd1a86e7c361..ec77126d3b3b49b65fb4ded443ace042fdff4603 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 8a5b005ccac0181288091d0848e50ea09a6f2450..ab68adfd042153a314b419c6604a2c950cd51f50 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 52dc8ed713e910ca1ae5d45067ad91c47295171e..78312bee20c9217c15f8cd2352104bf928e0ebba 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 6e5ee8a0af82ebeac1ee7a292e6a6d9a09522a58..071d25e345a4b4b1de2f68130e14cb8dda066a88 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 8cd007c63cea461b22e8199b28bf0aaa0de92a06..9af9b0ab57a1ced30ce401bebe8e1fcf2ceb2742 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 b2a71ead139c3dbec020799e619bf62a7bdf7114..da72f2612780475bab55b58626da71cf552ac89a 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 a84bd2d268fe769bd46728b1c26f50a6adbdbcb2..a3751174eaee24ddecf13bdfd3bce11afdf66d27 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 4ca8791cf0e08b63f4cd910533a3ec36eff0e07c..8174efa1cb94ffd1154a1c020c37c7228fdd63a9 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 2e73f509702b4249d3d0b94b6a53c1c0aff83dd7..b3e00ae74ec11c9f8ee8e834c3b3af322c62b379 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 8515b299cacc6b1d91e14291f173ac771ac6901c..a373231b9272505a91075970d647906a4d3e8d71 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 bf72df9ef711a3b6a5e7d371f16c937694cf5630..781f323b1df4ec534842030f343f4fa2351c9686 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 55158a7d1d2e7b2e33ae5d8b86392c01d686df12..5eaf169e658fac5b571dfbebbb7e0e49b05e5f6b 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 8a667f58e5050c2d34149db4c3d01017b4d9d0d5..a9a4828225ab41cd7579c730c945f03c00154eb7 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 0ec013415ce5e1068fd7e4c1eedf4cb43ea179bc..ffe82a92cf80094be7a0cbaded85b9a9a2972adb 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 fd66175efee5197aabcdc11a11b8fbdf97af2658..3b092e7946b4d73c9431f0b175d276f245c87238 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 d1715d168ea2bafb0026c99bdcf340f6a65c5d7d..2c09ae1d80c9afe78b115e638044689077c83d0a 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 5ef3cb3ea606c5865250358d2ca57857a12acff9..f65b03dc3d56c5cf4c86e0f316dfb10e06c35c57 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 a41c7dea9e14927c23a8447bc66bb1cda11e349a..71325476228db304b7f92d48e0bcc8a378c9eee3 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 e4c445fbc60f0667eefbcbd2de6d2ba4d2457d4e..00b98f8406a2a615789a16989167b5f718f5fd42 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 4f4e11012322659100f78c626172bd4ddb3c6cbc..f34f931c494167c63c67ca542949bfcbdc0cd95e 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 15fee12233d36a2f3e82b0cc4190080626d33d4e..57a561863a0a30e254eb544c184e6dbd7036dedb 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 559f92bca8975fb768e12b27745f09ae85dcf9c1..6da256d5a5d62ee190652ae810bb4fb85f380eca 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 9fb690d91bb1865962f87e87015bf68c96311a9b..002838b5da4ebd2a8c547da824bdb83945119dc4 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 b9eec0bc29bfd5e7d33b82273bfe95e2070297bb..70afa608f14d8b6446e6453cd68143f263a15a51 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 ca803315edffb96077e3187656d5e11201c59897..da61603d45c692b508ef5f50da3bd155a21a3416 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 a35c7c87b08a0d54e69d5d6309172726cd457fe8..783bf749d9bbda20403587e98cacb2350162bda3 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 aa29d7f06ab9a706268deec2c77d90cff4e9a0d2..96d9eb485b9bfa34f5e3e7c3ef6d62d0a9294700 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 c2fc2e4c5dbb376e9080f89064998b9edcd6d065..a74a02236dd25d1682e9fe3c8515a7d16eb1f4ae 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 6e588384ba5642cde1ac74ed8dfc95e5ca858e5a..04269e83f962ff67745a12456af6f739bf03e132 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 76f7969b7b1b84fea88a41adef9c5de396395202..727c1ab3ad0d17b7767b3c3de772020d5dcc4328 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 72f0c5e69bfcdcd680fd5cf39c4d6df23be04888..22db3d6e11bc9093cf323f3e523547de24dfe485 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 0599551f0a5360d87e27e3847e58d21b313cd348..eace90c79ceab4639ec0af7c829e670b4ccec3a0 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 e3f865da791990bf3b1147a0d76adfce3d0569df..fc4a9cb0fe8f692f1f95cdf0cf5d67c9b90ef06f 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 0f630c03b0c9a6cbbdf9723433b62f7f57199ff6..f7ca744577f38ab5850958cdc1e48b100b4fb17b 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 f827625e9fdc8e2f790289b0eebb3c9ccb0de301..1398d152a2da3180422c4085352b09c193804910 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 2010f77cc0db8eab192e4bb4f2d7158f446b8435..7f5e56d009dbb1af5b43d03ce361acccd5354cbb 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 e0e65c91bfef36b74dde43eec0f82e6806f58d7a..ff29835c4e176cc3d24d2eb8f2038d25aabffa2a 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 41e3fd56aeda9b5a67812379704718c56a4f8dff..2a33accac020da3e145084a53e8b7b4035f8a14d 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 a5e5d79f586e51713bf380b0e6394fb4ec5edecf..a1cb07b4cc629a7b0abb449db9af160a71d133a0 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 a89a3f56c017f903f9ecee870b0888220a1002d7..313e464a111501518922a4641ad1aa1718ac2b2e 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 1085d2e716008429eca98352e700018f6f6262f4..b3fae44f0739c81295d184063d6497951621aa99 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 5f0047927f7bf9f44471b1bd6bcc11df6210e12d..52949afcf84764726215c779c18fcbcccaea16f6 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 41112f790a19026467981bd7aec72b71f5e91741..dcc026235524bdb02f3642b440e20569ee45616e 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 0e300ea2dff9b21d7f6dcacb020d8bef5f1d0bd1..5962a5f08c1f8848f5d2222810d1799463e2bafe 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 69a7df262a43dc6dc362bf896a3a9e97017871eb..2d0621630af097bfa1aa020f9a5225346e9aacc8 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 cdca1cbf313981a85b8e527b8e678b8c839cd5ba..4a04db7631fd9b71fbae59cf276ed315d9afb4dd 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 {
 }