diff --git a/FEM/finite_element_1.v b/FEM/finite_element_1.v
index 3ebca6bc554c600b57a5cac02bf4204ea74f8847..3b429a8b806e7e930b7c16bfef3832291ad35b48 100644
--- a/FEM/finite_element_1.v
+++ b/FEM/finite_element_1.v
@@ -146,7 +146,7 @@ Record FE : Type := mk_FE {
   ndof_pos : (0 < ndof)%nat ;
   nvtx_pos : (0 < nvtx)%nat ;
 
-  vtx : 'I_nvtx -> Rd ; (* vertices of geometrical element *)
+  vtx : 'I_nvtx -> Rd (* -> E R_MS *) ; (* vertices of geometrical element *)
   K_geom : Rd -> Prop (* := convex_envelop nvtx vtx TODO *) ;
                         (* geometrical element *)
 
@@ -388,18 +388,18 @@ Section FE_Reference_Def.
 (** construct the FE_reference *)
 Variable fe_ref : FE. 
 
-Local Definition K_ref := K_geom fe_ref.
+Local Definition K_ref : Rd fe_ref -> Prop := K_geom fe_ref.
 
-(*Local Definition P_ref_new := PolySpace n fe_ref.*)
+(*Local Definition P_approx_ref_new := PolySpace n fe_ref.*)
 
-Local Definition P_ref : F (d fe_ref) -> Prop := P_approx fe_ref.
+Local Definition P_approx_ref : F (d fe_ref) -> Prop := P_approx fe_ref.
 
 Local Definition sigma_ref : 'I_(ndof fe_ref) -> F (d fe_ref) -> R
   := sigma fe_ref.
 
 Local Definition nvtx_ref : nat := nvtx fe_ref.
 
-Local Definition vtx_ref : 'I_(nvtx fe_ref) -> Rd fe_ref:= vtx fe_ref.
+Local Definition vtx_ref : 'I_(nvtx_ref) -> Rd fe_ref := vtx fe_ref.
 
 (* before we had this basis for E generi
 Variable Lag_ref_old : 'I_(nvtx_ref) -> E -> R. (* The poly Lagrange basis *)*)
@@ -407,11 +407,15 @@ Variable Lag_ref_old : 'I_(nvtx_ref) -> E -> R. (* The poly Lagrange basis *)*)
 (* Lagrange basis *)
  (* SB: doute de type de Lag_ref *)
 (* Fonctions de formes géométriques *)
+
+(* Lag_ref' : 'I_(nvtx_ref) ->  F (d fe_ref).?*)
 Variable Lag_ref : 'I_(nvtx_ref) ->  Rd fe_ref (*F (d fe_ref)*) -> R. 
 
 Context {Rmu : NormedModule R_AbsRing}.
 
 (* Why Rmu ? *)
+(* 'I_(nvtx_ref) -> F (d fe_ref) ? *)
+Variable theta_ref' : 'I_(nvtx_ref) -> F (d fe_ref).
 Variable theta_ref : 'I_(nvtx_ref) -> F (d fe_ref) -> Rmu.
 
 Hypothesis H_Lag_ref : forall (i j : 'I_(nvtx_ref)),
@@ -424,9 +428,10 @@ Definition interp_op_local_ref := fun v : F (d fe_ref) =>
   interp_op_local fe_ref v.
 
 (** construct the FE_current *)
-Variable vtx_cur : 'I_(nvtx_ref) -> F (d fe_ref). (*vertices of current geometrical element*)
+(* vtx_cur_old : 'I_(nvtx_ref) -> F (d fe_ref) (* E MS *) ? *)
+Variable vtx_cur : 'I_(nvtx_ref) -> Rd fe_ref. (*vertices of current geometrical element*)
 
-Local Definition ndof_cur := ndof fe_ref.
+Local Definition ndof_cur : nat := ndof fe_ref.
 
 Definition T_geom  (*: F (d fe_ref)-> F (d fe_ref)*) := fun x_ref =>
   \big[plus%R/zero]_(i < nvtx_ref) scal (Lag_ref i x_ref) (vtx_cur i).
@@ -507,7 +512,7 @@ Definition cur_to_ref : fct_ModuleSpace -> F (d fe_ref) (* E *) -> Rmu :=
 Lemma is_linear_mapping_cur_to_ref : is_linear_mapping cur_to_ref.
 Proof. easy. Qed.
 (*
-Definition P_cur := preimage_FD cur_to_ref P_ref is_linear_mapping_cur_to_ref.*)
+Definition P_cur := preimage_FD cur_to_ref P_approx_ref is_linear_mapping_cur_to_ref.*)
 
 Definition sigma_cur : 'I_(ndof fe_ref) -> fct_ModuleSpace -> R := fun i pol => sigma_ref i (cur_to_ref pol).
 
@@ -606,6 +611,7 @@ Variable node_lagrange : 'I_(nb_node_lagrange) -> E. (* nodes of geometrical ele
 
 (* Variable k_lagrange : nat. (* maximum degree of polynomial. *) *)
 
+(* FiniteDim has to be replaced *)
 Variable P_lagrange : @FiniteDim (@fct_ModuleSpace E R_ModuleSpace). (* Should be Rd? *)
 
 Hypothesis H : nb_node_lagrange = dim P_lagrange.
@@ -614,7 +620,7 @@ Hypothesis Hcard : (dimE < nvtx)%nat.*)
 
 Definition ndof_lagrange := nb_node_lagrange.
 
-Definition sigma_lagrange := fun i (p : E -> R) => p (node_lagrange i).
+Definition sigma_lagrange : 'I_nb_node_lagrange -> (E -> R) -> R := fun i (p : E -> R) => p (node_lagrange i).
 
 (* TODO: move elsewhere... *)
 Lemma is_linear_mapping_pt_value : forall a, 
@@ -634,7 +640,7 @@ apply is_linear_mapping_pt_value.
 Qed.
 
 (* TODO: apply lemma is_unisolvant_equiv and prove it's lin indep *)
-Lemma FE_lagrange_is_unisolvant : is_unisolvant nb_node_lagrange ndof_lagrange sigma_lagrange ndof_lagrange.
+Lemma FE_lagrange_is_unisolvant : is_unisolvant P_lagrange sigma_lagrange ndof_lagrange.
 Proof.
 apply is_unisolvant_equiv.
 intros p; split.