diff --git a/tests/particle/dsge_base2.mod b/tests/particle/dsge_base2.mod
index ecc845db4b935a88aacb90b5cc541f09537b1433..f07148e9f890408f5c946169220bcc8beed630ff 100644
--- a/tests/particle/dsge_base2.mod
+++ b/tests/particle/dsge_base2.mod
@@ -1,58 +1,42 @@
-// DGP
-@#ifndef RISKY_CALIBRATION
-    @#define RISKY_CALIBRATION = 1
-@#endif
-@#ifndef EXTREME_CALIBRATION
-    @#define EXTREME_CALIBRATION = 0
-@#endif
-@#ifndef BENCHMARK_CALIBRATION
-    @#define BENCHMARK_CALIBRATION = 0
-@#endif
-
 // ALGORITHM
 @#ifndef LINEAR_KALMAN
     @#define LINEAR_KALMAN = 0
 @#endif
-@#ifndef NON_LINEAR_KALMAN
-    @#define NON_LINEAR_KALMAN = 1
+
+@#ifndef NONLINEAR_KALMAN
+    @#define NONLINEAR_KALMAN = 0
 @#endif
+
 @#ifndef ALGO_SIR
-    @#define ALGO_SIR = 0
-@#endif
-@#ifndef ALGO_SISmoothR
-    @#define ALGO_SISmoothR = 0
+    @#define ALGO_SIR = 1
 @#endif
+
 @#ifndef ALGO_APF
     @#define ALGO_APF = 0
 @#endif
-@#ifndef ALGO_CPF
-    @#define ALGO_CPF = 0
-@#endif
-@#ifndef ALGO_GPF
-    @#define ALGO_GPF = 0
-@#endif
+
 @#ifndef ALGO_GCF
     @#define ALGO_GCF = 0
 @#endif
+
 @#ifndef ALGO_GUF
     @#define ALGO_GUF = 0
 @#endif
-@#ifndef ALGO_GMPF
-    @#define ALGO_GMPF = 0
-@#endif
-@#ifndef ALGO_GMCF
-    @#define ALGO_GMCF = 0
-@#endif
-@#ifndef ALGO_ONLINE_1
-    @#define ALGO_ONLINE_1 = 0
-@#endif
-@#ifndef ALGO_ONLINE_2
-    @#define ALGO_ONLINE_2 = 0
+
+@#ifndef ALGO_ONLINE
+    @#define ALGO_ONLINE = 0
 @#endif
+
 @#ifndef MCMC
     @#define MCMC = 0
 @#endif
 
+@#ifndef SMC
+    @#define SMC = 0
+@#endif
+
+%%
+
 var k A c l i y;
 varexo e_a;
 
@@ -65,156 +49,147 @@ delt = 0.02;
 rho = 0.95;
 
 model;
-c = ((1 - alp)*tet/(1-tet))*A*(1-l)*((k(-1)/l)^alp) ;
-y = A*(k(-1)^alp)*(l^(1-alp)) ;
-i = y-c ;
-k = (1-delt)*k(-1) + i ;
-log(A) = rho*log(A(-1)) + e_a ;
-(((c^(tet))*((1-l)^(1-tet)))^(1-tau))/c - bet*((((c(+1)^(tet))*((1-l(+1))^(1-tet)))^(1-tau))/c(+1))*(1 -delt+alp*(A(1)*(k^alp)*(l(1)^(1-alp)))/k)=0 ;
+	c = ((1 - alp)*tet/(1-tet))*A*(1-l)*((k(-1)/l)^alp) ;
+	y = A*(k(-1)^alp)*(l^(1-alp)) ;
+	i = y-c ;
+	k = (1-delt)*k(-1) + i ;
+	log(A) = rho*log(A(-1)) + e_a ;
+	(((c^(tet))*((1-l)^(1-tet)))^(1-tau))/c - bet*((((c(+1)^(tet))*((1-l(+1))^(1-tet)))^(1-tau))/c(+1))*(1 -delt+alp*(A(1)*(k^alp)*(l(1)^(1-alp)))/k)=0 ;
 end;
 
 steady_state_model;
-
-  k = -(alp-1)*(alp^(1/(1-alp)))*(bet^(1/(1-alp)))*((bet*(delt-1)+1)^(alp/(alp-1)))*tet/(-alp*delt*bet+delt*bet+alp*tet*bet-bet-alp*tet+1);
-  l = (alp-1)*(bet*(delt-1)+1)*tet/(alp*tet+bet*((alp-1)*delt-alp*tet+1)-1) ;
-  y = (k^alp)*(l^(1-alp)) ;
-  i = delt*k ;
-  c = y - i ;
-  A = 1;
-
+	k = -(alp-1)*(alp^(1/(1-alp)))*(bet^(1/(1-alp)))*((bet*(delt-1)+1)^(alp/(alp-1)))*tet/(-alp*delt*bet+delt*bet+alp*tet*bet-bet-alp*tet+1);
+	l = (alp-1)*(bet*(delt-1)+1)*tet/(alp*tet+bet*((alp-1)*delt-alp*tet+1)-1) ;
+	y = (k^alp)*(l^(1-alp)) ;
+	i = delt*k ;
+	c = y - i ;
+	A = 1;
 end;
 
 shocks;
-var e_a; stderr 0.035;
+    var e_a; stderr 0.035;
 end;
 
 steady;
 
 estimated_params;
-alp, uniform_pdf,,, 0.0001, 0.99;
-bet, uniform_pdf,,, 0.0001, 0.99999;
-tet, uniform_pdf,,, 0.0001, .999;
-tau, uniform_pdf,,, 0.0001, 100;
-delt, uniform_pdf,,, 0.0001, 0.05;
-rho, uniform_pdf,,, 0.0001, 0.9999;
-stderr e_a, uniform_pdf,,, 0.00001, 0.1;
-stderr y, uniform_pdf,,, 0.00001, 0.1;
-stderr l, uniform_pdf,,, 0.00001, 0.1;
-stderr i, uniform_pdf,,, 0.00001, 0.1;
+    alp, uniform_pdf,,, 0.0001, 0.99;
+    bet, uniform_pdf,,, 0.0001, 0.99999;
+    tet, uniform_pdf,,, 0.0001, .999;
+    tau, uniform_pdf,,, 0.0001, 100;
+    delt, uniform_pdf,,, 0.0001, 0.05;
+    rho, uniform_pdf,,, 0.0001, 0.9999;
+    stderr e_a, uniform_pdf,,, 0.00001, 0.1;
+    stderr y, uniform_pdf,,, 0.00001, 0.1;
+    stderr l, uniform_pdf,,, 0.00001, 0.1;
+    stderr i, uniform_pdf,,, 0.00001, 0.1;
 end;
 
-@#if EXTREME_CALIBRATION
-  estimated_params_init;
-  alp, 0.4;
-  bet, 0.99;
-  tet, 0.357;
-  tau, 50;
-  delt, 0.02;
-  rho, 0.95;
-  stderr e_a, .035;
-  stderr y, .00158;
-  stderr l, .0011;
-  stderr i, .000866;
-  end;
-@#endif
-
-@#if RISKY_CALIBRATION
-  estimated_params_init;
-  alp, 0.4;
-  bet, 0.99;
-  tet, 0.357;
-  tau, 50;
-  delt, 0.02;
-  rho, 0.95;
-  stderr e_a, .035;
-  stderr y, .0175;
-  stderr l, .00312;
-  stderr i, .00465;
-  end;
-@#endif
+estimated_params_init;
+	alp, 0.4;
+	bet, 0.99;
+	tet, 0.357;
+	tau, 50;
+	delt, 0.02;
+	rho, 0.95;
+	stderr e_a, .035;
+	stderr y, .001;
+	stderr l, .001;
+	stderr i, .001;
+end;
 
 varobs y l i ;
 
-options_.mode_check.neighbourhood_size = .1 ;
-options_.mode_check.number_of_points = 250;
-options_.threads.local_state_space_iteration_2 = 4;
-
-@#if EXTREME_CALIBRATION
-  data(file='./extreme.m');
-@#endif 
-
-@#if RISKY_CALIBRATION
-    data(file='./risky.m');
-@#endif
-
-@#if BENCHMARK_CALIBRATION
-    data(file='./benchmark.m');
-@#endif
+%data(file='./risky.m');
+%stoch_simul(order=5,periods=1000);
+%datatomfile('mysample')
+%return;
 
+data(file='./mysample.m',first_obs=801Y,nobs=200); %no measurement errors added in the simulated data
 
 @#if LINEAR_KALMAN
-  estimation(nograph,order=1,mode_compute=8,silent_optimizer,mh_replic=0,mode_check);
+	estimation(nograph,order=1,mode_compute=8,silent_optimizer,mh_replic=0,additional_optimizer_steps=[8 4],mode_check);
 @#endif
 
-@#if NON_LINEAR_KALMAN
-  estimation(nograph,order=2,filter_algorithm=nlkf,mode_compute=8,silent_optimizer,mh_replic=0);
+@#if NONLINEAR_KALMAN
+    estimation(nograph,order=2,filter_algorithm=nlkf,number_of_particles=10000,silent_optimizer,proposal_approximation=montecarlo,mode_compute=8,additional_optimizer_steps=[8,4],mh_replic=0);
+%    estimation(nograph,order=3,filter_algorithm=nlkf,number_of_particles=10000,silent_optimizer,proposal_approximation=montecarlo,mode_compute=8,additional_optimizer_steps=[8,4],mh_replic=0);
+	estimation(nograph,order=2,filter_algorithm=nlkf,proposal_approximation=cubature,silent_optimizer,mode_compute=8,additional_optimizer_steps=[4,8],mh_replic=0,mode_check);
+%	estimation(nograph,order=3,filter_algorithm=nlkf,proposal_approximation=cubature,silent_optimizer,mode_compute=8,additional_optimizer_steps=[4,8],mh_replic=0,mode_check);
 @#endif
 
 @#if ALGO_SIR
-  estimation(order=2,nograph,number_of_particles=1000,mh_replic=0,silent_optimizer,mode_compute=8);
-@#endif
-
-@#if ALGO_SISmoothR
-  estimation(order=2,nograph,number_of_particles=1000,resampling_method=smooth,mode_compute=8,silent_optimizer,mh_replic=0);
-  estimation(order=2,nograph,number_of_particles=1000,resampling_method=smooth,mode_compute=8,silent_optimizer,mode_file=dsge_base2_mode,mh_replic=0);
-  estimation(order=2,nograph,number_of_particles=1000,resampling_method=smooth,mode_compute=4,silent_optimizer,mode_file=dsge_base2_mode,mh_replic=0,mode_check);
+	estimation(order=2,nograph,number_of_particles=10000,mh_replic=0,mode_compute=8,cova_compute=0);
+	estimation(order=2,nograph,number_of_particles=10000,mh_replic=0,silent_optimizer,mode_compute=8,additional_optimizer_steps=[8 8],cova_compute=0);
+	estimation(order=3,nograph,number_of_particles=10000,mh_replic=0,silent_optimizer,mode_compute=8,additional_optimizer_steps=[8 8],cova_compute=0);
 @#endif
 
 @#if ALGO_APF
-  estimation(order=2,nograph,filter_algorithm=apf,number_of_particles=10000,resampling=none,mh_replic=0,mode_compute=8,silent_optimizer,mode_check);
-@#endif
-
-@#if ALGO_CPF
-  estimation(order=2,nograph,filter_algorithm=cpf,number_of_particles=10000,resampling=none,mh_replic=0,mode_compute=8,silent_optimizer,mode_check);
-@#endif
-
-@#if ALGO_GPF
-  estimation(order=2,nograph,filter_algorithm=gf,distribution_approximation=montecarlo,number_of_particles=1000,mh_replic=0,mode_compute=8,silent_optimizer);
-  estimation(order=2,nograph,filter_algorithm=gf,distribution_approximation=montecarlo,number_of_particles=1000,mode_file=dsge_base2_mode,mh_replic=0,mode_compute=4,silent_optimizer,mode_check);
+    estimation(order=2,nograph,filter_algorithm=apf,number_of_particles=10000,resampling=none,mh_replic=0,mode_compute=8,cova_compute=0);
+    estimation(order=2,nograph,filter_algorithm=apf,number_of_particles=10000,resampling=none,mh_replic=0,mode_compute=8,additional_optimizer_steps=[8,8],silent_optimizer,cova_compute=0);
+    estimation(order=3,nograph,filter_algorithm=apf,number_of_particles=10000,resampling=none,mh_replic=0,silent_optimizer,mode_compute=8,additional_optimizer_steps=[8,8],cova_compute=0);
 @#endif
 
 @#if ALGO_GCF
-  estimation(order=2,nograph,filter_algorithm=gf,mh_replic=0,mode_compute=8,silent_optimizer);
-  estimation(order=2,nograph,filter_algorithm=gf,mh_replic=0,mode_compute=4,silent_optimizer,mode_file=dsge_base2_mode,mode_check);
-@#endif
+estimation(order=2,nograph,filter_algorithm=gf,proposal_approximation=montecarlo,distribution_approximation=montecarlo,number_of_particles=10000,mh_replic=0,mode_compute=8,additional_optimizer_steps=[8,8],silent_optimizer);
+estimation(order=3,nograph,filter_algorithm=gf,proposal_approximation=montecarlo,distribution_approximation=montecarlo,number_of_particles=10000,mh_replic=0,mode_compute=8,additional_optimizer_steps=[8,8],silent_optimizer);
 
-@#if ALGO_GUF
-  estimation(order=2,nograph,filter_algorithm=gf,proposal_approximation=unscented,distribution_approximation=unscented,mh_replic=0,silent_optimizer,mode_compute=8);
-  estimation(order=2,nograph,filter_algorithm=gf,proposal_approximation=unscented,distribution_approximation=unscented,mh_replic=0,mode_compute=8,silent_optimizer,mode_check);
-@#endif
+%estimation(order=2,nograph,filter_algorithm=gf,proposal_approximation=cubature,distribution_approximation=montecarlo,mh_replic=0,mode_compute=8,additional_optimizer_steps=[4,8],silent_optimizer);
+%estimation(order=3,nograph,filter_algorithm=gf,proposal_approximation=cubature,distribution_approximation=montecarlo,mh_replic=0,mode_compute=8,additional_optimizer_steps=[4,8],silent_optimizer);
 
-@#if ALGO_GMPF
-  estimation(nograph,order=2,filter_algorithm=gmf,distribution_approximation=montecarlo,number_of_particles=1000,mh_replic=0,mode_compute=8,silent_optimizer);
-  estimation(nograph,order=2,filter_algorithm=gmf,distribution_approximation=montecarlo,number_of_particles=1000,mh_replic=0,mode_file=dsge_base2_mode,mode_compute=8);
-  estimation(nograph,order=2,filter_algorithm=gmf,distribution_approximation=montecarlo,number_of_particles=1000,mh_replic=0,mode_file=dsge_base2_mode,mode_compute=4,mode_check);
-@#endif
+%estimation(order=2,nograph,filter_algorithm=gf,proposal_approximation=cubature,distribution_approximation=cubature,mh_replic=0,mode_compute=8,additional_optimizer_steps=[4,8],silent_optimizer);
+%estimation(order=3,nograph,filter_algorithm=gf,proposal_approximation=cubature,distribution_approximation=cubature,mh_replic=0,mode_compute=8,additional_optimizer_steps=[4,8],silent_optimizer);
 
-@#if ALGO_GMCF
-  estimation(nograph,order=2,filter_algorithm=gmf,mh_replic=0,mode_compute=8,silent_optimizer);
-  estimation(nograph,order=2,filter_algorithm=gmf,mh_replic=0,mode_compute=4,silent_optimizer,mode_file=dsge_base2_mode,mode_check);
+%estimation(order=2,nograph,filter_algorithm=gf,proposal_approximation=montecarlo,distribution_approximation=montecarlo,number_of_particles=100000,resampling=systematic,mh_replic=0,mode_compute=8,additional_optimizer_steps=[4,8],silent_optimizer);
+%estimation(order=3,nograph,filter_algorithm=gf,proposal_approximation=montecarlo,distribution_approximation=montecarlo,number_of_particles=100000,resampling=systematic,mh_replic=0,mode_compute=8,additional_optimizer_steps=[4,8],silent_optimizer);
 @#endif
 
-@#if ALGO_ONLINE_2
-  estimation(order=2,number_of_particles=1000,mode_compute=11,silent_optimizer,mh_replic=0,particle_filter_options=('liu_west_delta',0.9));
+@#if ALGO_GUF
+  estimation(order=2,nograph,filter_algorithm=gf,mh_replic=0,silent_optimizer,mode_compute=8);
+  estimation(order=3,nograph,filter_algorithm=gf,mh_replic=0,mode_compute=8,silent_optimizer,mode_check);
 @#endif
 
-@#if ALGO_ONLINE_1
-  estimation(order=1,number_of_particles=1000,mode_compute=11,silent_optimizer,mh_replic=0,particle_filter_options=('liu_west_delta',0.9));
+@#if ALGO_ONLINE
+  estimation(order=1,nograph,mode_compute=11,mh_replic=0,particle_filter_options=('liu_west_delta',0.9));
+  estimation(order=2,nograph,number_of_particles=10000,mode_compute=11,mh_replic=0,particle_filter_options=('liu_west_delta',0.9));
+  estimation(order=3,nograph,number_of_particles=10000,mode_compute=11,mh_replic=0,particle_filter_options=('liu_west_delta',0.9));
 @#endif
 
 @#if MCMC
-  options_.mh_nblck = 10 ;
-  options_.posterior_sampling_method = 'RWGMH';
-  options_.rwgmh_scale_shock = (1e-5)*[10 10 1 1 10 10 10 1000 10 10] ;
-  estimation(order=1,mh_replic=5000,mode_compute=0,mode_file=dsge_base2_mode);
+
+  estimated_params_init;
+      alp, 0.3980;
+      bet, 0.9907;
+      tet, 0.3565;
+      tau, 48.054;
+      delt, 0.0197;
+      rho, 0.9511;
+      stderr e_a, .0346;
+      stderr y, 0.0004;
+      stderr l, 0.0001;
+      stderr i, 0.0002;
+  end;  
+%  estimation(order=3,number_of_particles=10000,silent_optimizer,mode_compute=8,cova_compute=0,MCMC_jumping_covariance=prior_variance,mh_init_scale_factor=0.01);
+
+  estimated_params_init;
+      alp, 0.3982;
+      bet, 0.9910;
+      tet, 0.3566;
+      tau, 46.883;
+      delt, 0.0197;
+      rho, 0.9511;
+      stderr e_a, .0346;
+      stderr y, 0.0004;
+      stderr l, 0.0001;
+      stderr i, 0.0001;
+  end;  
+estimation(order=3,filter_algorithm=nlkf,number_of_particles=10000,proposal_approximation=montecarlo,resampling=none,silent_optimizer,mode_compute=0,cova_compute=0,MCMC_jumping_covariance=prior_variance,mh_init_scale_factor=0.01);
+@#endif
+
+@#if SMC
+%  estimation(order=1,nograph,posterior_sampling_method='hssmc');
+%  estimation(order=2,nograph,posterior_sampling_method='hssmc',filter_algorithm=nlkf,proposal_approximation=montecarlo);
+%  estimation(order=2,nograph,posterior_sampling_method='hssmc',number_of_particles=10000);
+%  estimation(order=3,nograph,posterior_sampling_method='hssmc',number_of_particles=10000,filter_algorithm=apf,resampling=none);%,posterior_sampler_options=('particles',1000));
+  estimation(order=3,nograph,posterior_sampling_method='hssmc',filter_algorithm=nlkf,proposal_approximation=montecarlo);
 @#endif