diff --git a/ariaec/commands.pyc b/ariaec/commands.pyc
index 6cb3f4ce9085f01222fdf50166463871c2fb80a2..2d377707d3f28aea7f677e655f4cea34ee2eddeb 100644
Binary files a/ariaec/commands.pyc and b/ariaec/commands.pyc differ
diff --git a/ariaec/conf/aria_ec.ini b/ariaec/conf/aria_ec.ini
index e8822f37bd867c2341b05f0f8092a89989ed8289..b9ea1fc14c816845660ba3965aaf809aa1596481 100644
--- a/ariaec/conf/aria_ec.ini
+++ b/ariaec/conf/aria_ec.ini
@@ -1,9 +1,14 @@
 [main]
 ; ------------------------- Main parameters ---------------------------------- #
 ; Leave these fields empty in order to use default files
+; ariaproject_template          : Since there is several differences between
+;                                 aria version in template tags, this package
+;                                 can switch between 2 version actually: 2.3.0
+;                                 with ramachandran potential tag and 2.3.2 with
+;                                 exponent tag
 ss_dist_file:
 scsc_min_file:
-ariaproject_template:
+ariaproject_template:                       2.3.0
 
 [contactdef]
 ; Contact definition section used to define contactmap from pdb file.
@@ -113,13 +118,6 @@ md_parameters_random_seed:                  89764443
 md_parameters_steps_high:                   10000
 md_parameters_steps_cool1:                  5000
 md_parameters_steps_cool2:                  4000
-iteration_n_structures:                     100
-iteration_n_best_structures:                15
-iteration_n_kept_structures:                0
-exponent:                                   20
-max_contribution:                           1000
-merging_method:                             standard
-violation_analysis_violation_threshold:     0.5
 water_refinement_solvent:                   water
 water_refinement_n_structures:              10
 water_refinement_enabled:                   no
@@ -133,6 +131,30 @@ whatif_enabled:                             yes
 clashlist_executable:
 clahlist_enabled:                           no
 pickle_output:                              no
+; --------------------------- Iteration parameters --------------------------- #
+; /!\ Parameters below can be formatted as a list if we want different values
+; foreach iteration. Actually, only  parameters can be set with different
+; values for each iterations (violation tolerance and partial assignment weight
+; treshold)
+iterations:                                 8
+iteration_n_structures:                     100
+iteration_sort_criterion:                   total_energy
+iteration_n_best_structures:                15
+iteration_n_kept_structures:                0
+merging_method:                             standard
+calib_relaxation_matrix:                    no
+calib_distance_cutoff:                      6.0
+calib_estimator:                            ratio_of_averages
+calib_error_estimator:                      distance
+viol_violation_tolerance:                   1000.0,5.0,3.0,1.0,1.0,1.0,0.1,0.1,0.1
+viol_violation_threshold:                   0.5
+partassign_weight_threshold:                1.0,0.9999,0.999,0.99,0.98,0.96,0.93,0.9,0.8
+partassign_max_contributions:               1000
+partassign_exponent:                        6
+netanch_high_residue_threshold:             4.0
+netanch_enabled:                            no
+netanch_min_residue_threshold:              1.0
+netanch_min_atom_threshold:                 0.25
 
 [contactmap]
 ; -------------------------- Contactmap parameters --------------------------- #
diff --git a/ariaec/econverter.py b/ariaec/econverter.py
index 3555110c93d4e8db3100d97ecf25f0c7373e46c0..453bb85d4e5cd9e4d2e3ca5a5c1bca299250d207 100644
--- a/ariaec/econverter.py
+++ b/ariaec/econverter.py
@@ -19,6 +19,7 @@ from .base import get_filename, Capturing
 from .protein import Protein
 from .reader import ProtFileListReader
 from .protmap import (ResAtmMap, ResMap)
+from mako.template import Template
 from aria.Molecule import Molecule
 from aria.tools import string_to_segid
 from aria.AriaXML import AriaXMLPickler
@@ -725,20 +726,19 @@ class AriaEcXMLConverter(AriaXMLConverter):
         :param desc:
         :return:
         """
-        logger.info("Reading aria template file %s" % aria_template)
-        if aria_template:
-            template = os.path.abspath(aria_template)
+        logger.info("Loading aria template file %s" % aria_template)
 
-            try:
-                t = open(template, 'r')
-            except Exception, msg:
-                sys.exit("""Can't open "%s" file. %s""" % (template, msg))
+        templatepath = os.path.abspath(aria_template)
+        ariaproj_template = Template(filename=templatepath,
+                                    module_directory="/tmp/mako_modules")
 
-            aria_project_template = t.read()
-            t.close()
-        else:
-            aria_project_template = pkgr.resource_string(
-                __name__, self.settings.ARIAPROJ_TEMPLATE)
+        try:
+            t = open(templatepath, 'r')
+        except Exception, msg:
+            sys.exit("""Can't open "%s" file. %s""" % (templatepath, msg))
+
+        aria_project_template = t.read()
+        t.close()
 
         aria_project_dict = {}
 
@@ -822,12 +822,10 @@ class AriaEcXMLConverter(AriaXMLConverter):
         data_dihedrals = {'dihed_angle_file': tbl_files["dihed"]}
         aria_project_dict.update(data_dihedrals)
 
-        if self.settings.setup.config['cpus']:
-            aria_project_dict['n_cpus'] = self.settings.setup.config['cpus']
-        else:
-            aria_project_dict['n_cpus'] = '20'
+        aria_project_dict['n_cpus'] = self.settings.setup.config.get('cpus',
+                                                                     '20')
 
         proj_file = "%s/ariaproject.xml" % work_dir
         with open(proj_file, 'w') as proj_xml:
             logger.info("Writing ARIA project file (%s)" % proj_file)
-            proj_xml.write(aria_project_template % aria_project_dict)
+            proj_xml.write(ariaproj_template.render(**aria_project_dict))
diff --git a/ariaec/econverter.pyc b/ariaec/econverter.pyc
index 6d3501f5d813cfc8988d2752f1c152586a65384a..c228c656db48ed9ff2ff44183a90af3b16f69558 100644
Binary files a/ariaec/econverter.pyc and b/ariaec/econverter.pyc differ
diff --git a/ariaec/ecsettings.py b/ariaec/ecsettings.py
index 8eecb1cf5c65d3d91ac21a06cffc9a57437b52b5..dd131a4fb30c5e3e5437f9d023c6d0f2a1197d06 100644
--- a/ariaec/ecsettings.py
+++ b/ariaec/ecsettings.py
@@ -75,14 +75,12 @@ class Settings(object):
 
 class AriaEcSettings(Settings):
 
-    template = os.path.join(os.path.dirname(os.path.realpath(__file__)),
-                            'templates/aria_project.xml')
     # ss_dist = os.path.join(os.path.dirname(os.path.realpath(__file__)),
     #                        'conf/ss_dist.txt')
     # TODO: move these constant variable in objects which can read these file !!
     # TODO: Baseclass inspired from this class and ariabase class. All
     # objects in this package should extend the base object
-    ARIAPROJ_TEMPLATE = 'templates/aria_project.xml'
+    ARIAPROJ_TEMPLATE = 'templates/aria_project_v2.3.0.xml'
     SS_DIST = 'data/ss_dist.txt'
     SCSC_MIN = 'data/scsc_min.p'
     TOPO = 'data/topallhdg5.3.pro'
@@ -136,10 +134,12 @@ class AriaEcSettings(Settings):
     @property
     def template(self):
         if not self._template:
-            if self.main.config["ariaproject_template"] and \
-                    os.path.exists(self.main.config["ariaproject_template"]):
-                self._template = self.main.config["ariaproject_template"]
+            templatepath = "templates/aria_project_v%s.xml" % str(self.main.config["ariaproject_template"])
+            if os.path.exists(pkgr.resource_filename(__name__, templatepath)):
+                self._template = pkgr.resource_filename(__name__, templatepath)
             else:
+                logger.error("Template version for aria project (%s) is not "
+                             "supported" % self.main.config.get("ariaproject_template"))
                 self._template = pkgr.resource_filename(__name__,
                                                         self.ARIAPROJ_TEMPLATE)
         return self._template
diff --git a/ariaec/ecsettings.pyc b/ariaec/ecsettings.pyc
index de9ac5fb88e2143023317d03576a8d895716bfba..255ed5031f4cbbcd88e62c1a883bc47f6365371f 100644
Binary files a/ariaec/ecsettings.pyc and b/ariaec/ecsettings.pyc differ
diff --git a/ariaec/maplot.pyc b/ariaec/maplot.pyc
index 7cc29e955233c6673ff0495a9fa094cfb16255ff..52c27a55568ff104dddf5f68a89fe949ec82cd0d 100644
Binary files a/ariaec/maplot.pyc and b/ariaec/maplot.pyc differ
diff --git a/ariaec/protein.pyc b/ariaec/protein.pyc
index 44407c48708b929725c1e5963072313920b55827..3df5777c7f7fa6aa966518bc7a9d3fbd82c53a12 100644
Binary files a/ariaec/protein.pyc and b/ariaec/protein.pyc differ
diff --git a/ariaec/protmap.pyc b/ariaec/protmap.pyc
index 9608866141f32929e6046b770d1ff1e170af4106..97bdf80fc6bac046dfcd28c7d8a8f59c05779b2f 100644
Binary files a/ariaec/protmap.pyc and b/ariaec/protmap.pyc differ
diff --git a/ariaec/setup.pyc b/ariaec/setup.pyc
index 4017775356dffc582cc0d28878907f1eb8fbb147..61472e585722d579ed2c331f857e43d791d42641 100644
Binary files a/ariaec/setup.pyc and b/ariaec/setup.pyc differ
diff --git a/ariaec/templates/aria_project.xml b/ariaec/templates/aria_project.xml
deleted file mode 100644
index 898fb7e8a7bcbeab878962b262922cf3a19cab88..0000000000000000000000000000000000000000
--- a/ariaec/templates/aria_project.xml
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE project SYSTEM "project1.0.dtd">
-<project name="%(project_name)s" version="1.0" author="" date="%(date)s" description="" comment="" references="" working_directory="%(working_directory)s" temp_root="%(temp_root)s" run="%(runid)s" file_root="%(file_root)s" cache="yes" cleanup="yes">
-  <data>
-    <ccpn_model filename=""/>
-    <molecule file="%(molecule_file)s" format="xml" ccpn_id="">
-      <linkage_definition name="automatic" filename=""/>
-      <parameter_definition name="%(parameter_definition)s" filename=""/>
-      <topology_definition name="automatic" filename=""/>
-    </molecule>%(unambiguous_distance_restraints)s %(ambiguous_distance_restraints)s
-    <hbonds file="%(hbond_dist_file)s" format="tbl" ccpn_id="" enabled="yes" data_type="standard"/>
-    <dihedrals file="%(dihed_angle_file)s" format="tbl" ccpn_id="" enabled="yes" data_type="standard"/>
-    <symmetry enabled="no" method="standard" n_monomers="1" symmetry_type="None" ncs_enabled="no" packing_enabled="no"/>
-    <initial_structure file="" format="iupac" ccpn_id="" enabled="no"/>
-  </data>
-  <structure_generation engine="cns">
-    <cns local_executable="%(cns_executable)s" keep_output="%(cns_keep_output)s" keep_restraint_files="yes" create_psf_file="yes" generate_template="yes" nonbonded_parameters="PROLSQ">
-      <annealing_parameters>
-        <unambiguous_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="%(unambiguous_restraints_k_cool1_initial)s" k_cool1_final="%(unambiguous_restraints_k_cool1_final)s" k_cool2="%(unambiguous_restraints_k_cool2)s"/>
-        <ambiguous_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="10.0" k_cool1_final="50.0" k_cool2="50.0"/>
-        <hbond_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="%(hbond_restraints_k_cool1_initial)s" k_cool1_final="%(hbond_restraints_k_cool1_final)s" k_cool2="%(hbond_restraints_k_cool2)s"/>
-        <dihedral_restraints k_hot="5.0" k_cool1="%(dihedral_restraints_k_cool1)s" k_cool2="%(dihedral_restraints_k_cool2)s"/>
-        <karplus_restraints parameter_class="1" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
-        <karplus_restraints parameter_class="2" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
-        <karplus_restraints parameter_class="3" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
-        <karplus_restraints parameter_class="4" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
-        <karplus_restraints parameter_class="5" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
-        <rdc_restraints parameter_class="1" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
-        <rdc_restraints parameter_class="2" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
-        <rdc_restraints parameter_class="3" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
-        <rdc_restraints parameter_class="4" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
-        <rdc_restraints parameter_class="5" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
-        <flat_bottom_harmonic_wall m_rswitch_hot="0.5" m_rswitch_cool1="0.5" m_rswitch_cool2="0.5" rswitch_hot="0.5" rswitch_cool1="0.5" rswitch_cool2="0.5" m_asymptote_hot="-1.0" m_asymptote_cool1="-1.0" m_asymptote_cool2="-0.1" asymptote_hot="1.0" asymptote_cool1="1.0" asymptote_cool2="0.1"/>
-        <symmetry_restraints k_packing_hot="15.0" k_packing_cool1="10.0" k_packing_cool2="5.0" last_iteration_packing="8" k_ncs="50.0"/>
-        <logharmonic_potential enabled="%(logharmonic_potential_enabled)s" use_auto_weight="%(logharmonic_potential_use_auto_weight)s" weight_unambig="%(logharmonic_potential_weight_unambig)s" weight_ambig="%(logharmonic_potential_weight_ambig)s" weight_hbond="%(logharmonic_potential_weight_hbond)s"/>
-        <rama_potential enabled="%(rama_potential_enabled)s" weight_rama="1.0"/>
-      </annealing_parameters>
-      <md_parameters dynamics="torsion" random_seed="%(md_parameters_random_seed)s" tad_temp_high="10000.0" tad_timestep_factor="9.0" cartesian_temp_high="2000.0" cartesian_first_iteration="0" timestep="0.003" temp_cool1_final="1000.0" temp_cool2_final="50.0" steps_high="%(md_parameters_steps_high)s" steps_refine="4000" steps_cool1="%(md_parameters_steps_cool1)s" steps_cool2="%(md_parameters_steps_cool2)s"/>
-    </cns>
-    <job_manager default_command="csh -f">
-      <host enabled="yes" command="%(host_command)s" executable="/baycells/home/bardiaux/bin/cns1.21_aria_logn_linux_x86_64_intel.exe" n_cpu="%(n_cpus)s" use_absolute_path="yes"/>
-    </job_manager>
-  </structure_generation>
-  <protocol floating_assignment="yes">
-    <iteration number="0" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="standard"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="1000.0" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="1.0" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <iteration number="1" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="standard"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="5.0" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="0.9999" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <iteration number="2" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="standard"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="3.0" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="0.999" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <iteration number="3" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="standard"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="1.0" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="0.99" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <iteration number="4" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="standard"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="1.0" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="0.98" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <iteration number="5" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="standard"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="1.0" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="0.96" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <iteration number="6" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="standard"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="0.1" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="0.93" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <iteration number="7" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="standard"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="0.1" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="0.9" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <iteration number="8" n_structures="%(iteration_n_structures)s" sort_criterion="total_energy" n_best_structures="%(iteration_n_best_structures)s" n_kept_structures="%(iteration_n_kept_structures)s">
-      <assignment/>
-      <merging method="%(merging_method)s"/>
-      <calibration relaxation_matrix="no" distance_cutoff="6.0" estimator="ratio_of_averages" error_estimator="distance"/>
-      <violation_analysis violation_tolerance="0.1" violation_threshold="%(violation_analysis_violation_threshold)s"/>
-      <partial_assignment weight_threshold="0.8" max_contributions="%(max_contribution)s" exponent="%(exponent)s"/>
-      <network_anchoring high_residue_threshold="4.0" enabled="no" min_residue_threshold="1.0" min_atom_threshold="0.25"/>
-    </iteration>
-    <water_refinement solvent="%(water_refinement_solvent)s" n_structures="%(water_refinement_n_structures)s" enabled="%(water_refinement_enabled)s" write_solvent_molecules="%(water_refinement_write_solvent_molecules)s"/>
-  </protocol>
-  <analysis>
-    <structures_analysis enabled="yes"/>
-    <procheck executable="%(procheck_executable)s" enabled="%(procheck_enabled)s"/>
-    <prosa executable="%(prosa_executable)s" enabled="%(prosa_enabled)s"/>
-    <whatif executable="%(whatif_executable)s" enabled="%(whatif_enabled)s"/>
-    <clashlist executable="%(clashlist_executable)s" enabled="%(clahlist_enabled)s"/>
-  </analysis>
-  <report>
-    <ccpn export_assignments="no" export_noe_restraint_list="no" export_structures="no"/>
-    <molmol enabled="yes"/>
-    <noe_restraint_list pickle_output="%(pickle_output)s" text_output="yes" xml_output="no"/>
-    <spectra write_assigned="no" write_assigned_force="no" iteration="last" write_unambiguous_only="yes"/>
-  </report>
-</project>
diff --git a/ariaec/templates/aria_project_v2.3.0.xml b/ariaec/templates/aria_project_v2.3.0.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f6c304269e6900858edc2f462328595d187513dd
--- /dev/null
+++ b/ariaec/templates/aria_project_v2.3.0.xml
@@ -0,0 +1,69 @@
+<!DOCTYPE project SYSTEM "project1.0.dtd">
+<project name="${project_name}" version="1.0" author="" date="${date}" description="" comment="" references="" working_directory="${working_directory}" temp_root="${temp_root}" run="${runid}" file_root="${file_root}" cache="yes" cleanup="yes">
+  <data>
+    <ccpn_model filename=""/>
+    <molecule file="${molecule_file}" format="xml" ccpn_id="">
+      <linkage_definition name="automatic" filename=""/>
+      <parameter_definition name="${parameter_definition}" filename=""/>
+      <topology_definition name="automatic" filename=""/>
+    </molecule>${unambiguous_distance_restraints} ${ambiguous_distance_restraints}
+    <hbonds file="${hbond_dist_file}" format="tbl" ccpn_id="" enabled="yes" data_type="standard"/>
+    <dihedrals file="${dihed_angle_file}" format="tbl" ccpn_id="" enabled="yes" data_type="standard"/>
+    <symmetry enabled="no" method="standard" n_monomers="1" symmetry_type="None" ncs_enabled="no" packing_enabled="no"/>
+    <initial_structure file="" format="iupac" ccpn_id="" enabled="no"/>
+  </data>
+  <structure_generation engine="cns">
+    <cns local_executable="${cns_executable}" keep_output="${cns_keep_output}" keep_restraint_files="yes" create_psf_file="yes" generate_template="yes" nonbonded_parameters="PROLSQ">
+      <annealing_parameters>
+        <unambiguous_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="${unambiguous_restraints_k_cool1_initial}" k_cool1_final="${unambiguous_restraints_k_cool1_final}" k_cool2="${unambiguous_restraints_k_cool2}"/>
+        <ambiguous_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="10.0" k_cool1_final="50.0" k_cool2="50.0"/>
+        <hbond_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="${hbond_restraints_k_cool1_initial}" k_cool1_final="${hbond_restraints_k_cool1_final}" k_cool2="${hbond_restraints_k_cool2}"/>
+        <dihedral_restraints k_hot="5.0" k_cool1="${dihedral_restraints_k_cool1}" k_cool2="${dihedral_restraints_k_cool2}"/>
+        <karplus_restraints parameter_class="1" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <karplus_restraints parameter_class="2" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <karplus_restraints parameter_class="3" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <karplus_restraints parameter_class="4" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <karplus_restraints parameter_class="5" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <rdc_restraints parameter_class="1" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <rdc_restraints parameter_class="2" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <rdc_restraints parameter_class="3" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <rdc_restraints parameter_class="4" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <rdc_restraints parameter_class="5" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <flat_bottom_harmonic_wall m_rswitch_hot="0.5" m_rswitch_cool1="0.5" m_rswitch_cool2="0.5" rswitch_hot="0.5" rswitch_cool1="0.5" rswitch_cool2="0.5" m_asymptote_hot="-1.0" m_asymptote_cool1="-1.0" m_asymptote_cool2="-0.1" asymptote_hot="1.0" asymptote_cool1="1.0" asymptote_cool2="0.1"/>
+        <symmetry_restraints k_packing_hot="15.0" k_packing_cool1="10.0" k_packing_cool2="5.0" last_iteration_packing="8" k_ncs="50.0"/>
+        <logharmonic_potential enabled="${logharmonic_potential_enabled}" use_auto_weight="${logharmonic_potential_use_auto_weight}" weight_unambig="${logharmonic_potential_weight_unambig}" weight_ambig="${logharmonic_potential_weight_ambig}" weight_hbond="${logharmonic_potential_weight_hbond}"/>
+        <rama_potential enabled="${rama_potential_enabled}" weight_rama="1.0"/>
+      </annealing_parameters>
+      <md_parameters dynamics="torsion" random_seed="${md_parameters_random_seed}" tad_temp_high="10000.0" tad_timestep_factor="9.0" cartesian_temp_high="2000.0" cartesian_first_iteration="0" timestep="0.003" temp_cool1_final="1000.0" temp_cool2_final="50.0" steps_high="${md_parameters_steps_high}" steps_refine="4000" steps_cool1="${md_parameters_steps_cool1}" steps_cool2="${md_parameters_steps_cool2}"/>
+    </cns>
+    <job_manager default_command="csh -f">
+      <host enabled="yes" command="${host_command}" executable="/baycells/home/bardiaux/bin/cns1.21_aria_logn_linux_x86_64_intel.exe" n_cpu="${n_cpus}" use_absolute_path="yes"/>
+    </job_manager>
+  </structure_generation>
+  <protocol floating_assignment="yes">
+    % for iter in range(0, int(iterations + 1)):
+    <iteration number="${iter}" n_structures="${iteration_n_structures}" sort_criterion="${iteration_sort_criterion}" n_best_structures="${iteration_n_best_structures}" n_kept_structures="${iteration_n_kept_structures}">
+      <assignment/>
+      <merging method="${merging_method}"/>
+      <calibration relaxation_matrix="${calib_relaxation_matrix}" distance_cutoff="${calib_distance_cutoff}" estimator="${calib_estimator}" error_estimator="${calib_error_estimator}"/>
+      <violation_analysis violation_tolerance="${viol_violation_tolerance[iter]}" violation_threshold="${viol_violation_threshold}"/>
+      <partial_assignment  weight_threshold="${partassign_weight_threshold[iter]}" max_contributions="${partassign_max_contributions}"/>
+      <network_anchoring high_residue_threshold="${netanch_high_residue_threshold}" enabled="${netanch_enabled}" min_residue_threshold="${netanch_min_residue_threshold}" min_atom_threshold="${netanch_min_atom_threshold}"/>
+    </iteration>
+    % endfor
+    <water_refinement solvent="${water_refinement_solvent}" n_structures="${water_refinement_n_structures}" enabled="${water_refinement_enabled}" write_solvent_molecules="${water_refinement_write_solvent_molecules}"/>
+  </protocol>
+  <analysis>
+    <structures_analysis enabled="yes"/>
+    <procheck executable="${procheck_executable}" enabled="${procheck_enabled}"/>
+    <prosa executable="${prosa_executable}" enabled="${prosa_enabled}"/>
+    <whatif executable="${whatif_executable}" enabled="${whatif_enabled}"/>
+    <clashlist executable="${clashlist_executable}" enabled="${clahlist_enabled}"/>
+  </analysis>
+  <report>
+    <ccpn export_assignments="no" export_noe_restraint_list="no" export_structures="no"/>
+    <molmol enabled="yes"/>
+    <noe_restraint_list pickle_output="${pickle_output}" text_output="yes" xml_output="no"/>
+    <spectra write_assigned="no" write_assigned_force="no" iteration="last" write_unambiguous_only="yes"/>
+  </report>
+</project>
diff --git a/ariaec/templates/aria_project_v2.3.2.xml b/ariaec/templates/aria_project_v2.3.2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..63816698dd0e9e3330207471ac9da9f3782d2e3d
--- /dev/null
+++ b/ariaec/templates/aria_project_v2.3.2.xml
@@ -0,0 +1,69 @@
+<!DOCTYPE project SYSTEM "project1.0.dtd">
+<project name="${project_name}" version="1.0" author="" date="${date}" description="" comment="" references="" working_directory="${working_directory}" temp_root="${temp_root}" run="${runid}" file_root="${file_root}" cache="yes" cleanup="yes">
+  <data>
+    <ccpn_model filename=""/>
+    <molecule file="${molecule_file}" format="xml" ccpn_id="">
+      <linkage_definition name="automatic" filename=""/>
+      <parameter_definition name="${parameter_definition}" filename=""/>
+      <topology_definition name="automatic" filename=""/>
+    </molecule>${unambiguous_distance_restraints} ${ambiguous_distance_restraints}
+    <hbonds file="${hbond_dist_file}" format="tbl" ccpn_id="" enabled="yes" data_type="standard"/>
+    <dihedrals file="${dihed_angle_file}" format="tbl" ccpn_id="" enabled="yes" data_type="standard"/>
+    <symmetry enabled="no" method="standard" n_monomers="1" symmetry_type="None" ncs_enabled="no" packing_enabled="no"/>
+    <initial_structure file="" format="iupac" ccpn_id="" enabled="no"/>
+  </data>
+  <structure_generation engine="cns">
+    <cns local_executable="${cns_executable}" keep_output="${cns_keep_output}" keep_restraint_files="yes" create_psf_file="yes" generate_template="yes" nonbonded_parameters="PROLSQ">
+      <annealing_parameters>
+        <unambiguous_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="${unambiguous_restraints_k_cool1_initial}" k_cool1_final="${unambiguous_restraints_k_cool1_final}" k_cool2="${unambiguous_restraints_k_cool2}"/>
+        <ambiguous_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="10.0" k_cool1_final="50.0" k_cool2="50.0"/>
+        <hbond_restraints first_iteration="0" k_hot="10.0" k_cool1_initial="${hbond_restraints_k_cool1_initial}" k_cool1_final="${hbond_restraints_k_cool1_final}" k_cool2="${hbond_restraints_k_cool2}"/>
+        <dihedral_restraints k_hot="5.0" k_cool1="${dihedral_restraints_k_cool1}" k_cool2="${dihedral_restraints_k_cool2}"/>
+        <karplus_restraints parameter_class="1" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <karplus_restraints parameter_class="2" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <karplus_restraints parameter_class="3" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <karplus_restraints parameter_class="4" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <karplus_restraints parameter_class="5" a="6.98" b="-1.38" c="1.72" d="-60.0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0"/>
+        <rdc_restraints parameter_class="1" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <rdc_restraints parameter_class="2" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <rdc_restraints parameter_class="3" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <rdc_restraints parameter_class="4" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <rdc_restraints parameter_class="5" method="SANI" first_iteration="0" k_hot="0.0" k_cool1="0.2" k_cool2="1.0" r="0.4" d="8.0" border_hot_initial="0.1" border_hot_final="40.0" border_cool1_initial="40.0" border_cool1_final="40.0" border_cool2_initial="40.0" border_cool2_final="40.0" center_hot_initial="0.1" center_hot_final="0.1" center_cool1_initial="10.0" center_cool1_final="10.0" center_cool2_initial="10.0" center_cool2_final="10.0"/>
+        <flat_bottom_harmonic_wall m_rswitch_hot="0.5" m_rswitch_cool1="0.5" m_rswitch_cool2="0.5" rswitch_hot="0.5" rswitch_cool1="0.5" rswitch_cool2="0.5" m_asymptote_hot="-1.0" m_asymptote_cool1="-1.0" m_asymptote_cool2="-0.1" asymptote_hot="1.0" asymptote_cool1="1.0" asymptote_cool2="0.1"/>
+        <symmetry_restraints k_packing_hot="15.0" k_packing_cool1="10.0" k_packing_cool2="5.0" last_iteration_packing="8" k_ncs="50.0"/>
+        <logharmonic_potential enabled="${logharmonic_potential_enabled}" use_auto_weight="${logharmonic_potential_use_auto_weight}" weight_unambig="${logharmonic_potential_weight_unambig}" weight_ambig="${logharmonic_potential_weight_ambig}" weight_hbond="${logharmonic_potential_weight_hbond}"/>
+        <rama_potential enabled="${rama_potential_enabled}" weight_rama="1.0"/>
+      </annealing_parameters>
+      <md_parameters dynamics="torsion" random_seed="${md_parameters_random_seed}" tad_temp_high="10000.0" tad_timestep_factor="9.0" cartesian_temp_high="2000.0" cartesian_first_iteration="0" timestep="0.003" temp_cool1_final="1000.0" temp_cool2_final="50.0" steps_high="${md_parameters_steps_high}" steps_refine="4000" steps_cool1="${md_parameters_steps_cool1}" steps_cool2="${md_parameters_steps_cool2}"/>
+    </cns>
+    <job_manager default_command="csh -f">
+      <host enabled="yes" command="${host_command}" executable="/baycells/home/bardiaux/bin/cns1.21_aria_logn_linux_x86_64_intel.exe" n_cpu="${n_cpus}" use_absolute_path="yes"/>
+    </job_manager>
+  </structure_generation>
+  <protocol floating_assignment="yes">
+    % for iter in range(0, int(iterations + 1)):
+    <iteration number="${iter}" n_structures="${iteration_n_structures}" sort_criterion="${iteration_sort_criterion}" n_best_structures="${iteration_n_best_structures}" n_kept_structures="${iteration_n_kept_structures}">
+      <assignment/>
+      <merging method="${merging_method}"/>
+      <calibration relaxation_matrix="${calib_relaxation_matrix}" distance_cutoff="${calib_distance_cutoff}" estimator="${calib_estimator}" error_estimator="${calib_error_estimator}"/>
+      <violation_analysis violation_tolerance="${viol_violation_tolerance[iter]}" violation_threshold="${viol_violation_threshold}"/>
+      <partial_assignment weight_threshold="${partassign_weight_threshold[iter]}" max_contributions="${partassign_max_contributions}" exponent="${partassign_exponent}"/>
+      <network_anchoring high_residue_threshold="${netanch_high_residue_threshold}" enabled="${netanch_enabled}" min_residue_threshold="${netanch_min_residue_threshold}" min_atom_threshold="${netanch_min_atom_threshold}"/>
+    </iteration>
+    % endfor
+    <water_refinement solvent="${water_refinement_solvent}" n_structures="${water_refinement_n_structures}" enabled="${water_refinement_enabled}" write_solvent_molecules="${water_refinement_write_solvent_molecules}"/>
+  </protocol>
+  <analysis>
+    <structures_analysis enabled="yes"/>
+    <procheck executable="${procheck_executable}" enabled="${procheck_enabled}"/>
+    <prosa executable="${prosa_executable}" enabled="${prosa_enabled}"/>
+    <whatif executable="${whatif_executable}" enabled="${whatif_enabled}"/>
+    <clashlist executable="${clashlist_executable}" enabled="${clahlist_enabled}"/>
+  </analysis>
+  <report>
+    <ccpn export_assignments="no" export_noe_restraint_list="no" export_structures="no"/>
+    <molmol enabled="yes"/>
+    <noe_restraint_list pickle_output="${pickle_output}" text_output="yes" xml_output="no"/>
+    <spectra write_assigned="no" write_assigned_force="no" iteration="last" write_unambiguous_only="yes"/>
+  </report>
+</project>