diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m b/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
index 4fb9bcd9b94b603bc9f932c936c3479206b4b59a..5afd80ae17847e5493115e867fee98acda8d2bbd 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
@@ -2,36 +2,19 @@ function [ids_struct_out] =  tcv_get_ids_circuit(shot, ids_structures)
 
 mdsopen(shot)
 %% Get power supply/coils names for each circuit.
-[pf_def] =  tcv_ids_pf_active_definition();
-
-
-% Get dimension
-ntotcircuits2ids = numel(circuit_names2ids);
-ntotpowersupply = numel(power_supply_names2ids);
-ntotcoils = numel([coil_names2ids{1:end}]);
-ncoilpercircuit = zeros(1,ntotcircuits2ids);
-for ii=1:ntotcircuits2ids
-    ncoilpercircuit(ii) =  numel(coil_names2ids{ii});
-end
-
-% Each circuit has only 1 power supply, number of elements per circuit =
-% number of nodes per circuit= number of coils per circuit + 1;
-nnodespercircuit = ncoilpercircuit + 1; 
-ntotelements = sum(nnodespercircuit);
-
-% Since all the coils are connected in series it d
+[tcv_circuit_info] =  tcv_ids_pf_active_definition();
 
 % Preallocate memory and get data
-ids_struct_out(1:ntotcircuits2ids) = ids_structures;
-for ii=1:ntotcircuits2ids
-    tmpdata = tdi(mds_paths2ids{ii});
+ids_struct_out(1:tcv_circuit_info.ntotcircuits) = ids_structures;
+for ii=1:tcv_circuit_info.ntotcircuits
+    tmpdata = tdi(tcv_circuit_info.mds_paths{ii}); % Get current
     ids_struct_out{ii}.current.data = tmpdata.data;
     ids_struct_out{ii}.current.time = tmpdata.dim{1};
-    ids_struct_out{ii}.connection = zeros(nnodespercircuit(ii),2*ntotelements);
+    ids_struct_out{ii}.connections = tcv_circuit_info.connection_matrix{ii};
+    ids_struct_out{ii}.name = tcv_circuit_info.circuit_names{ii};
 end
 
 
-
 end
 
 
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_supply.m b/crpptbx/TCV_IMAS/tcv_get_ids_supply.m
index 59077e9eaa6395c21e2a3c56d2b20c231d2597f4..14bb32352ab7be997b00ed32d297f5ae21a4dac1 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_supply.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_supply.m
@@ -1,48 +1,2 @@
 function [ids_struct_out] =  tcv_get_ids_supply(shot, ids_structures)
 
-% TODO
-
-%{
-% ./pfsupplies/
-
-% ./desc_supply/
-namepfs = {'OH_001','OH_002', ...
-    'E_001','E_002','E_003','E_004','E_005','E_006','E_007','E_008', ...
-    'F_001','F_002','F_003','F_004','F_005','F_006','F_007','F_008', ...
-    'G_001','BCOIL'};
-
-name  = 'pfsupplies/desc_supply/name';
-value = namepfs;
-status= xmlWriteElement(xNodek,name,value,'Quiet',quiet);
-
-name = 'pfsupplies/desc_supply/id';
-
-name = 'pfsupplies/desc_supply/type';
-
-name = 'pfsupplies/desc_supply/delay';
-
-name = 'pfsupplies/desc_supply/filter';
-
-name  = 'pfsupplies/desc_supply/imin';  % Source: http://crpplocal.epfl.ch/wiki/Supply_scheme
-value = [repmat(-31e3,1,2),repmat(-7.7e3,1,8),repmat(-7.7e3,1,8),-2e3,-78e3];
-status= xmlWriteElement(xNodek,name,value,'Quiet',quiet);
-
-name = 'pfsupplies/desc_supply/imax';    % Source: http://crpplocal.epfl.ch/wiki/Supply_scheme
-value = [ repmat(31e3,1,2), repmat(7.7e3,1,8), repmat(7.7e3,1,8), 2e3,78e3];
-status= xmlWriteElement(xNodek,name,value,'Quiet',quiet);
-
-name = 'pfsupplies/desc_supply/res';
-
-name = 'pfsupplies/desc_supply/umin';    % Source: http://crpplocal.epfl.ch/wiki/Supply_scheme
-value = [repmat(-1400,1,2),repmat(-648,1,8),repmat(-1250,1,8),-566, -626];
-status= xmlWriteElement(xNodek,name,value,'Quiet',quiet);
-
-name = 'pfsupplies/desc_supply/umax';    % Source: http://crpplocal.epfl.ch/wiki/Supply_scheme
-value = [ repmat(1400,1,2), repmat(648,1,8), repmat(1250,1,8), 566, 626];
-status= xmlWriteElement(xNodek,name,value,'Quiet',quiet);
-
-name = 'pfsupplies/desc_supply/emax';  % Not a relevant limit
-% ../ END of desc_supply
-% ../ END of pfsupplies
-
-%}
\ No newline at end of file