diff --git a/algos/cfs-template/algo_cfgtemplate1_harness_run.m b/algos/cfs-template/algo_cfgtemplate1_harness_run.m
deleted file mode 100644
index c24b0265dc6fa107b140a272c047911afb492573..0000000000000000000000000000000000000000
--- a/algos/cfs-template/algo_cfgtemplate1_harness_run.m
+++ /dev/null
@@ -1,69 +0,0 @@
-function algo_template_harness_run(obj)
-% run harness and check the result
-
-% load tunable control parameters from mds
-shot = 100; % shot reference
-obj.actualize(shot);
-
-% Input Data - must be structure of timeseries matching input bus structure
-% time = 0:obj.gettiming.dt:1;
-% data = single(sin(2*pi*time*10)');
-% % NB: these struct name and types must match the corresponding data bus
-% tsStructData = struct('simple_signal',timeseries(data,time,'Name','Test Input Data'));
-
-% SimIn object to customize configuration of Simulation run for test
-SimIn = Simulink.SimulationInput([obj.getname '_harness']);
-
-% Create template Input dataset for this model
-% Dataset = createInputDataset(obj.getname);
-
-% assign input data signal to Simulink.Signal object
-% DataIn = Simulink.SimulationData.Signal;
-% DataIn.Values = tsStructData;
-
-% assign as first element in input data set
-% isig = find(contains(Dataset.getElementNames,'signal_in')); % find input signal index
-% Dataset = Dataset.setElement(isig,DataIn); %#ok<FNDSB>
-% SimIn.ExternalInput = Dataset; % assign this as external input for simulation
-
-% Custom parameters for this run to save outport data
-SimIn = SimIn.setModelParameter('SaveOutput','on'); % set to save outport signals
-SimIn = SimIn.setModelParameter('SignalLogging','on'); % set to save log signals
-SimIn = SimIn.setModelParameter('OutputSaveName','SimOut');
-SimIn = SimIn.setModelParameter('SaveFormat','Dataset');
-SimIn = SimIn.setModelParameter('StartTime',num2str(obj.gettiming().t_start));
-SimIn = SimIn.setModelParameter('StopTime',num2str(obj.gettiming().t_stop));
-SimIn = SimIn.setModelParameter('FixedStep',num2str(obj.gettiming().dt));
-
-% simulate - simulate only single types to save time
-result = sim(SimIn);
-
-% check output port data
-tp = Simulink.data.evalinGlobal(obj.getname,'algo_template_tp.Value');
-fp = Simulink.data.evalinGlobal(obj.getname,'algo_template_fp');
-
-input = evalin('base','algo_template_inbus1');
-input1  = input.signal1.Data;
-input2  = input.signal2.Data;
-
-output1 = result.simout.signal1.Data;
-output2 = result.simout.signal2.Data;
-
-size(input1)
-size(output1)
-
-maxerror1 = 0.1;
-maxerror2 = 0.1; 
-assert(max(abs(output1 - input1.*tp.gain))<maxerror1,'Wrong output 1!');
-assert(max(abs(output2 - (input2.*tp.refmodel.gain+fp.refmodel.offset)))<maxerror2,'Wrong output 2!');
-
-% check logs which contain a SCDsignal type data
-% logsout = result.logsout;
-% 
-% signal    = logsout.getElement('SCDsignal type bus').Values.Value;
-% Quality   = logsout.getElement('SCDsignal type bus').Values.QualityTag;
-% State     = logsout.getElement('SCDsignal type bus').Values.ProductionState;
-% 
-% assert(all(State  .Data == ProductionState.RUNNING),'ProductionState must be RUNNING');
-% assert(all(Quality.Data == QualityTag.GOOD        ),'QualityTag must be RUNNING'     );
-end
diff --git a/algos/cfs-template/algo_cfstemplate1.slx b/algos/cfs-template/algo_cfstemplate1.slx
deleted file mode 100644
index 2759c85d3e689413b87a5c682b8a256cc4371ef1..0000000000000000000000000000000000000000
Binary files a/algos/cfs-template/algo_cfstemplate1.slx and /dev/null differ
diff --git a/algos/cfs-template/algo_cfstemplate1_harness.slx b/algos/cfs-template/algo_cfstemplate1_harness.slx
deleted file mode 100644
index 6beba1d4535228191471cd1460a5ca438f669736..0000000000000000000000000000000000000000
Binary files a/algos/cfs-template/algo_cfstemplate1_harness.slx and /dev/null differ
diff --git a/algos/cfs-template/algo_cfstemplate1_inBus_def.m b/algos/cfs-template/algo_cfstemplate1_inBus_def.m
deleted file mode 100644
index 9cf6ec1c29c05725798261f335cdc3aa5f60574f..0000000000000000000000000000000000000000
--- a/algos/cfs-template/algo_cfstemplate1_inBus_def.m
+++ /dev/null
@@ -1,33 +0,0 @@
-% Bus object: SCDalgo_template_inBus 
-clear elems;
-elems(1) = Simulink.BusElement;
-elems(1).Name = 'signal1';
-elems(1).Dimensions = 1;
-elems(1).DimensionsMode = 'Fixed';
-elems(1).DataType = 'single';
-elems(1).SampleTime = -1;
-elems(1).Complexity = 'real';
-elems(1).Min = [];
-elems(1).Max = [];
-elems(1).DocUnits = '';
-elems(1).Description = '';
-
-elems(2) = Simulink.BusElement;
-elems(2).Name = 'signal2';
-elems(2).Dimensions = 1;
-elems(2).DimensionsMode = 'Fixed';
-elems(2).DataType = 'single';
-elems(2).SampleTime = -1;
-elems(2).Complexity = 'real';
-elems(2).Min = [];
-elems(2).Max = [];
-elems(2).DocUnits = '';
-elems(2).Description = '';
-
-algo_template_inBus = Simulink.Bus;
-algo_template_inBus.HeaderFile = '';
-algo_template_inBus.Description = '';
-algo_template_inBus.DataScope = 'Auto';
-algo_template_inBus.Alignment = -1;
-algo_template_inBus.Elements = elems;
-clear elems;
diff --git a/algos/cfs-template/algo_cfstemplate1_loadfp.m b/algos/cfs-template/algo_cfstemplate1_loadfp.m
deleted file mode 100644
index 2fd64eb55fe35ec632a907cc6088d207c78baafb..0000000000000000000000000000000000000000
--- a/algos/cfs-template/algo_cfstemplate1_loadfp.m
+++ /dev/null
@@ -1,6 +0,0 @@
-function fp = algo_template_loadfp(obj)
-
-%% Load other fixed parameters
-fp.timing = obj.gettiming;
-fp.refmodel.offset = 1; % a fixed parameter
-end
\ No newline at end of file
diff --git a/algos/cfs-template/algo_cfstemplate1_loadtp.m b/algos/cfs-template/algo_cfstemplate1_loadtp.m
deleted file mode 100644
index 1c08d9286f2f173a425caf3672d100c7adcde017..0000000000000000000000000000000000000000
--- a/algos/cfs-template/algo_cfstemplate1_loadtp.m
+++ /dev/null
@@ -1,11 +0,0 @@
-function TP = algo_template_loadtp()
-% Setup tunable control params
-
-TP.enable           = true;
-TP.gain             = single(2);
-TP.refmodel.gain    = single(4); % another gain used in referenced model
-TP.rowvect          = int32([1 2 3]);
-TP.colvect          = int16([1 2 3]');
-TP.matrix           = int8([1 2; 3 4]);
-
-end
diff --git a/algos/cfs-template/algo_cfstemplate1_outBus_def.m b/algos/cfs-template/algo_cfstemplate1_outBus_def.m
deleted file mode 100644
index 3acb8cd5d98cbcc0aa9c2deebd1c1f91dc8df786..0000000000000000000000000000000000000000
--- a/algos/cfs-template/algo_cfstemplate1_outBus_def.m
+++ /dev/null
@@ -1,35 +0,0 @@
-% Bus object: SCDalgo_template_outBus 
-clear elems;
-elems(1) = Simulink.BusElement;
-elems(1).Name = 'signal1';
-elems(1).Dimensions = 1;
-elems(1).DimensionsMode = 'Fixed';
-%elems(1).DataType = 'Bus:SCDBus_single_11_Vector';
-elems(1).DataType = 'single';
-elems(1).SampleTime = -1;
-elems(1).Complexity = 'real';
-elems(1).Min = [];
-elems(1).Max = [];
-elems(1).DocUnits = '';
-elems(1).Description = '';
-
-elems(2) = Simulink.BusElement;
-elems(2).Name = 'signal2';
-elems(2).Dimensions = 1;
-elems(2).DimensionsMode = 'Fixed';
-%elems(2).DataType = 'Bus:SCDBus_int32_Scalar';
-elems(2).DataType = 'single';
-elems(2).SampleTime = -1;
-elems(2).Complexity = 'real';
-elems(2).Min = [];
-elems(2).Max = [];
-elems(2).DocUnits = '';
-elems(2).Description = '';
-
-algo_template_outBus = Simulink.Bus;
-algo_template_outBus.HeaderFile = '';
-algo_template_outBus.Description = '';
-algo_template_outBus.DataScope = 'Auto';
-algo_template_outBus.Alignment = -1;
-algo_template_outBus.Elements = elems;
-clear elems;
diff --git a/algos/cfs-template/algo_cfstemplate1_signal_buses.m b/algos/cfs-template/algo_cfstemplate1_signal_buses.m
deleted file mode 100644
index 82c52b2d9e153d06db5d81c609e7203fd7c81de3..0000000000000000000000000000000000000000
--- a/algos/cfs-template/algo_cfstemplate1_signal_buses.m
+++ /dev/null
@@ -1,47 +0,0 @@
-function [busNames,Buses] = algo_template_signal_buses()
-% [busNames,Buses] = SCDalgo_template_signal_buses()
-% Define some buses needed for the template
-
-%% Define signal buses for various SCDsignal types
-% Data examples for which to create buses
-D = {...
-  ones(11,1,'single'),...
-  ones(3,3,'single'),...
-  int32(1)};
-
-% Create buses for these signals and add them to the list
-[Buses,busNames] = deal(cell(numel(D),1)); % init
-for ii = 1:numel(D)
-  mydata = D{ii};
-  mysig = SCDsignal(mydata); % create SCDsignal object for this data example
-  mybus = mysig.createBus; % create Bus for this signal using object method
-  % Store
-  Buses{ii} = mybus;
-  busNames{ii} = mybus.Description;
-end
-
-%% Add output structure: a bus that includes only SCDsignal data types
-
-% First add 3 busElements for the three signals defined above
-for ii=1:3
-elems(ii) = Simulink.BusElement;
-elems(ii).Name = sprintf('signal%d',ii);
-elems(ii).Dimensions = 1;
-elems(ii).DimensionsMode = 'Fixed';
-elems(ii).DataType = sprintf('Bus: %s',busNames{ii});
-end
-
-% Define output bus with these elements
-outBus = Simulink.Bus;
-outBus.HeaderFile = '';
-outBus.Description = '';
-outBus.DataScope = 'Auto';
-outBus.Alignment = -1;
-outBus.Elements = elems;
-clear elems;
-
-% append to list
-busNames{end+1} = 'algo_template_bus1';
-Buses{end+1}    = outBus; 
-
-end
diff --git a/algos/cfs-template/algo_cfstemplate1_test.m b/algos/cfs-template/algo_cfstemplate1_test.m
deleted file mode 100644
index d37df45c34dd9e4235cc6bddf911856aed141cea..0000000000000000000000000000000000000000
--- a/algos/cfs-template/algo_cfstemplate1_test.m
+++ /dev/null
@@ -1,7 +0,0 @@
-classdef algo_template_test < SCDalgo_test
-  
-  properties
-    algoobj = algoobj_template();
-  end
-  
-end
\ No newline at end of file
diff --git a/algos/cfs-template/algoobj_cfstemplate1.m b/algos/cfs-template/algoobj_cfstemplate1.m
deleted file mode 100644
index 80ce3b87bc1ef0030c59c55e37b42eeb978000ab..0000000000000000000000000000000000000000
--- a/algos/cfs-template/algoobj_cfstemplate1.m
+++ /dev/null
@@ -1,42 +0,0 @@
-function obj = algoobj_cfstemplate1()
-
-%% Doublets SPC controller algorithm
-obj = SCDclass_algo('algo_cfstemplate1');
-
-%% Timing of the algorithm
-obj=obj.settiming(-1,1e-3,1.0);
-
-%% Fixed parameters init functions 
-obj=obj.addfpinitfcn('algo_cfstemplate1_loadfp','algo_cfstemplate1_fp');
-
-%% Tunable parameters structure name
-obj=obj.addtunparamstruct('algo_cfstemplate1_tp', @()algo_cfstemplate1_loadtp(), false);
-
-%% Tunable parameters
-parshot=10;
-obj=obj.addparameter(SCDclass_mdsparnumeric('kb1','enable'          ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot)); 
-obj=obj.addparameter(SCDclass_mdsparnumeric('ks1','gain'            ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot)); 
-obj=obj.addparameter(SCDclass_mdsparnumeric('kv1','rowvect'         ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot));
-obj=obj.addparameter(SCDclass_mdsparnumeric('kv2','colvect'         ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot));
-obj=obj.addparameter(SCDclass_mdsparnumeric('km1','matrix'          ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot));
-
-%% Wavegens
-obj=obj.addwavegenbasetruct('algo_cfstemplate1_inbus');
-obj=obj.addwavegen(SCDclass_mdswgsigsingle( 'ai.ch001','signal1'        ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot));
-obj=obj.addwavegen(SCDclass_mdswgsigsingle( 'ai.ch002','signal2'        ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot));
-
-
-%% Buses
-obj = obj.addbus('algo_template_inBus', 'algo_template_inBus_def' );
-obj = obj.addbus('algo_template_outBus', 'algo_template_outBus_def' );
- % function handle that returns cell arays of buses and busnames to be
- % registered
-obj = obj.addbus('',@() algo_template_signal_buses());
-
-%% Tasks
-
-%% Print (optional)
-obj.printinfo;
-
-end
-
diff --git a/algos/template/duplicate_template.m b/algos/template/duplicate_template.m
index 7b021c85148b8ec2b2f8872b76c9f9816d48b23c..cc801baab89d29fc0bd879755aa95087342308da 100644
--- a/algos/template/duplicate_template.m
+++ b/algos/template/duplicate_template.m
@@ -45,7 +45,8 @@ fprintf('Changing block diagrams properties ...\n');
 list={{'algo_template/realtime'     ,'SampleTime'}, ...
       {'algo_template/signal_in'    ,'OutDataTypeStr'}, ...
       {'algo_template/signal_out'   ,'OutDataTypeStr'}, ...
-      {'algo_template/Gain'         ,'Gain'}, ...      
+      {'algo_template/Gain'         ,'Gain'}, ...
+      {'algo_template/Constant'     ,'OutDataTypeStr'}, ...      
       };
 load_system(['algo_' name]);
 for i=1:numel(list)
@@ -61,10 +62,6 @@ fprintf('Renaming ''template'' to ''%s'' inside .m files ...\n',name);
 rncmd=sprintf('cd %s; sed -i ''s/template/%s/g'' *.m', algopath, name);
 system(rncmd);
 
-
 eval(sprintf('cd %s',startpath));
 
-
-
-
 end