diff --git a/src/app/components/fieldset-container/fieldset-container.component.ts b/src/app/components/fieldset-container/fieldset-container.component.ts
index ccfedcec387e31e40bb4f141f2b30797459dbc1d..36c8199c3098e601edbafad47f6f2bb9706e8cf7 100644
--- a/src/app/components/fieldset-container/fieldset-container.component.ts
+++ b/src/app/components/fieldset-container/fieldset-container.component.ts
@@ -12,10 +12,9 @@ import { FormulaireDefinition } from "../../formulaire/definition/form-definitio
 export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
 
     public get title(): string {
-        if (this._container === undefined) {
-            return undefined;
+        if (this._container) {
+            return this._container.label;
         }
-        return this._container.label;
     }
 
     public get fieldsets() {
diff --git a/src/app/components/generic-calculator/calc-name.component.ts b/src/app/components/generic-calculator/calc-name.component.ts
index 21e9d67ac354a551f1432f3422421d273ffcce74..860ed423f6b21c8e557598303328ab4748ff4aef 100644
--- a/src/app/components/generic-calculator/calc-name.component.ts
+++ b/src/app/components/generic-calculator/calc-name.component.ts
@@ -23,10 +23,9 @@ export class CalculatorNameComponent extends GenericInputComponent {
      * retourne la valeur du modèle
      */
     protected getModelValue(): any {
-        if (this._form === undefined) {
-            return undefined;
+        if (this._form) {
+            return this._form.calculatorName;
         }
-        return this._form.calculatorName;
     }
 
     /**
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 2a383b84cee6fde556393d6edc4bd36417f3b396..bdde67531b94434b28f8b54c93b6d4cbeefd1379 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -132,7 +132,6 @@ export class GenericCalculatorComponent extends BaseComponent implements OnInit,
         if (this.hasForm) {
             return this.formulaireService.getLocalisedTitleFromCalculatorType(this._formulaire.calculatorType);
         }
-        return undefined;
     }
 
     public get uitextCalculer() {
diff --git a/src/app/components/generic-input/generic-input.component.ts b/src/app/components/generic-input/generic-input.component.ts
index 19e797a40b99bcf14759eeaf52ab06c4fed3948a..cd3e9e7dcbfe8478df253eeb4cc1a0b6037caf79 100644
--- a/src/app/components/generic-input/generic-input.component.ts
+++ b/src/app/components/generic-input/generic-input.component.ts
@@ -332,7 +332,6 @@ export class TestInputComponent extends GenericInputComponent {
     protected modelToUI(v: any): string {
         if (typeof (v) === "number")
             return String(v);
-        return undefined;
     }
 
     protected validateUIValue(ui: string): { isValid: boolean, message: string } {
@@ -398,7 +397,6 @@ export class Test2InputComponent extends GenericInputComponent {
     protected modelToUI(v: any): string {
         if (typeof (v) === "number")
             return String(v);
-        return undefined;
     }
 
     protected validateUIValue(ui: string): { isValid: boolean, message: string } {
diff --git a/src/app/components/param-field-line/param-field-line.component.ts b/src/app/components/param-field-line/param-field-line.component.ts
index d9d1a49cfcc88be1898cfea3d1946beb1c0a4dc3..82608891a6bc58b9f5fe9135a6f89b7930ac7e66 100644
--- a/src/app/components/param-field-line/param-field-line.component.ts
+++ b/src/app/components/param-field-line/param-field-line.component.ts
@@ -92,7 +92,6 @@ export class ParamFieldLineComponent implements OnChanges {
         if (this.param.radioState === ParamRadioConfig.CAL) {
             return "checked";
         }
-        return undefined;
     }
 
     /**
@@ -102,7 +101,6 @@ export class ParamFieldLineComponent implements OnChanges {
         if (this.param.radioState === ParamRadioConfig.LINK) {
             return "checked";
         }
-        return undefined;
     }
 
     /**
diff --git a/src/app/components/param-link/param-link.component.ts b/src/app/components/param-link/param-link.component.ts
index 256558035ff3170f49f973fea7332db36e221de4..b0246dee55b77439a1e2c7b1e2f293a08e7a3d5d 100644
--- a/src/app/components/param-link/param-link.component.ts
+++ b/src/app/components/param-link/param-link.component.ts
@@ -91,14 +91,10 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
      */
     public get currentLinkedParamLabel(): string {
         if (this._linkableParams !== undefined) {
-            if (this._currentIndex === -1 || this._currentIndex >= this._linkableParams.length) {
-                return undefined;
+            if (this._currentIndex !== -1 && this._currentIndex < this._linkableParams.length) {
+                return this.selectItemLabel(this._linkableParams[this._currentIndex]);
             }
-
-            return this.selectItemLabel(this._linkableParams[this._currentIndex]);
         }
-
-        return undefined;
     }
 
     /**
@@ -208,6 +204,7 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
     public update(sender: any, data: any) {
         if (sender instanceof FormulaireService) {
             switch (data["action"]) {
+                // scan newly created form for available linkable params
                 case "createForm":
                     this.updateParamList();
                     break;
diff --git a/src/app/components/param-values/ngparam-max.component.ts b/src/app/components/param-values/ngparam-max.component.ts
index 9a261c0de65b97f0a11a503f2f35784145bd59af..d878dd68b385f2e02267ce9eff4d3d67dc34cb51 100644
--- a/src/app/components/param-values/ngparam-max.component.ts
+++ b/src/app/components/param-values/ngparam-max.component.ts
@@ -23,10 +23,9 @@ export class NgParamMaxComponent extends GenericInputComponent {
     }
 
     protected getModelValue(): any {
-        if (this._param === undefined) {
-            return undefined;
+        if (this._param) {
+            return this._param.maxValue;
         }
-        return this._param.maxValue;
     }
 
     protected setModelValue(sender: any, v: any) {
@@ -54,7 +53,6 @@ export class NgParamMaxComponent extends GenericInputComponent {
         if (typeof (v) === "number") {
             return String(v);
         }
-        return undefined;
     }
 
     protected validateUIValue(ui: string): { isValid: boolean, message: string } {
diff --git a/src/app/components/param-values/ngparam-min.component.ts b/src/app/components/param-values/ngparam-min.component.ts
index ee3186e2f6c40d1e61e4e411585543927a8861d1..687df8d0ecefb457a1456af08cc45b9d1c1ccc84 100644
--- a/src/app/components/param-values/ngparam-min.component.ts
+++ b/src/app/components/param-values/ngparam-min.component.ts
@@ -23,10 +23,9 @@ export class NgParamMinComponent extends GenericInputComponent {
     }
 
     protected getModelValue(): any {
-        if (this._param === undefined) {
-            return undefined;
+        if (this._param) {
+            return this._param.minValue;
         }
-        return this._param.minValue;
     }
 
     protected setModelValue(sender: any, v: any) {
@@ -54,7 +53,6 @@ export class NgParamMinComponent extends GenericInputComponent {
         if (typeof (v) === "number") {
             return String(v);
         }
-        return undefined;
     }
 
     protected validateUIValue(ui: string): { isValid: boolean, message: string } {
diff --git a/src/app/components/param-values/ngparam-step.component.ts b/src/app/components/param-values/ngparam-step.component.ts
index 28f203c29cb63f79dad16f98b9e75d5d48bfc78e..ac0fd27fd70cacf6071ed5ff0dedac9a1c3d5db0 100644
--- a/src/app/components/param-values/ngparam-step.component.ts
+++ b/src/app/components/param-values/ngparam-step.component.ts
@@ -23,10 +23,9 @@ export class NgParamStepComponent extends GenericInputComponent {
     }
 
     protected getModelValue(): any {
-        if (! this._param) {
-            return undefined;
+        if (this._param) {
+            return this._param.stepValue;
         }
-        return this._param.stepValue;
     }
 
     protected setModelValue(sender: any, v: any) {
diff --git a/src/app/components/param-values/value-list.component.ts b/src/app/components/param-values/value-list.component.ts
index 2f692e5b9b2d8d51357712e27867f8b6a1d0254b..fa2fd379e9008245a8a5058d98b8d2cf0cfc0e51 100644
--- a/src/app/components/param-values/value-list.component.ts
+++ b/src/app/components/param-values/value-list.component.ts
@@ -22,10 +22,9 @@ export class ValueListComponent extends GenericInputComponent {
     }
 
     protected getModelValue(): any {
-        if (this._param === undefined || this._param === null) {
-            return undefined;
+        if (! this._param) {
+            return this._param.valueList;
         }
-        return this._param.valueList;
     }
 
     protected setModelValue(sender: any, l: any) {
diff --git a/src/app/formulaire/definition/concrete/form-parallel-structures.ts b/src/app/formulaire/definition/concrete/form-parallel-structures.ts
index 4d5697248f5612f0a8fa5eb16aa24ac64d12132a..8e563f732817ee5ff32917aefa00ea3a4764fb40 100644
--- a/src/app/formulaire/definition/concrete/form-parallel-structures.ts
+++ b/src/app/formulaire/definition/concrete/form-parallel-structures.ts
@@ -223,11 +223,9 @@ export class FormulaireParallelStructure extends FormulaireDefinition {
             }
         }
 
-        if (select === undefined) {
-            return undefined;
+        if (select !== undefined) {
+            return { "select": select, "entry": selectEntry };
         }
-
-        return { "select": select, "entry": selectEntry };
     }
 
     /**
@@ -244,8 +242,6 @@ export class FormulaireParallelStructure extends FormulaireDefinition {
                 }
             }
         }
-
-        return undefined;
     }
 
     /**
diff --git a/src/app/formulaire/definition/form-compute-fixedvar.ts b/src/app/formulaire/definition/form-compute-fixedvar.ts
index 873488018729347e8e215267e12933ac9a3eda7f..7b64ec15da3be9b36d88fe94169fe05562f711c0 100644
--- a/src/app/formulaire/definition/form-compute-fixedvar.ts
+++ b/src/app/formulaire/definition/form-compute-fixedvar.ts
@@ -26,7 +26,6 @@ export class FormComputeFixedVar extends FormCompute {
                 return p;
             }
         }
-        return undefined;
     }
 
     private getComputedParameter(): NgParameter {
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index 5272f07723504df9c869ae780282e90324e4e3d8..2a1e305afa902ee19e67ddc945b4945ff7767a27 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -132,8 +132,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         if (json["type"] === "options") {
             return json[option];
         }
-
-        return undefined;
     }
 
     public afterParseFieldset(fs: FieldSet) {
@@ -223,7 +221,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
     /**
      * 2ème passe d'analyse de la configuration
      */
-    public parseConfig(json: {}) {
+    public parseConfig(json?: {}) {
         if (json !== undefined) {
             this._jsonConfig = json;
         }
@@ -292,7 +290,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
                 }
             }
         }
-        return undefined;
     }
 
     public getDisplayedParamFromState(st: ParamRadioConfig): NgParameter {
@@ -303,7 +300,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
                 }
             }
         }
-        return undefined;
     }
 
     public getDisplayedParamListFromState(st: ParamRadioConfig): NgParameter[] {
@@ -321,7 +317,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         if (res instanceof Field) {
             return res;
         }
-        return undefined;
     }
 
     public getParameterValue(symbol: string): number {
diff --git a/src/app/formulaire/dependency/dependency.ts b/src/app/formulaire/dependency/dependency.ts
index 368ac35a0078f35f65e8ea9b807484535e93223e..fe7426f55bed6b9e75365cce30b1a5e9c1aad49a 100644
--- a/src/app/formulaire/dependency/dependency.ts
+++ b/src/app/formulaire/dependency/dependency.ts
@@ -28,7 +28,6 @@ export abstract class Dependency {
             }
             parentNode = parentNode.parent;
         }
-        return undefined;
     }
 
     protected get masterElement(): FormulaireElement {
diff --git a/src/app/formulaire/fieldset.ts b/src/app/formulaire/fieldset.ts
index ed645c97bd70120813916c1d8e63e160e7d9b9bd..64bbcf197b24934c531d313e0f15e11f9752f61f 100644
--- a/src/app/formulaire/fieldset.ts
+++ b/src/app/formulaire/fieldset.ts
@@ -76,7 +76,6 @@ export class FieldSet extends FormulaireElement implements Observer {
                 n++;
             }
         }
-        return undefined;
     }
 
     public get isValid(): boolean {
@@ -314,8 +313,6 @@ export class FieldSet extends FormulaireElement implements Observer {
                 }
             }
         }
-
-        return undefined;
     }
 
     public getNodeParameterValue(symbol: string): number {
@@ -346,7 +343,6 @@ export class FieldSet extends FormulaireElement implements Observer {
                 return FormulaireElement.removePrefix(value, selectFieldId + "_");
             }
         }
-        return undefined;
     }
 
     // interface Observer
diff --git a/src/app/formulaire/formulaire-element.ts b/src/app/formulaire/formulaire-element.ts
index 0b55e21b8e97f9317ea61dae26c5e7d97fd100e0..c2347b6ee8574b780f72c560a8e617024fd087bf 100644
--- a/src/app/formulaire/formulaire-element.ts
+++ b/src/app/formulaire/formulaire-element.ts
@@ -36,7 +36,6 @@ export abstract class FormulaireElement extends FormulaireNode {
             const l = prefix.length;
             return s.substr(l, s.length - l);
         }
-        return undefined;
     }
 
     constructor(parent: FormulaireNode) {
diff --git a/src/app/formulaire/formulaire-node.ts b/src/app/formulaire/formulaire-node.ts
index 44245795e47a5a381c6f6382603a7d392ff6f5ac..627e38f7d9225419a966d63c0d0d96801dede6c0 100644
--- a/src/app/formulaire/formulaire-node.ts
+++ b/src/app/formulaire/formulaire-node.ts
@@ -70,8 +70,6 @@ export abstract class FormulaireNode implements IObservable {
                 return res;
             }
         }
-
-        return undefined;
     }
 
     /**
@@ -88,8 +86,6 @@ export abstract class FormulaireNode implements IObservable {
                 return res;
             }
         }
-
-        return undefined;
     }
 
     /**
diff --git a/src/app/formulaire/select-field.ts b/src/app/formulaire/select-field.ts
index 3e3bd899d61a39a0613b217174e73a1f540842c3..3bfadc6cf957cd3df97395df4cb7344aafd4ee75 100644
--- a/src/app/formulaire/select-field.ts
+++ b/src/app/formulaire/select-field.ts
@@ -35,7 +35,6 @@ export class SelectField extends Field {
                 return se;
             }
         }
-        return undefined;
     }
 
     public getValue() {