diff --git a/crpptbx/TCV_IMAS/tcv2ids.m b/crpptbx/TCV_IMAS/tcv2ids.m
index c0521b7f8f690168127456355816aea30f1b02ad..2dd33b3dab19b7b96db61aefac2f571f583189d5 100644
--- a/crpptbx/TCV_IMAS/tcv2ids.m
+++ b/crpptbx/TCV_IMAS/tcv2ids.m
@@ -16,12 +16,25 @@ equil_empty=ids_gen('equilibrium');
 ids_saved.equilibrium = ids_equilibrium;
 ids_saved.equilibrium_description = ids_equilibrium_description;
 
-%% Magnetics
+%% magnetics
 magnetics_empty=ids_gen('magnetics');
 [ids_magnetics,ids_magnetics_description]=tcv_get_ids_magnetics(shot,magnetics_empty);
 ids_saved.magnetics = ids_magnetics;
 ids_saved.magnetics_description = ids_magnetics_description;
 
+%% pf_active
+pf_active_empty=ids_gen('pf_active');
+[ids_pf_active,ids_pf_active_description]=tcv_get_ids_pf_active(shot,pf_active_empty);
+ids_saved.pf_active = ids_pf_active;
+ids_saved.pf_active_description = ids_pf_active_description;
+
+%% wall
+pf_wall_empty=ids_gen('wall');
+[ids_wall,ids_wall_description]=tcv_get_ids_wall(shot,pf_wall_empty);
+ids_saved.pf_wall = ids_wall;
+ids_saved.pf_wall_descrption = ids_wall_description;
+
+
 %% Initialize the three
 shot_is_new = 1; % seems only create is ok even if does already exist
 if shot_is_new
@@ -33,6 +46,8 @@ end
 %% Put the field
 ids_put(idx,'equilibrium',ids_equilibrium);
 ids_put(idx, 'magnetics', ids_magnetics);
+ids_put(idx, 'pf_active', ids_pf_active);
+ids_put(idx, 'wall', ids_wall);
 
 %% Close the file
 imas_close(idx)
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m b/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
index 7a5e92f1c725b8f9d7407571f782ba3141aa302f..a2e36745ecfb03a500677113fc69b254ad3c2886 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
@@ -1,12 +1,12 @@
-function [ids_pf_active,ids_pf_active_description,varargout] = tcv_get_ids_pf_active(shot,varargin)
-%
-%  [ids_equilibrium,ids_equilibrium_description,varargout] = get_ids_equilibrium_fixed_boundary(shot,varargin);
-% 
-%
-% ADD Here the imput pharser
+function [ids_pf_active,ids_description,varargout] = tcv_get_ids_pf_active(shot, ids_pf_active_empty, varargin)
 
-ids_pf_active=ids_gen('pf_active');
-[ids_pf_active.coil]= tcv_get_ids_coil(shot, ids_pf_active.coil(1));
+% Input pharser
+[ids_pf_active, params] = tcv_ids_headpart(shot, ids_pf_active_empty,'pf_active',varargin{:});
 
-[ids_pf_active.circuit]= tcv_get_ids_circuit(shot, ids_pf_active.circuit(1));
+% Get subfield
+[ids_pf_active.coil]= tcv_get_ids_coil(params.shot, ids_pf_active.coil(1));
+[ids_pf_active.circuit]= tcv_get_ids_circuit(params.shot, ids_pf_active.circuit(1));
 
+
+%% Temporarely 
+ids_description = struct();
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_wall.m b/crpptbx/TCV_IMAS/tcv_get_ids_wall.m
new file mode 100644
index 0000000000000000000000000000000000000000..dcefe347bd6ea1bb3febc455d03fd1d90298baa5
--- /dev/null
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_wall.m
@@ -0,0 +1,10 @@
+function [ids_wall,ids_description,varargout] = tcv_get_ids_wall(shot, ids_wall_empty, varargin)
+
+% Input pharser
+[ids_wall, params] = tcv_ids_headpart(shot, ids_wall_empty,'wall',varargin{:});
+
+% Get data of outline
+[ids_wall.description_2d]= tcv_get_ids_descprition_2d(params.shot, ids_wall.description_2d(1));
+
+%% TODO 
+ids_description = [];
\ No newline at end of file
diff --git a/crpptbx/TCV_IMAS/tcv_ids_get_wall.m b/crpptbx/TCV_IMAS/tcv_ids_get_wall.m
deleted file mode 100644
index cbc1a0f8ca310e71a298f201b51931031d75b327..0000000000000000000000000000000000000000
--- a/crpptbx/TCV_IMAS/tcv_ids_get_wall.m
+++ /dev/null
@@ -1,5 +0,0 @@
-function [ids_wall,ids_wall_description,varargout] = tcv_ids_get_wall(shot,varargin)
-% TODO Add the input pharser
-
-ids_wall=ids_gen('wall');
-[ids_wall.description_2d]= tcv_get_ids_descprition_2d(shot, ids_wall.description_2d(1));
\ No newline at end of file