diff --git a/App/inc/FunctionalTestFactory.h b/App/inc/FunctionalTestFactory.h
index 8b7dd7e82e5d3a70cfdedf24386a047e091d6e13..a3265304f7701c684badb4f52bdab419ef438a3f 100644
--- a/App/inc/FunctionalTestFactory.h
+++ b/App/inc/FunctionalTestFactory.h
@@ -46,9 +46,6 @@ public:
     //! Prints benchmark summary
     void print_benchmarks();
 
-    iterator begin() { return m_descriptions.begin(); }
-    iterator end() { return m_descriptions.end(); }
-
 private:
     TBenchmark *m_benchmark;
 };
diff --git a/App/src/SampleFactory.cpp b/App/src/SampleFactory.cpp
index 31b7f76dd8d54de12646afac494487b7c2f68f21..a46aa7a2885fd943ae703a1fa37654cb574f72a8 100644
--- a/App/src/SampleFactory.cpp
+++ b/App/src/SampleFactory.cpp
@@ -51,8 +51,8 @@ SampleFactory::SampleFactory()
             StandardSamples::MultilayerSpecularMagneticTestCase);
 
     // magnetic cylinders on substrate for polarized DWBA
-    registerItem("PolarizedDWBATestCase",
-            StandardSamples::PolarizedDWBATestCase);
+//    registerItem("PolarizedDWBATestCase",
+//            StandardSamples::PolarizedDWBATestCase);
 
     // cylinder DWBA form factor with matrix calculation
  //   registerItem("PolarizedDWBAZeroMagTestCase",
diff --git a/App/src/StandardSamples.cpp b/App/src/StandardSamples.cpp
index 57c80541a0bb4d917e465a0267d29e446b09d8cc..66b0d910e72b07852132ae831749ec3eca77c86b 100644
--- a/App/src/StandardSamples.cpp
+++ b/App/src/StandardSamples.cpp
@@ -1151,6 +1151,9 @@ ISample *StandardSamples::PolarizedDWBATestCase()
     const IMaterial *mPart =
         MaterialManager::getHomogeneousMagneticMaterial
         ("particle", 5e-6, 0.0, magnetic_field);
+//    const IMaterial *mPart =
+//        MaterialManager::getHomogeneousMaterial
+//        ("particle", 5e-6, 0.0);
     const IMaterial *mSubstrate =
         MaterialManager::getHomogeneousMaterial
         ("substrate", 15e-6, 0.0 );
diff --git a/App/src/TestMesoCrystal2.cpp b/App/src/TestMesoCrystal2.cpp
index 51efb8d167a846fcb21593644335338e575a3bb4..69d03de30392abd13d153f808dd25e8a5f4b948b 100644
--- a/App/src/TestMesoCrystal2.cpp
+++ b/App/src/TestMesoCrystal2.cpp
@@ -105,17 +105,17 @@ void TestMesoCrystal2::draw_results()
 
 //    IsGISAXSTools::drawOutputDataComparisonResults(*m_simulation->getOutputData(), *m_real_data, "initial", "initial params", 100, 1e6, 100);
 
-    m_sample_builder->setMatchedParametersValue("*/lattice_length_a", 6.2091e+00);           // 6.2
-    m_sample_builder->setMatchedParametersValue("*/lattice_length_c", 6.5677e+00);           // 6.2
-    m_sample_builder->setMatchedParametersValue("*/nanoparticle_radius", 4.6976e+00);        // 5.7
-    m_sample_builder->setMatchedParametersValue("*/sigma_nanoparticle_radius", 3.6720e-01);  // 0.1
-    m_sample_builder->setMatchedParametersValue("*/meso_height", 1.1221e+02);  // 0.1
-    m_sample_builder->setMatchedParametersValue("*/meso_radius", 9.4567e+02);  // 0.1
-    m_sample_builder->setMatchedParametersValue("*/sigma_meso_height", 1.3310e+00);  // 0.1
-    m_sample_builder->setMatchedParametersValue("*/sigma_meso_radius", 1.3863e+00);  // 0.1
-    m_sample_builder->setMatchedParametersValue("*/sigma_lattice_length_a", 1.1601e+00);     // 1.5
-    m_sample_builder->setMatchedParametersValue("*/surface_filling_ratio", 1.7286e-01);      // 0.25
-    m_sample_builder->setMatchedParametersValue("*/roughness", 2.8746e+01);                      // 1.0
+    m_sample_builder->setParameterValue("lattice_length_c", 6.5677e+00);           // 6.2
+    m_sample_builder->setParameterValue("lattice_length_a", 6.2091e+00);           // 6.2
+    m_sample_builder->setParameterValue("nanoparticle_radius", 4.6976e+00);        // 5.7
+    m_sample_builder->setParameterValue("sigma_nanoparticle_radius", 3.6720e-01);  // 0.1
+    m_sample_builder->setParameterValue("meso_height", 1.1221e+02);  // 0.1
+    m_sample_builder->setParameterValue("meso_radius", 9.4567e+02);  // 0.1
+    m_sample_builder->setParameterValue("sigma_meso_height", 1.3310e+00);  // 0.1
+    m_sample_builder->setParameterValue("sigma_meso_radius", 1.3863e+00);  // 0.1
+    m_sample_builder->setParameterValue("sigma_lattice_length_a", 1.1601e+00);     // 1.5
+    m_sample_builder->setParameterValue("surface_filling_ratio", 1.7286e-01);      // 0.25
+    m_sample_builder->setParameterValue("roughness", 2.8746e+01);                      // 1.0
     m_simulation->setBeamIntensity(5.0090e+12);
     std::cout << *pool << std::endl;
     m_simulation->runSimulation();
diff --git a/App/src/TestMiscellaneous.cpp b/App/src/TestMiscellaneous.cpp
index 051fd6b5340e22213d5b51d99e534db840a9186f..26ddfa7f28a8db3a1779a758a6e4645d46ae54ec 100644
--- a/App/src/TestMiscellaneous.cpp
+++ b/App/src/TestMiscellaneous.cpp
@@ -13,8 +13,6 @@
 //
 // ************************************************************************** //
 
-#include "ISampleHierarchicalVisitor.h"
-
 #include "TestMiscellaneous.h"
 #include "SampleFactory.h"
 #include "OutputData.h"
@@ -53,8 +51,8 @@ TestMiscellaneous::TestMiscellaneous()
 
 void TestMiscellaneous::execute()
 {
-    test_HierarchicalVisitor();
-    //test_PrintVisitor();
+    //test_HierarchicalVisitor();
+    test_PrintVisitor();
     //test_LogSystem();
     //test_OutputDataTo2DArray();
     //test_KVectorContainer();
@@ -72,13 +70,7 @@ void TestMiscellaneous::execute()
 /* ************************************************************************* */
 void TestMiscellaneous::test_HierarchicalVisitor()
 {
-    std::cout << "TestMiscellaneous::test_PrintVisitor() ->" << std::endl;
-    SampleBuilderFactory factory;
-    ISample *sample = factory.createSample("isgisaxs04_2DDL");
-    //std::cout << (*sample) << std::endl;
 
-    SamplePrintVisitor visitor;
-    sample->accept(&visitor);
 }
 
 
@@ -89,11 +81,21 @@ void TestMiscellaneous::test_PrintVisitor()
 {
     std::cout << "TestMiscellaneous::test_PrintVisitor() ->" << std::endl;
     SampleBuilderFactory factory;
-    ISample *sample = factory.createSample("isgisaxs04_2DDL");
-    //std::cout << (*sample) << std::endl;
 
-    SamplePrintVisitor visitor;
-    sample->accept(&visitor);
+    for(SampleBuilderFactory::iterator it = factory.begin(); it!= factory.end(); ++it) {
+        ISample *sample = factory.createSample((*it).first);
+        std::cout << std::endl << ">>> " << (*it).first << " <<<" << std::endl;
+        sample->printSampleTree();
+        delete sample;
+    }
+
+    for(SampleBuilderFactory::iterator it = factory.begin(); it!= factory.end(); ++it) {
+        ISample *sample = factory.createSample((*it).first);
+        std::cout << "xxxxx " << (*it).first << " " << sample->containsMagneticMaterial() << std::endl;
+        delete sample;
+    }
+
+
 }
 
 
diff --git a/Core/FormFactors/inc/FormFactorBox.h b/Core/FormFactors/inc/FormFactorBox.h
index 4e73b14e7d38aa14c6600c5c13c9f7ab6510f4c4..adeb14d495cf3655c2c98b939eb0a48b1ed5fb13 100644
--- a/Core/FormFactors/inc/FormFactorBox.h
+++ b/Core/FormFactors/inc/FormFactorBox.h
@@ -32,8 +32,6 @@ public:
             init_parameters();
         }
 
-
-
     virtual ~FormFactorBox() {}
 
     FormFactorBox *clone() const;
diff --git a/Core/FormFactors/inc/FormFactorDWBA.h b/Core/FormFactors/inc/FormFactorDWBA.h
index 6a449b752545dd1fdeba736fc219c09a838ce877..da38d801e095884da37d70203bc7c6571721dd12 100644
--- a/Core/FormFactors/inc/FormFactorDWBA.h
+++ b/Core/FormFactors/inc/FormFactorDWBA.h
@@ -29,6 +29,8 @@ public:
 
     virtual FormFactorDWBA *clone() const;
 
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
+
     //! Sets reflection/transmission info for scalar DWBA simulation
     void setSpecularInfo(const LayerSpecularInfo& layer_specular_info);
 
diff --git a/Core/FormFactors/inc/FormFactorDWBAConstZ.h b/Core/FormFactors/inc/FormFactorDWBAConstZ.h
index 1bc2fc0c4303f043d20292996d85938f0b2e704d..b3668429825c5b8637a6f86e6489f8df2109f575 100644
--- a/Core/FormFactors/inc/FormFactorDWBAConstZ.h
+++ b/Core/FormFactors/inc/FormFactorDWBAConstZ.h
@@ -26,6 +26,7 @@ public:
     FormFactorDWBAConstZ(IFormFactor* p_form_factor, double depth=0.0);
     virtual ~FormFactorDWBAConstZ() {}
     virtual FormFactorDWBAConstZ *clone() const;
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     virtual complex_t evaluate(const cvector_t& k_i,
             const Bin1DCVector& k_f_bin, Bin1D alpha_f_bin) const;
diff --git a/Core/FormFactors/inc/FormFactorDWBAPol.h b/Core/FormFactors/inc/FormFactorDWBAPol.h
index dc1fcefbe9c9ddf4f7504795549da8c4b6df9f10..2d7088c077558c039f952acc80f67bb4a8c0cc63 100644
--- a/Core/FormFactors/inc/FormFactorDWBAPol.h
+++ b/Core/FormFactors/inc/FormFactorDWBAPol.h
@@ -29,6 +29,9 @@ public:
 
     virtual FormFactorDWBAPol *clone() const;
 
+    //! calls the ISampleVisitor's visit method
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
+
     //! Throws exception
     virtual complex_t evaluate(const cvector_t& k_i,
             const Bin1DCVector& k_f_bin, Bin1D alpha_f) const;
diff --git a/Core/FormFactors/inc/FormFactorDWBAPolConstZ.h b/Core/FormFactors/inc/FormFactorDWBAPolConstZ.h
index 2ab38e06656767eed9ac101d72994afb29ce8789..dbed3d4002af355d7dc8c19ceb4ada6a8d977abc 100644
--- a/Core/FormFactors/inc/FormFactorDWBAPolConstZ.h
+++ b/Core/FormFactors/inc/FormFactorDWBAPolConstZ.h
@@ -28,6 +28,9 @@ public:
 
     virtual FormFactorDWBAPolConstZ *clone() const;
 
+    //! calls the ISampleVisitor's visit method
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
+
     //! Calculates and returns a polarized form factor calculation in DWBA
     virtual Eigen::Matrix2cd evaluatePol(const cvector_t& k_i,
             const Bin1DCVector& k_f_bin, Bin1D alpha_f, Bin1D phi_f) const;
diff --git a/Core/FormFactors/inc/FormFactorDecoratorDebyeWaller.h b/Core/FormFactors/inc/FormFactorDecoratorDebyeWaller.h
index 74de998fa53f87b66bdb80c30ded7d6a9ba7b2de..6b90520e08ebeaace1c7984868167aeb132d70fe 100644
--- a/Core/FormFactors/inc/FormFactorDecoratorDebyeWaller.h
+++ b/Core/FormFactors/inc/FormFactorDecoratorDebyeWaller.h
@@ -39,6 +39,8 @@ public:
 
     virtual FormFactorDecoratorDebyeWaller *clone() const;
 
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
+
     virtual complex_t evaluate(const cvector_t& k_i,
             const Bin1DCVector& k_f_bin, Bin1D alpha_f_bin) const;
 
diff --git a/Core/FormFactors/inc/FormFactorDecoratorFactor.h b/Core/FormFactors/inc/FormFactorDecoratorFactor.h
index 59c44a8aff6dd147be7811f16143a52d67ebefdb..a8a7de62dc2bf84cdfc10683320c90539ba6bc71 100644
--- a/Core/FormFactors/inc/FormFactorDecoratorFactor.h
+++ b/Core/FormFactors/inc/FormFactorDecoratorFactor.h
@@ -24,8 +24,9 @@ class BA_CORE_API_ FormFactorDecoratorFactor : public IFormFactorDecorator
 {
 public:
     FormFactorDecoratorFactor(IFormFactor *p_form_factor, const complex_t& factor);
-    virtual FormFactorDecoratorFactor *clone() const;
     virtual ~FormFactorDecoratorFactor() {}
+    virtual FormFactorDecoratorFactor *clone() const;
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     //! Evaluate the form factor for scalar calculations
     virtual complex_t evaluate(const cvector_t& k_i,
diff --git a/Core/FormFactors/inc/FormFactorDecoratorMaterial.h b/Core/FormFactors/inc/FormFactorDecoratorMaterial.h
index db3cd3e3e85e9ab31a2307d18385cd9084cc0b77..661e58bd60ec52374f3b981e90b25b8b2a878d3b 100644
--- a/Core/FormFactors/inc/FormFactorDecoratorMaterial.h
+++ b/Core/FormFactors/inc/FormFactorDecoratorMaterial.h
@@ -32,6 +32,8 @@ public:
 
     virtual FormFactorDecoratorMaterial *clone() const;
 
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
+
     //! Sets the material of the scatterer
     virtual void setMaterial(const IMaterial *p_material);
 
diff --git a/Core/FormFactors/inc/FormFactorDecoratorMultiPositionFactor.h b/Core/FormFactors/inc/FormFactorDecoratorMultiPositionFactor.h
index 8131b5aa5b4b3c778c71c6656d193d52e36abe4e..86c82322e38fd682fff45f55af3bf16472e6d0b8 100644
--- a/Core/FormFactors/inc/FormFactorDecoratorMultiPositionFactor.h
+++ b/Core/FormFactors/inc/FormFactorDecoratorMultiPositionFactor.h
@@ -28,6 +28,8 @@ public:
     virtual ~FormFactorDecoratorMultiPositionFactor() {}
     virtual FormFactorDecoratorMultiPositionFactor *clone() const;
 
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
+
     virtual complex_t evaluate(const cvector_t& k_i,
             const Bin1DCVector& k_f_bin, Bin1D alpha_f_bin) const;
 
diff --git a/Core/FormFactors/inc/FormFactorDecoratorPositionFactor.h b/Core/FormFactors/inc/FormFactorDecoratorPositionFactor.h
index 00063b69e1587cfb72caa9906557c9573f9dda5a..1db9e93abb17d36f8c0d70e2d63e7493eeb40f02 100644
--- a/Core/FormFactors/inc/FormFactorDecoratorPositionFactor.h
+++ b/Core/FormFactors/inc/FormFactorDecoratorPositionFactor.h
@@ -28,6 +28,7 @@ public:
             kvector_t position);
     virtual ~FormFactorDecoratorPositionFactor() {}
     virtual FormFactorDecoratorPositionFactor *clone() const;
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     virtual complex_t evaluate(const cvector_t& k_i,
             const Bin1DCVector& k_f_bin, Bin1D alpha_f_bin) const;
diff --git a/Core/FormFactors/inc/FormFactorDecoratorTransformation.h b/Core/FormFactors/inc/FormFactorDecoratorTransformation.h
index cd1a3f3a6ae7abc5657cd5f45097aedf0e98d7e6..23b8e6bbdeba09c5f315f46b579252274e103f74 100644
--- a/Core/FormFactors/inc/FormFactorDecoratorTransformation.h
+++ b/Core/FormFactors/inc/FormFactorDecoratorTransformation.h
@@ -40,6 +40,7 @@ public:
     virtual ~FormFactorDecoratorTransformation() {}
 
     virtual FormFactorDecoratorTransformation *clone() const;
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     virtual complex_t evaluate(const cvector_t& k_i,
             const Bin1DCVector& k_f_bin, Bin1D alpha_f_bin) const;
diff --git a/Core/FormFactors/inc/FormFactorWeighted.h b/Core/FormFactors/inc/FormFactorWeighted.h
index 97f97161478bb8170b57b5eafb51521a1ef74a8c..3512abc9e426188eb9fde173b0f26c7667670c27 100644
--- a/Core/FormFactors/inc/FormFactorWeighted.h
+++ b/Core/FormFactors/inc/FormFactorWeighted.h
@@ -28,6 +28,9 @@ public:
     virtual ~FormFactorWeighted();
     virtual FormFactorWeighted *clone() const;
 
+    //! calls the ISampleVisitor's visit method
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
+
     void addFormFactor(const IFormFactor& form_factor, double weight=1.0);
 
     virtual void setAmbientMaterial(const IMaterial *p_material);
diff --git a/Core/FormFactors/inc/IFormFactorBorn.h b/Core/FormFactors/inc/IFormFactorBorn.h
index c1fcd0518bfed5f1f5992d720a7764eb185fd3a5..6223cf41798a472e3861ed23cfbd24d1d017e1dd 100644
--- a/Core/FormFactors/inc/IFormFactorBorn.h
+++ b/Core/FormFactors/inc/IFormFactorBorn.h
@@ -27,9 +27,7 @@ public:
     virtual ~IFormFactorBorn() {}
     virtual IFormFactorBorn *clone() const=0;
 
-    virtual void accept(ISampleVisitor *visitor) const {
-        visitor->visit(this);
-    }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     virtual complex_t evaluate(const cvector_t& k_i,
             const Bin1DCVector& k_f_bin, Bin1D alpha_f_bin) const;
diff --git a/Core/FormFactors/inc/IFormFactorDecorator.h b/Core/FormFactors/inc/IFormFactorDecorator.h
index f5984f5761fd33991b099b39eaa88c253271df29..e560c04da0579f76cf0dbff880073196e22a5d80 100644
--- a/Core/FormFactors/inc/IFormFactorDecorator.h
+++ b/Core/FormFactors/inc/IFormFactorDecorator.h
@@ -28,6 +28,7 @@ public:
         : mp_form_factor(p_form_factor) {}
     virtual ~IFormFactorDecorator();
     virtual IFormFactorDecorator *clone() const=0;
+    virtual void accept(ISampleVisitor *visitor) const = 0;
 
     virtual void setAmbientMaterial(const IMaterial *p_material);
 
diff --git a/Core/PythonAPI/src/Beam.pypp.cpp b/Core/PythonAPI/src/Beam.pypp.cpp
index e2c8d55743ef22fa11641a03dbf69c5dc931fe7f..3f33465d84b2a505d8f19270191efe8c70078949 100644
--- a/Core/PythonAPI/src/Beam.pypp.cpp
+++ b/Core/PythonAPI/src/Beam.pypp.cpp
@@ -35,11 +35,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -47,11 +47,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -59,11 +59,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -71,11 +71,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -99,26 +99,14 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -126,11 +114,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -267,18 +255,6 @@ void register_Beam_class(){
                 , default_registerParameter_function_type( &Beam_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( Beam_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            Beam_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&Beam_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/Crystal.pypp.cpp b/Core/PythonAPI/src/Crystal.pypp.cpp
index fedc38fffc1e2960985d75851e1a20f413a39745..ed29bd2f3bdfa712a2b311a30f0631cb83daa239 100644
--- a/Core/PythonAPI/src/Crystal.pypp.cpp
+++ b/Core/PythonAPI/src/Crystal.pypp.cpp
@@ -28,11 +28,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::Crystal * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Crystal::clone(  );
-        }
     }
     
+    
     ::Crystal * default_clone(  ) const  {
         return Crystal::clone( );
     }
@@ -40,11 +40,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::Crystal * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->Crystal::cloneInvertB(  );
-        }
     }
     
+    
     ::Crystal * default_cloneInvertB(  ) const  {
         return Crystal::cloneInvertB( );
     }
@@ -52,11 +52,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::Geometry::ITransform3D const * getTransform(  ) const  {
         if( bp::override func_getTransform = this->get_override( "getTransform" ) )
             return func_getTransform(  );
-        else{
+        else
             return this->Crystal::getTransform(  );
-        }
     }
     
+    
     ::Geometry::ITransform3D const * default_getTransform(  ) const  {
         return Crystal::getTransform( );
     }
@@ -64,11 +64,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void setTransform( ::Geometry::ITransform3D const & transform ) {
         if( bp::override func_setTransform = this->get_override( "setTransform" ) )
             func_setTransform( boost::ref(transform) );
-        else{
+        else
             this->Crystal::setTransform( boost::ref(transform) );
-        }
     }
     
+    
     void default_setTransform( ::Geometry::ITransform3D const & transform ) {
         Crystal::setTransform( boost::ref(transform) );
     }
@@ -76,11 +76,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -88,23 +88,35 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -112,11 +124,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -124,11 +136,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -136,11 +148,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -148,11 +160,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -176,26 +188,14 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -203,24 +203,24 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -340,6 +340,17 @@ void register_Crystal_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&Crystal_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( Crystal_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            Crystal_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&Crystal_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -408,18 +419,6 @@ void register_Crystal_class(){
                 , default_registerParameter_function_type( &Crystal_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( Crystal_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            Crystal_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&Crystal_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -446,8 +445,8 @@ void register_Crystal_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( Crystal_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( Crystal_wrapper::*default_size_function_type )(  ) const;
             
             Crystal_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/Detector.pypp.cpp b/Core/PythonAPI/src/Detector.pypp.cpp
index 286cff5b79d2a8861c188f1b46e52c2cc7c0c262..add6a2a0e22ed26add69553641dd7f37577c1ec2 100644
--- a/Core/PythonAPI/src/Detector.pypp.cpp
+++ b/Core/PythonAPI/src/Detector.pypp.cpp
@@ -35,11 +35,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -47,11 +47,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -59,11 +59,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -71,11 +71,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -99,26 +99,14 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -126,11 +114,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -155,7 +143,7 @@ void register_Detector_class(){
         }
         { //::Detector::getAxis
         
-            typedef ::IAxis const & ( ::Detector::*getAxis_function_type )( ::size_t ) const;
+            typedef ::IAxis const & ( ::Detector::*getAxis_function_type )( ::std::size_t ) const;
             
             Detector_exposer.def( 
                 "getAxis"
@@ -176,7 +164,7 @@ void register_Detector_class(){
         }
         { //::Detector::getDimension
         
-            typedef ::size_t ( ::Detector::*getDimension_function_type )(  ) const;
+            typedef ::std::size_t ( ::Detector::*getDimension_function_type )(  ) const;
             
             Detector_exposer.def( 
                 "getDimension"
@@ -248,18 +236,6 @@ void register_Detector_class(){
                 , default_registerParameter_function_type( &Detector_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( Detector_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            Detector_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&Detector_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp b/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
index 2f88ce4af0aa595614ad8afd5ca4667be5f2f26e..be52bad15dfe4a43e31d27390ef89a33328bd77b 100644
--- a/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
@@ -25,8 +25,8 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
         
     }
 
-    FTDistribution2DCauchy_wrapper(double coherence_length_x, double coherence_length_y )
-    : FTDistribution2DCauchy( coherence_length_x, coherence_length_y )
+    FTDistribution2DCauchy_wrapper(double omega_x, double omega_y )
+    : FTDistribution2DCauchy( omega_x, omega_y )
       , bp::wrapper< FTDistribution2DCauchy >(){
         // constructor
     
@@ -35,11 +35,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual ::FTDistribution2DCauchy * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FTDistribution2DCauchy::clone(  );
-        }
     }
     
+    
     ::FTDistribution2DCauchy * default_clone(  ) const  {
         return FTDistribution2DCauchy::clone( );
     }
@@ -47,23 +47,35 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual double evaluate( double qx, double qy ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( qx, qy );
-        else{
+        else
             return this->FTDistribution2DCauchy::evaluate( qx, qy );
-        }
     }
     
+    
     double default_evaluate( double qx, double qy ) const  {
         return FTDistribution2DCauchy::evaluate( qx, qy );
     }
 
+    virtual void transformToStarBasis( double qX, double qY, double alpha, double a, double b, double & qa, double & qb ) const  {
+        if( bp::override func_transformToStarBasis = this->get_override( "transformToStarBasis" ) )
+            func_transformToStarBasis( qX, qY, alpha, a, b, qa, qb );
+        else
+            this->FTDistribution2DCauchy::transformToStarBasis( qX, qY, alpha, a, b, qa, qb );
+    }
+    
+    
+    void default_transformToStarBasis( double qX, double qY, double alpha, double a, double b, double & qa, double & qb ) const  {
+        FTDistribution2DCauchy::transformToStarBasis( qX, qY, alpha, a, b, qa, qb );
+    }
+
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -71,11 +83,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -83,11 +95,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -95,11 +107,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -123,26 +135,14 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -150,11 +150,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -165,7 +165,7 @@ void register_FTDistribution2DCauchy_class(){
 
     { //::FTDistribution2DCauchy
         typedef bp::class_< FTDistribution2DCauchy_wrapper, bp::bases< IFTDistribution2D > > FTDistribution2DCauchy_exposer_t;
-        FTDistribution2DCauchy_exposer_t FTDistribution2DCauchy_exposer = FTDistribution2DCauchy_exposer_t( "FTDistribution2DCauchy", bp::init< double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y") )) );
+        FTDistribution2DCauchy_exposer_t FTDistribution2DCauchy_exposer = FTDistribution2DCauchy_exposer_t( "FTDistribution2DCauchy", bp::init< double, double >(( bp::arg("omega_x"), bp::arg("omega_y") )) );
         bp::scope FTDistribution2DCauchy_scope( FTDistribution2DCauchy_exposer );
         { //::FTDistribution2DCauchy::clone
         
@@ -190,6 +190,18 @@ void register_FTDistribution2DCauchy_class(){
                 , default_evaluate_function_type(&FTDistribution2DCauchy_wrapper::default_evaluate)
                 , ( bp::arg("qx"), bp::arg("qy") ) );
         
+        }
+        { //::FTDistribution2DCauchy::transformToStarBasis
+        
+            typedef void ( ::FTDistribution2DCauchy::*transformToStarBasis_function_type )( double,double,double,double,double,double &,double & ) const;
+            typedef void ( FTDistribution2DCauchy_wrapper::*default_transformToStarBasis_function_type )( double,double,double,double,double,double &,double & ) const;
+            
+            FTDistribution2DCauchy_exposer.def( 
+                "transformToStarBasis"
+                , transformToStarBasis_function_type(&::FTDistribution2DCauchy::transformToStarBasis)
+                , default_transformToStarBasis_function_type(&FTDistribution2DCauchy_wrapper::default_transformToStarBasis)
+                , ( bp::arg("qX"), bp::arg("qY"), bp::arg("alpha"), bp::arg("a"), bp::arg("b"), bp::arg("qa"), bp::arg("qb") ) );
+        
         }
         { //::IParameterized::areParametersChanged
         
@@ -245,18 +257,6 @@ void register_FTDistribution2DCauchy_class(){
                 , default_registerParameter_function_type( &FTDistribution2DCauchy_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FTDistribution2DCauchy_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FTDistribution2DCauchy_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FTDistribution2DCauchy_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorBox.pypp.cpp b/Core/PythonAPI/src/FormFactorBox.pypp.cpp
index 12d73f5c09ceeada8cc2dff21c9e620f585212c2..c6b16da8a5b3ca647e7e5a880f8841150d943eef 100644
--- a/Core/PythonAPI/src/FormFactorBox.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorBox.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::FormFactorBox * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorBox::clone(  );
-        }
     }
     
+    
     ::FormFactorBox * default_clone(  ) const  {
         return FormFactorBox::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorBox::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorBox::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorBox::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorBox::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorBox::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorBox::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorBox::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorBox::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -100,11 +100,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -112,35 +112,47 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,23 +160,35 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +196,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -184,11 +208,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -196,11 +220,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +232,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -236,26 +260,14 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +275,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -379,11 +391,22 @@ void register_FormFactorBox_class(){
                 , default_cloneInvertB_function_type(&FormFactorBox_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorBox_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorBox_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorBox_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorBox_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorBox_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorBox_exposer.def( 
                 "createDistributedFormFactors"
@@ -416,6 +439,18 @@ void register_FormFactorBox_class(){
                 , default_evaluate_function_type(&FormFactorBox_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorBox_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorBox_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorBox_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -482,18 +517,6 @@ void register_FormFactorBox_class(){
                 , default_registerParameter_function_type( &FormFactorBox_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorBox_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorBox_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorBox_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorCone.pypp.cpp b/Core/PythonAPI/src/FormFactorCone.pypp.cpp
index d31a4a434b8258e1f862755a58c83c091d8b2967..b9ed3e12609dc76e4154a6e087a8352cf82381d1 100644
--- a/Core/PythonAPI/src/FormFactorCone.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCone.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::FormFactorCone * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorCone::clone(  );
-        }
     }
     
+    
     ::FormFactorCone * default_clone(  ) const  {
         return FormFactorCone::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorCone::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorCone::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual double getAlpha(  ) const  {
         if( bp::override func_getAlpha = this->get_override( "getAlpha" ) )
             return func_getAlpha(  );
-        else{
+        else
             return this->FormFactorCone::getAlpha(  );
-        }
     }
     
+    
     double default_getAlpha(  ) const  {
         return FormFactorCone::getAlpha( );
     }
@@ -64,11 +64,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorCone::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorCone::getHeight( );
     }
@@ -76,11 +76,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorCone::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorCone::getNumberOfStochasticParameters( );
     }
@@ -88,11 +88,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorCone::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorCone::getRadius( );
     }
@@ -100,11 +100,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void setAlpha( double alpha ) {
         if( bp::override func_setAlpha = this->get_override( "setAlpha" ) )
             func_setAlpha( alpha );
-        else{
+        else
             this->FormFactorCone::setAlpha( alpha );
-        }
     }
     
+    
     void default_setAlpha( double alpha ) {
         FormFactorCone::setAlpha( alpha );
     }
@@ -112,11 +112,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorCone::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorCone::setHeight( height );
     }
@@ -124,11 +124,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void setRadius( double radius ) {
         if( bp::override func_setRadius = this->get_override( "setRadius" ) )
             func_setRadius( radius );
-        else{
+        else
             this->FormFactorCone::setRadius( radius );
-        }
     }
     
+    
     void default_setRadius( double radius ) {
         FormFactorCone::setRadius( radius );
     }
@@ -136,11 +136,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -148,11 +148,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -160,35 +160,47 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -196,23 +208,35 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -220,11 +244,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -232,11 +256,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -244,11 +268,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -256,11 +280,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -284,26 +308,14 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -311,11 +323,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -465,11 +477,22 @@ void register_FormFactorCone_class(){
                 , default_cloneInvertB_function_type(&FormFactorCone_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorCone_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorCone_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorCone_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorCone_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorCone_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorCone_exposer.def( 
                 "createDistributedFormFactors"
@@ -502,6 +525,18 @@ void register_FormFactorCone_class(){
                 , default_evaluate_function_type(&FormFactorCone_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorCone_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorCone_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorCone_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -568,18 +603,6 @@ void register_FormFactorCone_class(){
                 , default_registerParameter_function_type( &FormFactorCone_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorCone_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorCone_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorCone_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
index 3faf86f8d95de072bf15ad0c899d3ab743c756e1..822d8cf92525027c5caab93827031fd655d46503 100644
--- a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
@@ -21,11 +21,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::FormFactorCrystal * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorCrystal::clone(  );
-        }
     }
     
+    
     ::FormFactorCrystal * default_clone(  ) const  {
         return FormFactorCrystal::clone( );
     }
@@ -33,11 +33,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->FormFactorCrystal::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return FormFactorCrystal::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -45,11 +45,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorCrystal::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorCrystal::evaluate_for_q( boost::ref(q) );
     }
@@ -57,11 +57,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->FormFactorCrystal::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return FormFactorCrystal::getVolume( );
     }
@@ -69,11 +69,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -81,11 +81,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -93,47 +93,71 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -141,11 +165,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactor::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactor::getHeight( );
     }
@@ -153,11 +177,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->IFormFactor::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return IFormFactor::getNumberOfStochasticParameters( );
     }
@@ -165,11 +189,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -177,11 +201,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -189,11 +213,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -201,11 +225,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -229,26 +253,14 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -256,11 +268,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -353,11 +365,22 @@ void register_FormFactorCrystal_class(){
                 , default_cloneInvertB_function_type(&FormFactorCrystal_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorCrystal_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorCrystal_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorCrystal_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorCrystal_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorCrystal_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorCrystal_exposer.def( 
                 "createDistributedFormFactors"
@@ -378,6 +401,18 @@ void register_FormFactorCrystal_class(){
                 , default_createParameterTree_function_type(&FormFactorCrystal_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorCrystal_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorCrystal_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorCrystal_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -466,18 +501,6 @@ void register_FormFactorCrystal_class(){
                 , default_registerParameter_function_type( &FormFactorCrystal_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorCrystal_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorCrystal_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorCrystal_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
index db9d699759587891d02f407418235624d2616bd6..46ba5332acfe0bb86098b6e8cbb3c3a7601f5712 100644
--- a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::FormFactorCylinder * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorCylinder::clone(  );
-        }
     }
     
+    
     ::FormFactorCylinder * default_clone(  ) const  {
         return FormFactorCylinder::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorCylinder::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorCylinder::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorCylinder::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorCylinder::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorCylinder::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorCylinder::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorCylinder::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorCylinder::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorCylinder::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorCylinder::setHeight( height );
     }
@@ -100,11 +100,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void setRadius( double radius ) {
         if( bp::override func_setRadius = this->get_override( "setRadius" ) )
             func_setRadius( radius );
-        else{
+        else
             this->FormFactorCylinder::setRadius( radius );
-        }
     }
     
+    
     void default_setRadius( double radius ) {
         FormFactorCylinder::setRadius( radius );
     }
@@ -112,11 +112,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -124,11 +124,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -136,35 +136,47 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -172,23 +184,35 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -196,11 +220,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -208,11 +232,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -220,11 +244,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -232,11 +256,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -260,26 +284,14 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -287,11 +299,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -418,11 +430,22 @@ void register_FormFactorCylinder_class(){
                 , default_cloneInvertB_function_type(&FormFactorCylinder_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorCylinder_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorCylinder_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorCylinder_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorCylinder_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorCylinder_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorCylinder_exposer.def( 
                 "createDistributedFormFactors"
@@ -455,6 +478,18 @@ void register_FormFactorCylinder_class(){
                 , default_evaluate_function_type(&FormFactorCylinder_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorCylinder_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorCylinder_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorCylinder_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -521,18 +556,6 @@ void register_FormFactorCylinder_class(){
                 , default_registerParameter_function_type( &FormFactorCylinder_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorCylinder_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorCylinder_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorCylinder_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
index 9c9ae4b68d9506f011b80574738757283ac85a4e..40bad024a6294473a2648149bdb1a18452c721bf 100644
--- a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual ::FormFactorDecoratorDebyeWaller * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorDecoratorDebyeWaller::clone(  );
-        }
     }
     
+    
     ::FormFactorDecoratorDebyeWaller * default_clone(  ) const  {
         return FormFactorDecoratorDebyeWaller::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->FormFactorDecoratorDebyeWaller::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return FormFactorDecoratorDebyeWaller::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -52,11 +52,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorDecoratorDebyeWaller::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorDecoratorDebyeWaller::getNumberOfStochasticParameters( );
     }
@@ -64,11 +64,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -76,11 +76,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -88,47 +88,71 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -136,11 +160,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactorDecorator::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactorDecorator::getHeight( );
     }
@@ -148,11 +172,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactorDecorator::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactorDecorator::getRadius( );
     }
@@ -160,11 +184,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorDecorator::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorDecorator::getVolume( );
     }
@@ -172,11 +196,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -184,11 +208,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -196,11 +220,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -224,26 +248,14 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -251,11 +263,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -336,11 +348,22 @@ void register_FormFactorDecoratorDebyeWaller_class(){
                 , default_cloneInvertB_function_type(&FormFactorDecoratorDebyeWaller_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorDecoratorDebyeWaller_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorDecoratorDebyeWaller_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorDecoratorDebyeWaller_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorDecoratorDebyeWaller_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorDecoratorDebyeWaller_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorDecoratorDebyeWaller_exposer.def( 
                 "createDistributedFormFactors"
@@ -361,6 +384,18 @@ void register_FormFactorDecoratorDebyeWaller_class(){
                 , default_createParameterTree_function_type(&FormFactorDecoratorDebyeWaller_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorDecoratorDebyeWaller_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorDecoratorDebyeWaller_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorDecoratorDebyeWaller_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -449,18 +484,6 @@ void register_FormFactorDecoratorDebyeWaller_class(){
                 , default_registerParameter_function_type( &FormFactorDecoratorDebyeWaller_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorDecoratorDebyeWaller_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorDecoratorDebyeWaller_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorDecoratorDebyeWaller_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp b/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp
index 8920cf3e6854c886a8f3f509f2489da27d9b47c3..5eab3b13546fa9468f32e71883731ee1af3632b3 100644
--- a/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::FormFactorEllipsoid * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorEllipsoid::clone(  );
-        }
     }
     
+    
     ::FormFactorEllipsoid * default_clone(  ) const  {
         return FormFactorEllipsoid::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorEllipsoid::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorEllipsoid::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorEllipsoid::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorEllipsoid::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorEllipsoid::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorEllipsoid::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorEllipsoid::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorEllipsoid::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -100,11 +100,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -112,35 +112,47 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,23 +160,35 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +196,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -184,11 +208,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -196,11 +220,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +232,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -236,26 +260,14 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +275,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -379,11 +391,22 @@ void register_FormFactorEllipsoid_class(){
                 , default_cloneInvertB_function_type(&FormFactorEllipsoid_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorEllipsoid_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorEllipsoid_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorEllipsoid_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorEllipsoid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorEllipsoid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorEllipsoid_exposer.def( 
                 "createDistributedFormFactors"
@@ -416,6 +439,18 @@ void register_FormFactorEllipsoid_class(){
                 , default_evaluate_function_type(&FormFactorEllipsoid_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorEllipsoid_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorEllipsoid_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorEllipsoid_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -482,18 +517,6 @@ void register_FormFactorEllipsoid_class(){
                 , default_registerParameter_function_type( &FormFactorEllipsoid_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorEllipsoid_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorEllipsoid_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorEllipsoid_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
index 82ece89ac2e832a9c644570c32f60b155017d14f..0651f14122b6e40712c204771ee9ca128ef59dfb 100644
--- a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::FormFactorFullSphere * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorFullSphere::clone(  );
-        }
     }
     
+    
     ::FormFactorFullSphere * default_clone(  ) const  {
         return FormFactorFullSphere::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorFullSphere::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorFullSphere::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorFullSphere::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorFullSphere::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorFullSphere::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorFullSphere::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorFullSphere::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorFullSphere::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void setRadius( double radius ) {
         if( bp::override func_setRadius = this->get_override( "setRadius" ) )
             func_setRadius( radius );
-        else{
+        else
             this->FormFactorFullSphere::setRadius( radius );
-        }
     }
     
+    
     void default_setRadius( double radius ) {
         FormFactorFullSphere::setRadius( radius );
     }
@@ -100,11 +100,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -112,11 +112,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -124,35 +124,47 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -160,23 +172,35 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -184,11 +208,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -196,11 +220,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -208,11 +232,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -220,11 +244,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -248,26 +272,14 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -275,11 +287,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -394,11 +406,22 @@ void register_FormFactorFullSphere_class(){
                 , default_cloneInvertB_function_type(&FormFactorFullSphere_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorFullSphere_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorFullSphere_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorFullSphere_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorFullSphere_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorFullSphere_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorFullSphere_exposer.def( 
                 "createDistributedFormFactors"
@@ -431,6 +454,18 @@ void register_FormFactorFullSphere_class(){
                 , default_evaluate_function_type(&FormFactorFullSphere_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorFullSphere_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorFullSphere_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorFullSphere_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -497,18 +532,6 @@ void register_FormFactorFullSphere_class(){
                 , default_registerParameter_function_type( &FormFactorFullSphere_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorFullSphere_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorFullSphere_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorFullSphere_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
index cb9c15a1ba43929d013c0e440f3d7c3d9d6c84bf..b67c0b7c6c8deb70020e2bc54ab94512ffce03de 100644
--- a/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::FormFactorFullSpheroid * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorFullSpheroid::clone(  );
-        }
     }
     
+    
     ::FormFactorFullSpheroid * default_clone(  ) const  {
         return FormFactorFullSpheroid::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorFullSpheroid::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorFullSpheroid::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorFullSpheroid::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorFullSpheroid::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorFullSpheroid::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorFullSpheroid::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorFullSpheroid::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorFullSpheroid::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -100,11 +100,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -112,35 +112,47 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,23 +160,35 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +196,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -184,11 +208,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -196,11 +220,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +232,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -236,26 +260,14 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +275,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -370,11 +382,22 @@ void register_FormFactorFullSpheroid_class(){
                 , default_cloneInvertB_function_type(&FormFactorFullSpheroid_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorFullSpheroid_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorFullSpheroid_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorFullSpheroid_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorFullSpheroid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorFullSpheroid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorFullSpheroid_exposer.def( 
                 "createDistributedFormFactors"
@@ -407,6 +430,18 @@ void register_FormFactorFullSpheroid_class(){
                 , default_evaluate_function_type(&FormFactorFullSpheroid_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorFullSpheroid_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorFullSpheroid_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorFullSpheroid_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -473,18 +508,6 @@ void register_FormFactorFullSpheroid_class(){
                 , default_registerParameter_function_type( &FormFactorFullSpheroid_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorFullSpheroid_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorFullSpheroid_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorFullSpheroid_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
index abf315d60f01011121fa90e0e1de8f3cf1918c62..2085d18f60d32f709691527ac917ec461d856adb 100644
--- a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
@@ -35,11 +35,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::FormFactorGauss * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorGauss::clone(  );
-        }
     }
     
+    
     ::FormFactorGauss * default_clone(  ) const  {
         return FormFactorGauss::clone( );
     }
@@ -47,11 +47,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorGauss::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorGauss::evaluate_for_q( boost::ref(q) );
     }
@@ -59,11 +59,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorGauss::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorGauss::getHeight( );
     }
@@ -71,11 +71,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorGauss::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorGauss::getNumberOfStochasticParameters( );
     }
@@ -83,11 +83,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorGauss::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorGauss::getRadius( );
     }
@@ -95,11 +95,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->FormFactorGauss::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return FormFactorGauss::getVolume( );
     }
@@ -107,11 +107,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -119,11 +119,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -131,35 +131,47 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -167,23 +179,35 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -191,11 +215,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -203,11 +227,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -215,11 +239,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -243,26 +267,14 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -270,11 +282,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -389,11 +401,22 @@ void register_FormFactorGauss_class(){
                 , default_cloneInvertB_function_type(&FormFactorGauss_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorGauss_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorGauss_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorGauss_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorGauss_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorGauss_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorGauss_exposer.def( 
                 "createDistributedFormFactors"
@@ -426,6 +449,18 @@ void register_FormFactorGauss_class(){
                 , default_evaluate_function_type(&FormFactorGauss_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorGauss_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorGauss_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorGauss_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -481,18 +516,6 @@ void register_FormFactorGauss_class(){
                 , default_registerParameter_function_type( &FormFactorGauss_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorGauss_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorGauss_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorGauss_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp b/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp
index 98d83fa669b419400d55323bfdceeee139ac1126..ee637aa054062d14cc6ea3d50c914051df79932f 100644
--- a/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual ::FormFactorHemiSpheroid * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorHemiSpheroid::clone(  );
-        }
     }
     
+    
     ::FormFactorHemiSpheroid * default_clone(  ) const  {
         return FormFactorHemiSpheroid::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorHemiSpheroid::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorHemiSpheroid::getHeight( );
     }
@@ -52,11 +52,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorHemiSpheroid::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorHemiSpheroid::getNumberOfStochasticParameters( );
     }
@@ -64,11 +64,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -76,11 +76,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -88,35 +88,47 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -124,23 +136,35 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -148,11 +172,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -160,11 +184,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -172,11 +196,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -184,11 +208,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -196,11 +220,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -224,26 +248,14 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -251,11 +263,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -335,11 +347,22 @@ void register_FormFactorHemiSpheroid_class(){
                 , default_cloneInvertB_function_type(&FormFactorHemiSpheroid_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorHemiSpheroid_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorHemiSpheroid_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorHemiSpheroid_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorHemiSpheroid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorHemiSpheroid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorHemiSpheroid_exposer.def( 
                 "createDistributedFormFactors"
@@ -372,6 +395,18 @@ void register_FormFactorHemiSpheroid_class(){
                 , default_evaluate_function_type(&FormFactorHemiSpheroid_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorHemiSpheroid_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorHemiSpheroid_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorHemiSpheroid_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -449,18 +484,6 @@ void register_FormFactorHemiSpheroid_class(){
                 , default_registerParameter_function_type( &FormFactorHemiSpheroid_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorHemiSpheroid_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorHemiSpheroid_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorHemiSpheroid_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
index aa20e83afaa9352db370cd4a93d0b44012fadbc0..c8f3d706bd2d558a288d18402a9372fd739b61f7 100644
--- a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
@@ -35,11 +35,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::FormFactorLorentz * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorLorentz::clone(  );
-        }
     }
     
+    
     ::FormFactorLorentz * default_clone(  ) const  {
         return FormFactorLorentz::clone( );
     }
@@ -47,11 +47,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorLorentz::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorLorentz::evaluate_for_q( boost::ref(q) );
     }
@@ -59,11 +59,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorLorentz::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorLorentz::getNumberOfStochasticParameters( );
     }
@@ -71,11 +71,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -83,11 +83,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -95,35 +95,47 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -131,23 +143,35 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -155,11 +179,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactor::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactor::getHeight( );
     }
@@ -167,11 +191,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -179,11 +203,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -191,11 +215,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -203,11 +227,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -215,11 +239,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -243,26 +267,14 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -270,11 +282,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -356,11 +368,22 @@ void register_FormFactorLorentz_class(){
                 , default_cloneInvertB_function_type(&FormFactorLorentz_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorLorentz_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorLorentz_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorLorentz_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorLorentz_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorLorentz_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorLorentz_exposer.def( 
                 "createDistributedFormFactors"
@@ -393,6 +416,18 @@ void register_FormFactorLorentz_class(){
                 , default_evaluate_function_type(&FormFactorLorentz_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorLorentz_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorLorentz_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorLorentz_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -481,18 +516,6 @@ void register_FormFactorLorentz_class(){
                 , default_registerParameter_function_type( &FormFactorLorentz_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorLorentz_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorLorentz_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorLorentz_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp b/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp
index 9dd07799961c004bd570139edf3426fb31157f1c..662b7318775ef63dcf469653f74a19ab29bd3d24 100644
--- a/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::FormFactorParallelepiped * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorParallelepiped::clone(  );
-        }
     }
     
+    
     ::FormFactorParallelepiped * default_clone(  ) const  {
         return FormFactorParallelepiped::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorParallelepiped::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorParallelepiped::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorParallelepiped::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorParallelepiped::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorParallelepiped::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorParallelepiped::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorParallelepiped::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorParallelepiped::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -100,11 +100,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -112,35 +112,47 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,23 +160,35 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +196,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -184,11 +208,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -196,11 +220,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +232,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -236,26 +260,14 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +275,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -370,11 +382,22 @@ void register_FormFactorParallelepiped_class(){
                 , default_cloneInvertB_function_type(&FormFactorParallelepiped_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorParallelepiped_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorParallelepiped_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorParallelepiped_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorParallelepiped_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorParallelepiped_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorParallelepiped_exposer.def( 
                 "createDistributedFormFactors"
@@ -407,6 +430,18 @@ void register_FormFactorParallelepiped_class(){
                 , default_evaluate_function_type(&FormFactorParallelepiped_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorParallelepiped_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorParallelepiped_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorParallelepiped_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -473,18 +508,6 @@ void register_FormFactorParallelepiped_class(){
                 , default_registerParameter_function_type( &FormFactorParallelepiped_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorParallelepiped_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorParallelepiped_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorParallelepiped_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
index 11d345099711c63babb0c3577f1e6006e843f03a..ec84e6ddc159344346596e60fabb5d347146d021 100644
--- a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::FormFactorPrism3 * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorPrism3::clone(  );
-        }
     }
     
+    
     ::FormFactorPrism3 * default_clone(  ) const  {
         return FormFactorPrism3::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorPrism3::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorPrism3::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual double getHalfSide(  ) const  {
         if( bp::override func_getHalfSide = this->get_override( "getHalfSide" ) )
             return func_getHalfSide(  );
-        else{
+        else
             return this->FormFactorPrism3::getHalfSide(  );
-        }
     }
     
+    
     double default_getHalfSide(  ) const  {
         return FormFactorPrism3::getHalfSide( );
     }
@@ -64,11 +64,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorPrism3::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorPrism3::getHeight( );
     }
@@ -76,11 +76,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorPrism3::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorPrism3::getNumberOfStochasticParameters( );
     }
@@ -88,11 +88,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void setHalfSide( double half_side ) {
         if( bp::override func_setHalfSide = this->get_override( "setHalfSide" ) )
             func_setHalfSide( half_side );
-        else{
+        else
             this->FormFactorPrism3::setHalfSide( half_side );
-        }
     }
     
+    
     void default_setHalfSide( double half_side ) {
         FormFactorPrism3::setHalfSide( half_side );
     }
@@ -100,11 +100,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorPrism3::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorPrism3::setHeight( height );
     }
@@ -112,11 +112,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -124,11 +124,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -136,35 +136,47 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -172,23 +184,35 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -196,11 +220,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -208,11 +232,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -220,11 +244,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -232,11 +256,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -244,11 +268,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -272,26 +296,14 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -299,11 +311,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -430,11 +442,22 @@ void register_FormFactorPrism3_class(){
                 , default_cloneInvertB_function_type(&FormFactorPrism3_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorPrism3_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorPrism3_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorPrism3_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorPrism3_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorPrism3_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorPrism3_exposer.def( 
                 "createDistributedFormFactors"
@@ -467,6 +490,18 @@ void register_FormFactorPrism3_class(){
                 , default_evaluate_function_type(&FormFactorPrism3_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorPrism3_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorPrism3_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorPrism3_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -544,18 +579,6 @@ void register_FormFactorPrism3_class(){
                 , default_registerParameter_function_type( &FormFactorPrism3_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorPrism3_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorPrism3_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorPrism3_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
index 56beb9799b362a14cb268272582e64a9c3c8b186..f45575078bb2ca8be28bbc61d1e4b54dbcf16614 100644
--- a/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::FormFactorPrism6 * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorPrism6::clone(  );
-        }
     }
     
+    
     ::FormFactorPrism6 * default_clone(  ) const  {
         return FormFactorPrism6::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorPrism6::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorPrism6::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorPrism6::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorPrism6::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorPrism6::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorPrism6::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorPrism6::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorPrism6::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorPrism6::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorPrism6::setHeight( height );
     }
@@ -100,11 +100,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void setRadius( double radius ) {
         if( bp::override func_setRadius = this->get_override( "setRadius" ) )
             func_setRadius( radius );
-        else{
+        else
             this->FormFactorPrism6::setRadius( radius );
-        }
     }
     
+    
     void default_setRadius( double radius ) {
         FormFactorPrism6::setRadius( radius );
     }
@@ -112,11 +112,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -124,11 +124,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -136,35 +136,47 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -172,23 +184,35 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -196,11 +220,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -208,11 +232,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -220,11 +244,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -232,11 +256,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -260,26 +284,14 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -287,11 +299,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -418,11 +430,22 @@ void register_FormFactorPrism6_class(){
                 , default_cloneInvertB_function_type(&FormFactorPrism6_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorPrism6_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorPrism6_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorPrism6_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorPrism6_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorPrism6_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorPrism6_exposer.def( 
                 "createDistributedFormFactors"
@@ -455,6 +478,18 @@ void register_FormFactorPrism6_class(){
                 , default_evaluate_function_type(&FormFactorPrism6_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorPrism6_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorPrism6_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorPrism6_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -521,18 +556,6 @@ void register_FormFactorPrism6_class(){
                 , default_registerParameter_function_type( &FormFactorPrism6_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorPrism6_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorPrism6_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorPrism6_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
index d7f7e69a726b9d63527038fb9bd345be95140246..e176797d5d2dca0682b1ee872c00bb4405962467 100644
--- a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::FormFactorPyramid * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorPyramid::clone(  );
-        }
     }
     
+    
     ::FormFactorPyramid * default_clone(  ) const  {
         return FormFactorPyramid::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorPyramid::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorPyramid::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getAlpha(  ) const  {
         if( bp::override func_getAlpha = this->get_override( "getAlpha" ) )
             return func_getAlpha(  );
-        else{
+        else
             return this->FormFactorPyramid::getAlpha(  );
-        }
     }
     
+    
     double default_getAlpha(  ) const  {
         return FormFactorPyramid::getAlpha( );
     }
@@ -64,11 +64,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getHalfSide(  ) const  {
         if( bp::override func_getHalfSide = this->get_override( "getHalfSide" ) )
             return func_getHalfSide(  );
-        else{
+        else
             return this->FormFactorPyramid::getHalfSide(  );
-        }
     }
     
+    
     double default_getHalfSide(  ) const  {
         return FormFactorPyramid::getHalfSide( );
     }
@@ -76,11 +76,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorPyramid::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorPyramid::getHeight( );
     }
@@ -88,11 +88,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorPyramid::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorPyramid::getNumberOfStochasticParameters( );
     }
@@ -100,11 +100,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void setAlpha( double alpha ) {
         if( bp::override func_setAlpha = this->get_override( "setAlpha" ) )
             func_setAlpha( alpha );
-        else{
+        else
             this->FormFactorPyramid::setAlpha( alpha );
-        }
     }
     
+    
     void default_setAlpha( double alpha ) {
         FormFactorPyramid::setAlpha( alpha );
     }
@@ -112,11 +112,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void setHalfSide( double half_side ) {
         if( bp::override func_setHalfSide = this->get_override( "setHalfSide" ) )
             func_setHalfSide( half_side );
-        else{
+        else
             this->FormFactorPyramid::setHalfSide( half_side );
-        }
     }
     
+    
     void default_setHalfSide( double half_side ) {
         FormFactorPyramid::setHalfSide( half_side );
     }
@@ -124,11 +124,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorPyramid::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorPyramid::setHeight( height );
     }
@@ -136,11 +136,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -148,11 +148,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -160,35 +160,47 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -196,23 +208,35 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -220,11 +244,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -232,11 +256,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -244,11 +268,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -256,11 +280,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -268,11 +292,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -296,26 +320,14 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -323,11 +335,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -477,11 +489,22 @@ void register_FormFactorPyramid_class(){
                 , default_cloneInvertB_function_type(&FormFactorPyramid_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorPyramid_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorPyramid_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorPyramid_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorPyramid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorPyramid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorPyramid_exposer.def( 
                 "createDistributedFormFactors"
@@ -514,6 +537,18 @@ void register_FormFactorPyramid_class(){
                 , default_evaluate_function_type(&FormFactorPyramid_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorPyramid_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorPyramid_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorPyramid_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -591,18 +626,6 @@ void register_FormFactorPyramid_class(){
                 , default_registerParameter_function_type( &FormFactorPyramid_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorPyramid_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorPyramid_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorPyramid_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorSphere.pypp.cpp
index 5034f2e682dfd92250ffed4546ad046c52d3a03b..4d7915d49d2821aadc7c73ca5687e390fd371e92 100644
--- a/Core/PythonAPI/src/FormFactorSphere.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorSphere.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual ::FormFactorSphere * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorSphere::clone(  );
-        }
     }
     
+    
     ::FormFactorSphere * default_clone(  ) const  {
         return FormFactorSphere::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorSphere::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorSphere::getHeight( );
     }
@@ -52,11 +52,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorSphere::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorSphere::getNumberOfStochasticParameters( );
     }
@@ -64,11 +64,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -76,11 +76,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -88,35 +88,47 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -124,23 +136,35 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -148,11 +172,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -160,11 +184,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -172,11 +196,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -184,11 +208,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -196,11 +220,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -224,26 +248,14 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -251,11 +263,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -335,11 +347,22 @@ void register_FormFactorSphere_class(){
                 , default_cloneInvertB_function_type(&FormFactorSphere_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorSphere_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorSphere_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorSphere_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorSphere_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorSphere_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorSphere_exposer.def( 
                 "createDistributedFormFactors"
@@ -372,6 +395,18 @@ void register_FormFactorSphere_class(){
                 , default_evaluate_function_type(&FormFactorSphere_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorSphere_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorSphere_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorSphere_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -449,18 +484,6 @@ void register_FormFactorSphere_class(){
                 , default_registerParameter_function_type( &FormFactorSphere_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorSphere_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorSphere_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorSphere_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
index 71fab8c6f659420af5d876b26de34267b35d9111..43c73df4a4cef0c5be062b6fe4fcce6f0f582d3e 100644
--- a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
@@ -28,35 +28,35 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual ::FormFactorSphereGaussianRadius * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::clone(  );
-        }
     }
     
+    
     ::FormFactorSphereGaussianRadius * default_clone(  ) const  {
         return FormFactorSphereGaussianRadius::clone( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->FormFactorSphereGaussianRadius::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         FormFactorSphereGaussianRadius::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorSphereGaussianRadius::evaluate_for_q( boost::ref(q) );
     }
@@ -64,11 +64,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorSphereGaussianRadius::getHeight( );
     }
@@ -76,11 +76,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorSphereGaussianRadius::getNumberOfStochasticParameters( );
     }
@@ -88,11 +88,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return FormFactorSphereGaussianRadius::isDistributedFormFactor( );
     }
@@ -100,11 +100,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -112,11 +112,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -124,23 +124,35 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,23 +160,35 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +196,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -184,11 +208,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -196,11 +220,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +232,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -236,26 +260,14 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +275,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -294,8 +306,8 @@ void register_FormFactorSphereGaussianRadius_class(){
         }
         { //::FormFactorSphereGaussianRadius::createDistributedFormFactors
         
-            typedef void ( ::FormFactorSphereGaussianRadius::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorSphereGaussianRadius_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::FormFactorSphereGaussianRadius::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorSphereGaussianRadius_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorSphereGaussianRadius_exposer.def( 
                 "createDistributedFormFactors"
@@ -383,6 +395,17 @@ void register_FormFactorSphereGaussianRadius_class(){
                 , default_cloneInvertB_function_type(&FormFactorSphereGaussianRadius_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( FormFactorSphereGaussianRadius_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            FormFactorSphereGaussianRadius_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorSphereGaussianRadius_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -407,6 +430,18 @@ void register_FormFactorSphereGaussianRadius_class(){
                 , default_evaluate_function_type(&FormFactorSphereGaussianRadius_wrapper::default_evaluate)
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( FormFactorSphereGaussianRadius_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            FormFactorSphereGaussianRadius_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&FormFactorSphereGaussianRadius_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -473,18 +508,6 @@ void register_FormFactorSphereGaussianRadius_class(){
                 , default_registerParameter_function_type( &FormFactorSphereGaussianRadius_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( FormFactorSphereGaussianRadius_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            FormFactorSphereGaussianRadius_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&FormFactorSphereGaussianRadius_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
index b6e7f8453f9f59fd8fee7511ce6f1573fe598920..7896b173cc5e01912b39e862d4c4577a7e069531 100644
--- a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
+++ b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
@@ -25,38 +25,29 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     
     }
 
-    virtual ::IClusteredParticles * clone(  ) const  {
-        if( bp::override func_clone = this->get_override( "clone" ) )
-            return func_clone(  );
-        else{
-            return this->IClusteredParticles::clone(  );
-        }
-    }
-    
-    ::IClusteredParticles * default_clone(  ) const  {
-        return IClusteredParticles::clone( );
+    virtual void accept( ::ISampleVisitor * visitor ) const {
+        bp::override func_accept = this->get_override( "accept" );
+        func_accept( boost::python::ptr(visitor) );
     }
 
-    virtual ::IClusteredParticles * cloneInvertB(  ) const  {
-        if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
-            return func_cloneInvertB(  );
-        else{
-            return this->IClusteredParticles::cloneInvertB(  );
-        }
+    virtual ::IClusteredParticles * clone(  ) const {
+        bp::override func_clone = this->get_override( "clone" );
+        return func_clone(  );
     }
-    
-    ::IClusteredParticles * default_cloneInvertB(  ) const  {
-        return IClusteredParticles::cloneInvertB( );
+
+    virtual ::IClusteredParticles * cloneInvertB(  ) const {
+        bp::override func_cloneInvertB = this->get_override( "cloneInvertB" );
+        return func_cloneInvertB(  );
     }
 
     virtual ::Geometry::ITransform3D const * getTransform(  ) const  {
         if( bp::override func_getTransform = this->get_override( "getTransform" ) )
             return func_getTransform(  );
-        else{
+        else
             return this->IClusteredParticles::getTransform(  );
-        }
     }
     
+    
     ::Geometry::ITransform3D const * default_getTransform(  ) const  {
         return IClusteredParticles::getTransform( );
     }
@@ -69,28 +60,23 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void setTransform( ::Geometry::ITransform3D const & transform ) {
         if( bp::override func_setTransform = this->get_override( "setTransform" ) )
             func_setTransform( boost::ref(transform) );
-        else{
+        else
             this->IClusteredParticles::setTransform( boost::ref(transform) );
-        }
     }
     
+    
     void default_setTransform( ::Geometry::ITransform3D const & transform ) {
         IClusteredParticles::setTransform( boost::ref(transform) );
     }
 
-    virtual void accept( ::ISampleVisitor * p_visitor ) const {
-        bp::override func_accept = this->get_override( "accept" );
-        func_accept( boost::python::ptr(p_visitor) );
-    }
-
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -98,23 +84,35 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -122,11 +120,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -134,11 +132,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -146,11 +144,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -158,11 +156,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -186,26 +184,14 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -213,24 +199,24 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -242,27 +228,33 @@ void register_IClusteredParticles_class(){
         typedef bp::class_< IClusteredParticles_wrapper, bp::bases< ICompositeSample >, boost::noncopyable > IClusteredParticles_exposer_t;
         IClusteredParticles_exposer_t IClusteredParticles_exposer = IClusteredParticles_exposer_t( "IClusteredParticles", bp::init< >() );
         bp::scope IClusteredParticles_scope( IClusteredParticles_exposer );
+        { //::IClusteredParticles::accept
+        
+            typedef void ( ::IClusteredParticles::*accept_function_type )( ::ISampleVisitor * ) const;
+            
+            IClusteredParticles_exposer.def( 
+                "accept"
+                , bp::pure_virtual( accept_function_type(&::IClusteredParticles::accept) )
+                , ( bp::arg("visitor") ) );
+        
+        }
         { //::IClusteredParticles::clone
         
             typedef ::IClusteredParticles * ( ::IClusteredParticles::*clone_function_type )(  ) const;
-            typedef ::IClusteredParticles * ( IClusteredParticles_wrapper::*default_clone_function_type )(  ) const;
             
             IClusteredParticles_exposer.def( 
                 "clone"
-                , clone_function_type(&::IClusteredParticles::clone)
-                , default_clone_function_type(&IClusteredParticles_wrapper::default_clone)
+                , bp::pure_virtual( clone_function_type(&::IClusteredParticles::clone) )
                 , bp::return_value_policy< bp::manage_new_object >() );
         
         }
         { //::IClusteredParticles::cloneInvertB
         
             typedef ::IClusteredParticles * ( ::IClusteredParticles::*cloneInvertB_function_type )(  ) const;
-            typedef ::IClusteredParticles * ( IClusteredParticles_wrapper::*default_cloneInvertB_function_type )(  ) const;
             
             IClusteredParticles_exposer.def( 
                 "cloneInvertB"
-                , cloneInvertB_function_type(&::IClusteredParticles::cloneInvertB)
-                , default_cloneInvertB_function_type(&IClusteredParticles_wrapper::default_cloneInvertB)
+                , bp::pure_virtual( cloneInvertB_function_type(&::IClusteredParticles::cloneInvertB) )
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
@@ -299,16 +291,6 @@ void register_IClusteredParticles_class(){
                 , default_setTransform_function_type(&IClusteredParticles_wrapper::default_setTransform)
                 , ( bp::arg("transform") ) );
         
-        }
-        { //::ISample::accept
-        
-            typedef void ( ::ISample::*accept_function_type )( ::ISampleVisitor * ) const;
-            
-            IClusteredParticles_exposer.def( 
-                "accept"
-                , bp::pure_virtual( accept_function_type(&::ISample::accept) )
-                , ( bp::arg("p_visitor") ) );
-        
         }
         { //::IParameterized::areParametersChanged
         
@@ -331,6 +313,17 @@ void register_IClusteredParticles_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&IClusteredParticles_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( IClusteredParticles_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            IClusteredParticles_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&IClusteredParticles_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -399,18 +392,6 @@ void register_IClusteredParticles_class(){
                 , default_registerParameter_function_type( &IClusteredParticles_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IClusteredParticles_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IClusteredParticles_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IClusteredParticles_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -437,8 +418,8 @@ void register_IClusteredParticles_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( IClusteredParticles_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( IClusteredParticles_wrapper::*default_size_function_type )(  ) const;
             
             IClusteredParticles_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/ICompositeSample.pypp.cpp b/Core/PythonAPI/src/ICompositeSample.pypp.cpp
index 70d43404e707e156023ce59f176f3ada11884b81..e169b0c34afb5db12a83db8cb58fa72a48b0bc7f 100644
--- a/Core/PythonAPI/src/ICompositeSample.pypp.cpp
+++ b/Core/PythonAPI/src/ICompositeSample.pypp.cpp
@@ -33,11 +33,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -45,40 +45,35 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
-    virtual void accept( ::ISampleVisitor * p_visitor ) const {
-        bp::override func_accept = this->get_override( "accept" );
-        func_accept( boost::python::ptr(p_visitor) );
-    }
-
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -86,11 +81,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -98,23 +93,35 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -122,11 +129,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -134,11 +141,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -162,26 +169,14 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -189,11 +184,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -278,24 +273,14 @@ void register_ICompositeSample_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( ICompositeSample_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ICompositeSample_wrapper::*default_size_function_type )(  ) const;
             
             ICompositeSample_exposer.def( 
                 "size"
                 , size_function_type(&::ICompositeSample::size)
                 , default_size_function_type(&ICompositeSample_wrapper::default_size) );
         
-        }
-        { //::ISample::accept
-        
-            typedef void ( ::ISample::*accept_function_type )( ::ISampleVisitor * ) const;
-            
-            ICompositeSample_exposer.def( 
-                "accept"
-                , bp::pure_virtual( accept_function_type(&::ISample::accept) )
-                , ( bp::arg("p_visitor") ) );
-        
         }
         { //::IParameterized::areParametersChanged
         
@@ -330,6 +315,17 @@ void register_ICompositeSample_class(){
                 , default_cloneInvertB_function_type(&ICompositeSample_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( ICompositeSample_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            ICompositeSample_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&ICompositeSample_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -374,18 +370,6 @@ void register_ICompositeSample_class(){
                 , default_registerParameter_function_type( &ICompositeSample_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( ICompositeSample_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            ICompositeSample_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&ICompositeSample_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IDecoration.pypp.cpp b/Core/PythonAPI/src/IDecoration.pypp.cpp
index daa1dbac686a3e9852d83277b33b5c97ce4074c3..8cd261b5a4b6fdc1a8a82dd336fb1b8449c438e0 100644
--- a/Core/PythonAPI/src/IDecoration.pypp.cpp
+++ b/Core/PythonAPI/src/IDecoration.pypp.cpp
@@ -25,6 +25,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     
     }
 
+    virtual void accept( ::ISampleVisitor * visitor ) const {
+        bp::override func_accept = this->get_override( "accept" );
+        func_accept( boost::python::ptr(visitor) );
+    }
+
     virtual ::IDecoration * clone(  ) const {
         bp::override func_clone = this->get_override( "clone" );
         return func_clone(  );
@@ -35,7 +40,7 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
         return func_cloneInvertB(  );
     }
 
-    virtual double getAbundanceFractionOfParticle( ::size_t index ) const {
+    virtual double getAbundanceFractionOfParticle( ::std::size_t index ) const {
         bp::override func_getAbundanceFractionOfParticle = this->get_override( "getAbundanceFractionOfParticle" );
         return func_getAbundanceFractionOfParticle( index );
     }
@@ -45,41 +50,36 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
         return func_getInterferenceFunctions(  );
     }
 
-    virtual ::size_t getNumberOfInterferenceFunctions(  ) const  {
+    virtual ::std::size_t getNumberOfInterferenceFunctions(  ) const  {
         if( bp::override func_getNumberOfInterferenceFunctions = this->get_override( "getNumberOfInterferenceFunctions" ) )
             return func_getNumberOfInterferenceFunctions(  );
-        else{
+        else
             return this->IDecoration::getNumberOfInterferenceFunctions(  );
-        }
     }
     
-    ::size_t default_getNumberOfInterferenceFunctions(  ) const  {
+    
+    ::std::size_t default_getNumberOfInterferenceFunctions(  ) const  {
         return IDecoration::getNumberOfInterferenceFunctions( );
     }
 
-    virtual ::size_t getNumberOfParticles(  ) const {
+    virtual ::std::size_t getNumberOfParticles(  ) const {
         bp::override func_getNumberOfParticles = this->get_override( "getNumberOfParticles" );
         return func_getNumberOfParticles(  );
     }
 
-    virtual ::ParticleInfo const * getParticleInfo( ::size_t index ) const {
+    virtual ::ParticleInfo const * getParticleInfo( ::std::size_t index ) const {
         bp::override func_getParticleInfo = this->get_override( "getParticleInfo" );
         return func_getParticleInfo( index );
     }
 
-    virtual void accept( ::ISampleVisitor * p_visitor ) const {
-        bp::override func_accept = this->get_override( "accept" );
-        func_accept( boost::python::ptr(p_visitor) );
-    }
-
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -87,23 +87,35 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -111,11 +123,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -123,11 +135,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -135,11 +147,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -147,11 +159,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -175,26 +187,14 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -202,24 +202,24 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -231,6 +231,16 @@ void register_IDecoration_class(){
         typedef bp::class_< IDecoration_wrapper, bp::bases< ICompositeSample >, boost::noncopyable > IDecoration_exposer_t;
         IDecoration_exposer_t IDecoration_exposer = IDecoration_exposer_t( "IDecoration", bp::init< >() );
         bp::scope IDecoration_scope( IDecoration_exposer );
+        { //::IDecoration::accept
+        
+            typedef void ( ::IDecoration::*accept_function_type )( ::ISampleVisitor * ) const;
+            
+            IDecoration_exposer.def( 
+                "accept"
+                , bp::pure_virtual( accept_function_type(&::IDecoration::accept) )
+                , ( bp::arg("visitor") ) );
+        
+        }
         { //::IDecoration::clone
         
             typedef ::IDecoration * ( ::IDecoration::*clone_function_type )(  ) const;
@@ -253,7 +263,7 @@ void register_IDecoration_class(){
         }
         { //::IDecoration::getAbundanceFractionOfParticle
         
-            typedef double ( ::IDecoration::*getAbundanceFractionOfParticle_function_type )( ::size_t ) const;
+            typedef double ( ::IDecoration::*getAbundanceFractionOfParticle_function_type )( ::std::size_t ) const;
             
             IDecoration_exposer.def( 
                 "getAbundanceFractionOfParticle"
@@ -272,8 +282,8 @@ void register_IDecoration_class(){
         }
         { //::IDecoration::getNumberOfInterferenceFunctions
         
-            typedef ::size_t ( ::IDecoration::*getNumberOfInterferenceFunctions_function_type )(  ) const;
-            typedef ::size_t ( IDecoration_wrapper::*default_getNumberOfInterferenceFunctions_function_type )(  ) const;
+            typedef ::std::size_t ( ::IDecoration::*getNumberOfInterferenceFunctions_function_type )(  ) const;
+            typedef ::std::size_t ( IDecoration_wrapper::*default_getNumberOfInterferenceFunctions_function_type )(  ) const;
             
             IDecoration_exposer.def( 
                 "getNumberOfInterferenceFunctions"
@@ -283,7 +293,7 @@ void register_IDecoration_class(){
         }
         { //::IDecoration::getNumberOfParticles
         
-            typedef ::size_t ( ::IDecoration::*getNumberOfParticles_function_type )(  ) const;
+            typedef ::std::size_t ( ::IDecoration::*getNumberOfParticles_function_type )(  ) const;
             
             IDecoration_exposer.def( 
                 "getNumberOfParticles"
@@ -292,7 +302,7 @@ void register_IDecoration_class(){
         }
         { //::IDecoration::getParticleInfo
         
-            typedef ::ParticleInfo const * ( ::IDecoration::*getParticleInfo_function_type )( ::size_t ) const;
+            typedef ::ParticleInfo const * ( ::IDecoration::*getParticleInfo_function_type )( ::std::size_t ) const;
             
             IDecoration_exposer.def( 
                 "getParticleInfo"
@@ -319,16 +329,6 @@ void register_IDecoration_class(){
                 , setTotalParticleSurfaceDensity_function_type( &::IDecoration::setTotalParticleSurfaceDensity )
                 , ( bp::arg("surface_density") ) );
         
-        }
-        { //::ISample::accept
-        
-            typedef void ( ::ISample::*accept_function_type )( ::ISampleVisitor * ) const;
-            
-            IDecoration_exposer.def( 
-                "accept"
-                , bp::pure_virtual( accept_function_type(&::ISample::accept) )
-                , ( bp::arg("p_visitor") ) );
-        
         }
         { //::IParameterized::areParametersChanged
         
@@ -351,6 +351,17 @@ void register_IDecoration_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&IDecoration_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( IDecoration_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            IDecoration_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&IDecoration_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -419,18 +430,6 @@ void register_IDecoration_class(){
                 , default_registerParameter_function_type( &IDecoration_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IDecoration_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IDecoration_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IDecoration_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -457,8 +456,8 @@ void register_IDecoration_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( IDecoration_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( IDecoration_wrapper::*default_size_function_type )(  ) const;
             
             IDecoration_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/IDetectorResolution.pypp.cpp b/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
index 2ac71b82b8d091acd0a28ae5f861d1682740b439..1bfbec60f6e7dae500d4b78475bb104089b314bd 100644
--- a/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
+++ b/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
@@ -38,11 +38,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -50,11 +50,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -62,11 +62,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -74,11 +74,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -102,26 +102,14 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -129,11 +117,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -220,18 +208,6 @@ void register_IDetectorResolution_class(){
                 , default_registerParameter_function_type( &IDetectorResolution_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IDetectorResolution_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IDetectorResolution_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IDetectorResolution_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp b/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
index c68a3fc4d6580807b7773a6ccf7386f21dd671b5..8fbe7b360e91d804e8752bde9e71e80da7b9377c 100644
--- a/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
+++ b/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
@@ -18,8 +18,8 @@ namespace bp = boost::python;
 
 struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistribution2D > {
 
-    IFTDistribution2D_wrapper(double coherence_length_x, double coherence_length_y )
-    : IFTDistribution2D( coherence_length_x, coherence_length_y )
+    IFTDistribution2D_wrapper(double omega_x, double omega_y )
+    : IFTDistribution2D( omega_x, omega_y )
       , bp::wrapper< IFTDistribution2D >(){
         // constructor
     
@@ -35,14 +35,19 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
         return func_evaluate( qx, qy );
     }
 
+    virtual void transformToStarBasis( double qX, double qY, double alpha, double a, double b, double & qa, double & qb ) const {
+        bp::override func_transformToStarBasis = this->get_override( "transformToStarBasis" );
+        func_transformToStarBasis( qX, qY, alpha, a, b, qa, qb );
+    }
+
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -50,11 +55,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -62,11 +67,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -74,11 +79,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -102,26 +107,14 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -129,11 +122,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -144,7 +137,7 @@ void register_IFTDistribution2D_class(){
 
     { //::IFTDistribution2D
         typedef bp::class_< IFTDistribution2D_wrapper, bp::bases< IParameterized >, boost::noncopyable > IFTDistribution2D_exposer_t;
-        IFTDistribution2D_exposer_t IFTDistribution2D_exposer = IFTDistribution2D_exposer_t( "IFTDistribution2D", bp::init< double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y") )) );
+        IFTDistribution2D_exposer_t IFTDistribution2D_exposer = IFTDistribution2D_exposer_t( "IFTDistribution2D", bp::init< double, double >(( bp::arg("omega_x"), bp::arg("omega_y") )) );
         bp::scope IFTDistribution2D_scope( IFTDistribution2D_exposer );
         { //::IFTDistribution2D::clone
         
@@ -200,7 +193,7 @@ void register_IFTDistribution2D_class(){
             
             IFTDistribution2D_exposer.def( 
                 "transformToStarBasis"
-                , transformToStarBasis_function_type( &::IFTDistribution2D::transformToStarBasis )
+                , bp::pure_virtual( transformToStarBasis_function_type(&::IFTDistribution2D::transformToStarBasis) )
                 , ( bp::arg("qX"), bp::arg("qY"), bp::arg("alpha"), bp::arg("a"), bp::arg("b"), bp::arg("qa"), bp::arg("qb") ) );
         
         }
@@ -258,18 +251,6 @@ void register_IFTDistribution2D_class(){
                 , default_registerParameter_function_type( &IFTDistribution2D_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IFTDistribution2D_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IFTDistribution2D_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IFTDistribution2D_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IFormFactor.pypp.cpp b/Core/PythonAPI/src/IFormFactor.pypp.cpp
index 582ff582f9083260d7ac7dc6e323f97677c3a768..1385a08b954afcc588330caf7f7193f2a09e1c54 100644
--- a/Core/PythonAPI/src/IFormFactor.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactor.pypp.cpp
@@ -30,15 +30,15 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
         return func_clone(  );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
@@ -50,11 +50,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactor::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactor::getHeight( );
     }
@@ -62,11 +62,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->IFormFactor::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return IFormFactor::getNumberOfStochasticParameters( );
     }
@@ -74,11 +74,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -86,11 +86,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactor::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactor::getVolume( );
     }
@@ -98,11 +98,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -110,11 +110,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -122,11 +122,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -134,35 +134,59 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -170,11 +194,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -182,11 +206,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -210,26 +234,14 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -237,11 +249,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -266,8 +278,8 @@ void register_IFormFactor_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( IFormFactor_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( IFormFactor_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             IFormFactor_exposer.def( 
                 "createDistributedFormFactors"
@@ -375,6 +387,17 @@ void register_IFormFactor_class(){
                 , default_cloneInvertB_function_type(&IFormFactor_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( IFormFactor_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            IFormFactor_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&IFormFactor_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -387,6 +410,18 @@ void register_IFormFactor_class(){
                 , default_createParameterTree_function_type(&IFormFactor_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( IFormFactor_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            IFormFactor_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&IFormFactor_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -431,18 +466,6 @@ void register_IFormFactor_class(){
                 , default_registerParameter_function_type( &IFormFactor_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IFormFactor_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IFormFactor_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IFormFactor_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
index 401068a3c4b4d1dd6457856b751a1f802021fc44..d6edb33d9890c7cdd7245f5784a68b453ef30463 100644
--- a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
@@ -33,11 +33,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -50,11 +50,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -62,11 +62,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -74,11 +74,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -86,47 +86,71 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -134,11 +158,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactor::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactor::getHeight( );
     }
@@ -146,11 +170,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->IFormFactor::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return IFormFactor::getNumberOfStochasticParameters( );
     }
@@ -158,11 +182,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -170,11 +194,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -182,11 +206,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -194,11 +218,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -222,26 +246,14 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -249,11 +261,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -342,11 +354,22 @@ void register_IFormFactorBorn_class(){
                 , default_cloneInvertB_function_type(&IFormFactorBorn_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( IFormFactorBorn_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            IFormFactorBorn_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&IFormFactorBorn_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( IFormFactorBorn_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( IFormFactorBorn_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             IFormFactorBorn_exposer.def( 
                 "createDistributedFormFactors"
@@ -367,6 +390,18 @@ void register_IFormFactorBorn_class(){
                 , default_createParameterTree_function_type(&IFormFactorBorn_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( IFormFactorBorn_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            IFormFactorBorn_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&IFormFactorBorn_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -455,18 +490,6 @@ void register_IFormFactorBorn_class(){
                 , default_registerParameter_function_type( &IFormFactorBorn_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IFormFactorBorn_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IFormFactorBorn_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IFormFactorBorn_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
index 8285eadec4f19d3791ca2e84f5b1cceaa2a65d4b..5d1d447416111a2087da045d013bc78b74d44f1b 100644
--- a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
@@ -18,6 +18,11 @@ namespace bp = boost::python;
 
 struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFactorDecorator > {
 
+    virtual void accept( ::ISampleVisitor * visitor ) const {
+        bp::override func_accept = this->get_override( "accept" );
+        func_accept( boost::python::ptr(visitor) );
+    }
+
     virtual ::IFormFactorDecorator * clone(  ) const {
         bp::override func_clone = this->get_override( "clone" );
         return func_clone(  );
@@ -26,11 +31,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactorDecorator::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactorDecorator::getHeight( );
     }
@@ -38,11 +43,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactorDecorator::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactorDecorator::getRadius( );
     }
@@ -50,11 +55,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorDecorator::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorDecorator::getVolume( );
     }
@@ -62,11 +67,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -74,11 +79,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -86,35 +91,47 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -124,14 +141,26 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
         return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -139,11 +168,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->IFormFactor::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return IFormFactor::getNumberOfStochasticParameters( );
     }
@@ -151,11 +180,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -163,11 +192,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -175,11 +204,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -203,26 +232,14 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -230,11 +247,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -247,6 +264,16 @@ void register_IFormFactorDecorator_class(){
         typedef bp::class_< IFormFactorDecorator_wrapper, bp::bases< IFormFactor >, boost::noncopyable > IFormFactorDecorator_exposer_t;
         IFormFactorDecorator_exposer_t IFormFactorDecorator_exposer = IFormFactorDecorator_exposer_t( "IFormFactorDecorator", bp::no_init );
         bp::scope IFormFactorDecorator_scope( IFormFactorDecorator_exposer );
+        { //::IFormFactorDecorator::accept
+        
+            typedef void ( ::IFormFactorDecorator::*accept_function_type )( ::ISampleVisitor * ) const;
+            
+            IFormFactorDecorator_exposer.def( 
+                "accept"
+                , bp::pure_virtual( accept_function_type(&::IFormFactorDecorator::accept) )
+                , ( bp::arg("visitor") ) );
+        
+        }
         { //::IFormFactorDecorator::clone
         
             typedef ::IFormFactorDecorator * ( ::IFormFactorDecorator::*clone_function_type )(  ) const;
@@ -323,11 +350,22 @@ void register_IFormFactorDecorator_class(){
                 , default_cloneInvertB_function_type(&IFormFactorDecorator_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( IFormFactorDecorator_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            IFormFactorDecorator_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&IFormFactorDecorator_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( IFormFactorDecorator_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( IFormFactorDecorator_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             IFormFactorDecorator_exposer.def( 
                 "createDistributedFormFactors"
@@ -358,6 +396,18 @@ void register_IFormFactorDecorator_class(){
                 , bp::pure_virtual( evaluate_function_type(&::IFormFactor::evaluate) )
                 , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( IFormFactorDecorator_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            IFormFactorDecorator_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&IFormFactorDecorator_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -424,18 +474,6 @@ void register_IFormFactorDecorator_class(){
                 , default_registerParameter_function_type( &IFormFactorDecorator_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IFormFactorDecorator_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IFormFactorDecorator_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IFormFactorDecorator_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
index 0d33b05e0da1d736c2423cb0c8482e3dcf8c9bbe..bb778471e308a58170b3fa69d3038ee7139f28f4 100644
--- a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
+++ b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
@@ -38,11 +38,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->IInterferenceFunction::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return IInterferenceFunction::getKappa( );
     }
@@ -50,11 +50,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -62,11 +62,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -74,35 +74,59 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -110,11 +134,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -122,11 +146,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -150,26 +174,14 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -177,11 +189,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -258,6 +270,17 @@ void register_IInterferenceFunction_class(){
                 , default_cloneInvertB_function_type(&IInterferenceFunction_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( IInterferenceFunction_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            IInterferenceFunction_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&IInterferenceFunction_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -270,6 +293,18 @@ void register_IInterferenceFunction_class(){
                 , default_createParameterTree_function_type(&IInterferenceFunction_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( IInterferenceFunction_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            IInterferenceFunction_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&IInterferenceFunction_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -314,18 +349,6 @@ void register_IInterferenceFunction_class(){
                 , default_registerParameter_function_type( &IInterferenceFunction_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IInterferenceFunction_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IInterferenceFunction_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IInterferenceFunction_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IParameterized.pypp.cpp b/Core/PythonAPI/src/IParameterized.pypp.cpp
index a877d62ddc8a79a787310eb88b336f103cd0fc39..270c7cda80a8a579dbb61a4e11335012fb7a3c01 100644
--- a/Core/PythonAPI/src/IParameterized.pypp.cpp
+++ b/Core/PythonAPI/src/IParameterized.pypp.cpp
@@ -42,11 +42,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -54,11 +54,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -66,11 +66,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -78,11 +78,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -106,26 +106,14 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -133,11 +121,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -227,18 +215,6 @@ void register_IParameterized_class(){
                 , default_registerParameter_function_type( &IParameterized_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IParameterized_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IParameterized_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IParameterized_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp b/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
index 6fb03f15fa94c212e0cb39ff67a23b9a1f2df6d3..2b51f7601e0f640ec3e5a2c08b71b321bf9662fc 100644
--- a/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
+++ b/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
@@ -38,11 +38,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -50,11 +50,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -62,11 +62,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -74,11 +74,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -102,26 +102,14 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -129,11 +117,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -220,18 +208,6 @@ void register_IResolutionFunction2D_class(){
                 , default_registerParameter_function_type( &IResolutionFunction2D_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( IResolutionFunction2D_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            IResolutionFunction2D_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&IResolutionFunction2D_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/ISample.pypp.cpp b/Core/PythonAPI/src/ISample.pypp.cpp
index 49e71dd8e14a86538511b365019ca7185e4883c1..d758d4431865405a793bc2bded3d502fc39477d6 100644
--- a/Core/PythonAPI/src/ISample.pypp.cpp
+++ b/Core/PythonAPI/src/ISample.pypp.cpp
@@ -30,38 +30,55 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
         func_accept( boost::python::ptr(p_visitor) );
     }
 
-    virtual ::ISample * clone(  ) const  {
-        if( bp::override func_clone = this->get_override( "clone" ) )
-            return func_clone(  );
-        else{
-            return this->ISample::clone(  );
-        }
-    }
-    
-    ::ISample * default_clone(  ) const  {
-        return ISample::clone( );
+    virtual ::ISample * clone(  ) const {
+        bp::override func_clone = this->get_override( "clone" );
+        return func_clone(  );
     }
 
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -69,11 +86,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -81,11 +98,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -93,11 +110,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -105,11 +122,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -117,11 +134,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -145,26 +162,14 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -172,11 +177,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -202,12 +207,10 @@ void register_ISample_class(){
         { //::ISample::clone
         
             typedef ::ISample * ( ::ISample::*clone_function_type )(  ) const;
-            typedef ::ISample * ( ISample_wrapper::*default_clone_function_type )(  ) const;
             
             ISample_exposer.def( 
                 "clone"
-                , clone_function_type(&::ISample::clone)
-                , default_clone_function_type(&ISample_wrapper::default_clone)
+                , bp::pure_virtual( clone_function_type(&::ISample::clone) )
                 , bp::return_value_policy< bp::manage_new_object >() );
         
         }
@@ -226,10 +229,24 @@ void register_ISample_class(){
         { //::ISample::containsMagneticMaterial
         
             typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( ISample_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
             
             ISample_exposer.def( 
                 "containsMagneticMaterial"
-                , containsMagneticMaterial_function_type( &::ISample::containsMagneticMaterial ) );
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&ISample_wrapper::default_containsMagneticMaterial) );
+        
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( ISample_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            ISample_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ISample_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
         { //::ISample::getCompositeSample
@@ -309,18 +326,6 @@ void register_ISample_class(){
                 , default_registerParameter_function_type( &ISample_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( ISample_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            ISample_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&ISample_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/ISampleBuilder.pypp.cpp b/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
index 324cda2a65e75b670f60703f702560a5b3588d02..1860511271975d9d6d065c12991e8a613bcd9c7f 100644
--- a/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
+++ b/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
@@ -35,11 +35,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual ::ISample * buildSample(  ) const  {
         if( bp::override func_buildSample = this->get_override( "buildSample" ) )
             return func_buildSample(  );
-        else{
+        else
             return this->ISampleBuilder::buildSample(  );
-        }
     }
     
+    
     ::ISample * default_buildSample(  ) const  {
         return ISampleBuilder::buildSample( );
     }
@@ -47,11 +47,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -59,11 +59,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -71,11 +71,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -83,11 +83,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -111,26 +111,14 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -138,11 +126,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -221,18 +209,6 @@ void register_ISampleBuilder_class(){
                 , default_registerParameter_function_type( &ISampleBuilder_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( ISampleBuilder_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            ISampleBuilder_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&ISampleBuilder_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/Instrument.pypp.cpp b/Core/PythonAPI/src/Instrument.pypp.cpp
index f39802358545385a9cf76252d24b10400a573c0d..32f9e1a1d1d6193fcaaa9d93eed9233e42cee0da 100644
--- a/Core/PythonAPI/src/Instrument.pypp.cpp
+++ b/Core/PythonAPI/src/Instrument.pypp.cpp
@@ -35,11 +35,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -47,11 +47,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -59,11 +59,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -71,11 +71,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -99,26 +99,14 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -126,11 +114,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -164,7 +152,7 @@ void register_Instrument_class(){
         }
         { //::Instrument::getDetectorAxis
         
-            typedef ::IAxis const & ( ::Instrument::*getDetectorAxis_function_type )( ::size_t ) const;
+            typedef ::IAxis const & ( ::Instrument::*getDetectorAxis_function_type )( ::std::size_t ) const;
             
             Instrument_exposer.def( 
                 "getDetectorAxis"
@@ -175,7 +163,7 @@ void register_Instrument_class(){
         }
         { //::Instrument::getDetectorDimension
         
-            typedef ::size_t ( ::Instrument::*getDetectorDimension_function_type )(  ) const;
+            typedef ::std::size_t ( ::Instrument::*getDetectorDimension_function_type )(  ) const;
             
             Instrument_exposer.def( 
                 "getDetectorDimension"
@@ -233,7 +221,7 @@ void register_Instrument_class(){
         }
         { //::Instrument::setDetectorParameters
         
-            typedef void ( ::Instrument::*setDetectorParameters_function_type )( ::size_t,double,double,::size_t,double,double,bool ) ;
+            typedef void ( ::Instrument::*setDetectorParameters_function_type )( ::std::size_t,double,double,::std::size_t,double,double,bool ) ;
             
             Instrument_exposer.def( 
                 "setDetectorParameters"
@@ -315,18 +303,6 @@ void register_Instrument_class(){
                 , default_registerParameter_function_type( &Instrument_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( Instrument_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            Instrument_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&Instrument_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp
index 5353eeed314f623ab4b4bc98da03094630222540..f3161ed713661bdfb72a117ed68dcf7c5f1320fa 100644
--- a/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp
@@ -28,11 +28,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual ::InterferenceFunction1DParaCrystal * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->InterferenceFunction1DParaCrystal::clone(  );
-        }
     }
     
+    
     ::InterferenceFunction1DParaCrystal * default_clone(  ) const  {
         return InterferenceFunction1DParaCrystal::clone( );
     }
@@ -40,11 +40,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual double evaluate( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(q) );
-        else{
+        else
             return this->InterferenceFunction1DParaCrystal::evaluate( boost::ref(q) );
-        }
     }
     
+    
     double default_evaluate( ::cvector_t const & q ) const  {
         return InterferenceFunction1DParaCrystal::evaluate( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->InterferenceFunction1DParaCrystal::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return InterferenceFunction1DParaCrystal::getKappa( );
     }
@@ -64,11 +64,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -76,11 +76,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -88,35 +88,59 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -124,11 +148,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +160,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -164,26 +188,14 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +203,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -296,6 +308,17 @@ void register_InterferenceFunction1DParaCrystal_class(){
                 , default_cloneInvertB_function_type(&InterferenceFunction1DParaCrystal_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( InterferenceFunction1DParaCrystal_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            InterferenceFunction1DParaCrystal_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&InterferenceFunction1DParaCrystal_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -308,6 +331,18 @@ void register_InterferenceFunction1DParaCrystal_class(){
                 , default_createParameterTree_function_type(&InterferenceFunction1DParaCrystal_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( InterferenceFunction1DParaCrystal_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            InterferenceFunction1DParaCrystal_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&InterferenceFunction1DParaCrystal_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -352,18 +387,6 @@ void register_InterferenceFunction1DParaCrystal_class(){
                 , default_registerParameter_function_type( &InterferenceFunction1DParaCrystal_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( InterferenceFunction1DParaCrystal_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            InterferenceFunction1DParaCrystal_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&InterferenceFunction1DParaCrystal_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
index 343d5b225e3d99e346dbb1556232655aa82f648b..0753d66da359bb67f85b21feb74fbf942874c571 100644
--- a/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
@@ -28,11 +28,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual ::InterferenceFunction2DLattice * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->InterferenceFunction2DLattice::clone(  );
-        }
     }
     
+    
     ::InterferenceFunction2DLattice * default_clone(  ) const  {
         return InterferenceFunction2DLattice::clone( );
     }
@@ -40,11 +40,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual double evaluate( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(q) );
-        else{
+        else
             return this->InterferenceFunction2DLattice::evaluate( boost::ref(q) );
-        }
     }
     
+    
     double default_evaluate( ::cvector_t const & q ) const  {
         return InterferenceFunction2DLattice::evaluate( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,35 +76,59 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -112,11 +136,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->IInterferenceFunction::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return IInterferenceFunction::getKappa( );
     }
@@ -124,11 +148,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +160,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -164,26 +188,14 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +203,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -275,6 +287,17 @@ void register_InterferenceFunction2DLattice_class(){
                 , default_cloneInvertB_function_type(&InterferenceFunction2DLattice_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( InterferenceFunction2DLattice_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            InterferenceFunction2DLattice_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&InterferenceFunction2DLattice_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -287,6 +310,18 @@ void register_InterferenceFunction2DLattice_class(){
                 , default_createParameterTree_function_type(&InterferenceFunction2DLattice_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( InterferenceFunction2DLattice_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            InterferenceFunction2DLattice_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&InterferenceFunction2DLattice_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -342,18 +377,6 @@ void register_InterferenceFunction2DLattice_class(){
                 , default_registerParameter_function_type( &InterferenceFunction2DLattice_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( InterferenceFunction2DLattice_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            InterferenceFunction2DLattice_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&InterferenceFunction2DLattice_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
index 15f0c4497fba2cdce37b28dac1e307a34cd4d00e..7825deaae3bd3de4a330e18d3094aeded60526b8 100644
--- a/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
@@ -28,11 +28,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual ::InterferenceFunction2DParaCrystal * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->InterferenceFunction2DParaCrystal::clone(  );
-        }
     }
     
+    
     ::InterferenceFunction2DParaCrystal * default_clone(  ) const  {
         return InterferenceFunction2DParaCrystal::clone( );
     }
@@ -40,11 +40,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual double evaluate( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(q) );
-        else{
+        else
             return this->InterferenceFunction2DParaCrystal::evaluate( boost::ref(q) );
-        }
     }
     
+    
     double default_evaluate( ::cvector_t const & q ) const  {
         return InterferenceFunction2DParaCrystal::evaluate( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,35 +76,59 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -112,11 +136,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->IInterferenceFunction::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return IInterferenceFunction::getKappa( );
     }
@@ -124,11 +148,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +160,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -164,26 +188,14 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +203,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -317,6 +329,17 @@ void register_InterferenceFunction2DParaCrystal_class(){
                 , default_cloneInvertB_function_type(&InterferenceFunction2DParaCrystal_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( InterferenceFunction2DParaCrystal_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            InterferenceFunction2DParaCrystal_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&InterferenceFunction2DParaCrystal_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -329,6 +352,18 @@ void register_InterferenceFunction2DParaCrystal_class(){
                 , default_createParameterTree_function_type(&InterferenceFunction2DParaCrystal_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( InterferenceFunction2DParaCrystal_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            InterferenceFunction2DParaCrystal_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&InterferenceFunction2DParaCrystal_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -384,18 +419,6 @@ void register_InterferenceFunction2DParaCrystal_class(){
                 , default_registerParameter_function_type( &InterferenceFunction2DParaCrystal_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( InterferenceFunction2DParaCrystal_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            InterferenceFunction2DParaCrystal_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&InterferenceFunction2DParaCrystal_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
index 81d2515145fabc0e977f7085b89778ef714b6643..cac4dc45457ac02609254a5f00edb31c455a9e0e 100644
--- a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
@@ -28,11 +28,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual ::InterferenceFunctionNone * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->InterferenceFunctionNone::clone(  );
-        }
     }
     
+    
     ::InterferenceFunctionNone * default_clone(  ) const  {
         return InterferenceFunctionNone::clone( );
     }
@@ -40,11 +40,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual double evaluate( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(q) );
-        else{
+        else
             return this->InterferenceFunctionNone::evaluate( boost::ref(q) );
-        }
     }
     
+    
     double default_evaluate( ::cvector_t const & q ) const  {
         return InterferenceFunctionNone::evaluate( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,35 +76,59 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -112,11 +136,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->IInterferenceFunction::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return IInterferenceFunction::getKappa( );
     }
@@ -124,11 +148,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +160,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -164,26 +188,14 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +203,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -265,6 +277,17 @@ void register_InterferenceFunctionNone_class(){
                 , default_cloneInvertB_function_type(&InterferenceFunctionNone_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( InterferenceFunctionNone_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            InterferenceFunctionNone_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&InterferenceFunctionNone_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -277,6 +300,18 @@ void register_InterferenceFunctionNone_class(){
                 , default_createParameterTree_function_type(&InterferenceFunctionNone_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( InterferenceFunctionNone_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            InterferenceFunctionNone_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&InterferenceFunctionNone_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -332,18 +367,6 @@ void register_InterferenceFunctionNone_class(){
                 , default_registerParameter_function_type( &InterferenceFunctionNone_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( InterferenceFunctionNone_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            InterferenceFunctionNone_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&InterferenceFunctionNone_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/LatticeBasis.pypp.cpp b/Core/PythonAPI/src/LatticeBasis.pypp.cpp
index 64d479802fb22d424a716e64bdb739aa15850dc9..25b872db0eb9dd8cd4fbaeeeb6ec33e25d67a4eb 100644
--- a/Core/PythonAPI/src/LatticeBasis.pypp.cpp
+++ b/Core/PythonAPI/src/LatticeBasis.pypp.cpp
@@ -28,11 +28,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -40,35 +40,59 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::IMaterial const * getAmbientMaterial(  ) const  {
+        if( bp::override func_getAmbientMaterial = this->get_override( "getAmbientMaterial" ) )
+            return func_getAmbientMaterial(  );
+        else
+            return this->Particle::getAmbientMaterial(  );
+    }
+    
+    
+    ::IMaterial const * default_getAmbientMaterial(  ) const  {
+        return Particle::getAmbientMaterial( );
+    }
+
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -76,11 +100,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -88,11 +112,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Particle::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Particle::getMaterial( );
     }
@@ -100,11 +124,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Particle::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Particle::getRefractiveIndex( );
     }
@@ -112,11 +136,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual ::IFormFactor const * getSimpleFormFactor(  ) const  {
         if( bp::override func_getSimpleFormFactor = this->get_override( "getSimpleFormFactor" ) )
             return func_getSimpleFormFactor(  );
-        else{
+        else
             return this->Particle::getSimpleFormFactor(  );
-        }
     }
     
+    
     ::IFormFactor const * default_getSimpleFormFactor(  ) const  {
         return Particle::getSimpleFormFactor( );
     }
@@ -124,11 +148,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual bool hasDistributedFormFactor(  ) const  {
         if( bp::override func_hasDistributedFormFactor = this->get_override( "hasDistributedFormFactor" ) )
             return func_hasDistributedFormFactor(  );
-        else{
+        else
             return this->Particle::hasDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_hasDistributedFormFactor(  ) const  {
         return Particle::hasDistributedFormFactor( );
     }
@@ -136,11 +160,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -148,11 +172,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -176,26 +200,14 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -203,24 +215,24 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -263,6 +275,17 @@ void register_LatticeBasis_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&LatticeBasis_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( LatticeBasis_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            LatticeBasis_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&LatticeBasis_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -275,6 +298,18 @@ void register_LatticeBasis_class(){
                 , default_createParameterTree_function_type(&LatticeBasis_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::Particle::getAmbientMaterial
+        
+            typedef ::IMaterial const * ( ::Particle::*getAmbientMaterial_function_type )(  ) const;
+            typedef ::IMaterial const * ( LatticeBasis_wrapper::*default_getAmbientMaterial_function_type )(  ) const;
+            
+            LatticeBasis_exposer.def( 
+                "getAmbientMaterial"
+                , getAmbientMaterial_function_type(&::Particle::getAmbientMaterial)
+                , default_getAmbientMaterial_function_type(&LatticeBasis_wrapper::default_getAmbientMaterial)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ICompositeSample::getCompositeSample
         
@@ -377,18 +412,6 @@ void register_LatticeBasis_class(){
                 , default_registerParameter_function_type( &LatticeBasis_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( LatticeBasis_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            LatticeBasis_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&LatticeBasis_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -415,8 +438,8 @@ void register_LatticeBasis_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( LatticeBasis_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( LatticeBasis_wrapper::*default_size_function_type )(  ) const;
             
             LatticeBasis_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/Layer.pypp.cpp b/Core/PythonAPI/src/Layer.pypp.cpp
index 6225471bb4d8c851ef11c87042780d6eb4655c8c..107b589131d408c5741916b3b0cc91ce4894b752 100644
--- a/Core/PythonAPI/src/Layer.pypp.cpp
+++ b/Core/PythonAPI/src/Layer.pypp.cpp
@@ -49,11 +49,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::Layer * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Layer::clone(  );
-        }
     }
     
+    
     ::Layer * default_clone(  ) const  {
         return Layer::clone( );
     }
@@ -61,11 +61,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::Layer * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->Layer::cloneInvertB(  );
-        }
     }
     
+    
     ::Layer * default_cloneInvertB(  ) const  {
         return Layer::cloneInvertB( );
     }
@@ -73,11 +73,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::IDecoration const * getDecoration(  ) const  {
         if( bp::override func_getDecoration = this->get_override( "getDecoration" ) )
             return func_getDecoration(  );
-        else{
+        else
             return this->Layer::getDecoration(  );
-        }
     }
     
+    
     ::IDecoration const * default_getDecoration(  ) const  {
         return Layer::getDecoration( );
     }
@@ -85,11 +85,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Layer::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Layer::getMaterial( );
     }
@@ -97,11 +97,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Layer::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Layer::getRefractiveIndex( );
     }
@@ -109,11 +109,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual double getThickness(  ) const  {
         if( bp::override func_getThickness = this->get_override( "getThickness" ) )
             return func_getThickness(  );
-        else{
+        else
             return this->Layer::getThickness(  );
-        }
     }
     
+    
     double default_getThickness(  ) const  {
         return Layer::getThickness( );
     }
@@ -121,11 +121,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual double getTotalParticleSurfaceDensity(  ) const  {
         if( bp::override func_getTotalParticleSurfaceDensity = this->get_override( "getTotalParticleSurfaceDensity" ) )
             return func_getTotalParticleSurfaceDensity(  );
-        else{
+        else
             return this->Layer::getTotalParticleSurfaceDensity(  );
-        }
     }
     
+    
     double default_getTotalParticleSurfaceDensity(  ) const  {
         return Layer::getTotalParticleSurfaceDensity( );
     }
@@ -133,11 +133,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setDecoration( ::IDecoration const & decoration ) {
         if( bp::override func_setDecoration = this->get_override( "setDecoration" ) )
             func_setDecoration( boost::ref(decoration) );
-        else{
+        else
             this->Layer::setDecoration( boost::ref(decoration) );
-        }
     }
     
+    
     void default_setDecoration( ::IDecoration const & decoration ) {
         Layer::setDecoration( boost::ref(decoration) );
     }
@@ -145,11 +145,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setMaterial( ::IMaterial const * material ) {
         if( bp::override func_setMaterial = this->get_override( "setMaterial" ) )
             func_setMaterial( boost::python::ptr(material) );
-        else{
+        else
             this->Layer::setMaterial( boost::python::ptr(material) );
-        }
     }
     
+    
     void default_setMaterial( ::IMaterial const * material ) {
         Layer::setMaterial( boost::python::ptr(material) );
     }
@@ -157,11 +157,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setMaterial( ::IMaterial const * material, double thickness ) {
         if( bp::override func_setMaterial = this->get_override( "setMaterial" ) )
             func_setMaterial( boost::python::ptr(material), thickness );
-        else{
+        else
             this->Layer::setMaterial( boost::python::ptr(material), thickness );
-        }
     }
     
+    
     void default_setMaterial( ::IMaterial const * material, double thickness ) {
         Layer::setMaterial( boost::python::ptr(material), thickness );
     }
@@ -169,11 +169,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setThickness( double thickness ) {
         if( bp::override func_setThickness = this->get_override( "setThickness" ) )
             func_setThickness( thickness );
-        else{
+        else
             this->Layer::setThickness( thickness );
-        }
     }
     
+    
     void default_setThickness( double thickness ) {
         Layer::setThickness( thickness );
     }
@@ -181,11 +181,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -193,23 +193,35 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -217,11 +229,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -229,11 +241,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -241,11 +253,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -253,11 +265,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -281,26 +293,14 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -308,24 +308,24 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -490,6 +490,17 @@ void register_Layer_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&Layer_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( Layer_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            Layer_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&Layer_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -558,18 +569,6 @@ void register_Layer_class(){
                 , default_registerParameter_function_type( &Layer_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( Layer_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            Layer_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&Layer_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -596,8 +595,8 @@ void register_Layer_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( Layer_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( Layer_wrapper::*default_size_function_type )(  ) const;
             
             Layer_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/LayerInterface.pypp.cpp b/Core/PythonAPI/src/LayerInterface.pypp.cpp
index 934bce0b5f5ff1b533555fd8be0230547940af31..f88b26117a1cf14f322a0e5c18c51a319254544f 100644
--- a/Core/PythonAPI/src/LayerInterface.pypp.cpp
+++ b/Core/PythonAPI/src/LayerInterface.pypp.cpp
@@ -21,11 +21,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual ::LayerInterface * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->LayerInterface::clone(  );
-        }
     }
     
+    
     ::LayerInterface * default_clone(  ) const  {
         return LayerInterface::clone( );
     }
@@ -33,11 +33,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -45,11 +45,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -57,23 +57,35 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -81,11 +93,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -93,11 +105,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -105,11 +117,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -117,11 +129,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -145,26 +157,14 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -172,24 +172,24 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -286,6 +286,17 @@ void register_LayerInterface_class(){
                 , default_cloneInvertB_function_type(&LayerInterface_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( LayerInterface_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            LayerInterface_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&LayerInterface_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -354,18 +365,6 @@ void register_LayerInterface_class(){
                 , default_registerParameter_function_type( &LayerInterface_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( LayerInterface_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            LayerInterface_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&LayerInterface_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -392,8 +391,8 @@ void register_LayerInterface_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( LayerInterface_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( LayerInterface_wrapper::*default_size_function_type )(  ) const;
             
             LayerInterface_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/LayerRoughness.pypp.cpp b/Core/PythonAPI/src/LayerRoughness.pypp.cpp
index 6b753fac19daf26a8b09766e4d8d0ce9b660ef3e..5661e67c699594409df112e55b5dd6cb2d55dbf4 100644
--- a/Core/PythonAPI/src/LayerRoughness.pypp.cpp
+++ b/Core/PythonAPI/src/LayerRoughness.pypp.cpp
@@ -35,11 +35,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual ::LayerRoughness * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->LayerRoughness::clone(  );
-        }
     }
     
+    
     ::LayerRoughness * default_clone(  ) const  {
         return LayerRoughness::clone( );
     }
@@ -47,11 +47,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -59,11 +59,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -71,35 +71,59 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ISample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ISample::getCompositeSample( );
+    }
+
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -107,11 +131,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -119,11 +143,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -147,26 +171,14 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -174,11 +186,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -314,6 +326,17 @@ void register_LayerRoughness_class(){
                 , default_cloneInvertB_function_type(&LayerRoughness_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( LayerRoughness_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            LayerRoughness_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&LayerRoughness_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -326,6 +349,18 @@ void register_LayerRoughness_class(){
                 , default_createParameterTree_function_type(&LayerRoughness_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ISample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ISample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( LayerRoughness_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            LayerRoughness_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ISample::getCompositeSample)
+                , default_getCompositeSample_function_type(&LayerRoughness_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ISample::getCompositeSample
         
@@ -370,18 +405,6 @@ void register_LayerRoughness_class(){
                 , default_registerParameter_function_type( &LayerRoughness_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( LayerRoughness_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            LayerRoughness_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&LayerRoughness_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/MesoCrystal.pypp.cpp b/Core/PythonAPI/src/MesoCrystal.pypp.cpp
index 04f1b96e8458ff33a55790d5e84b8934c8c0b8d8..79776054181c487b5761e561ad19d2420d93f67c 100644
--- a/Core/PythonAPI/src/MesoCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/MesoCrystal.pypp.cpp
@@ -28,11 +28,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -40,35 +40,59 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::IMaterial const * getAmbientMaterial(  ) const  {
+        if( bp::override func_getAmbientMaterial = this->get_override( "getAmbientMaterial" ) )
+            return func_getAmbientMaterial(  );
+        else
+            return this->Particle::getAmbientMaterial(  );
+    }
+    
+    
+    ::IMaterial const * default_getAmbientMaterial(  ) const  {
+        return Particle::getAmbientMaterial( );
+    }
+
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -76,11 +100,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -88,11 +112,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Particle::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Particle::getMaterial( );
     }
@@ -100,11 +124,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Particle::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Particle::getRefractiveIndex( );
     }
@@ -112,11 +136,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual bool hasDistributedFormFactor(  ) const  {
         if( bp::override func_hasDistributedFormFactor = this->get_override( "hasDistributedFormFactor" ) )
             return func_hasDistributedFormFactor(  );
-        else{
+        else
             return this->Particle::hasDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_hasDistributedFormFactor(  ) const  {
         return Particle::hasDistributedFormFactor( );
     }
@@ -124,11 +148,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +160,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -164,26 +188,14 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,24 +203,24 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -241,6 +253,17 @@ void register_MesoCrystal_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&MesoCrystal_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( MesoCrystal_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            MesoCrystal_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&MesoCrystal_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -253,6 +276,18 @@ void register_MesoCrystal_class(){
                 , default_createParameterTree_function_type(&MesoCrystal_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::Particle::getAmbientMaterial
+        
+            typedef ::IMaterial const * ( ::Particle::*getAmbientMaterial_function_type )(  ) const;
+            typedef ::IMaterial const * ( MesoCrystal_wrapper::*default_getAmbientMaterial_function_type )(  ) const;
+            
+            MesoCrystal_exposer.def( 
+                "getAmbientMaterial"
+                , getAmbientMaterial_function_type(&::Particle::getAmbientMaterial)
+                , default_getAmbientMaterial_function_type(&MesoCrystal_wrapper::default_getAmbientMaterial)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ICompositeSample::getCompositeSample
         
@@ -343,18 +378,6 @@ void register_MesoCrystal_class(){
                 , default_registerParameter_function_type( &MesoCrystal_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( MesoCrystal_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            MesoCrystal_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&MesoCrystal_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -381,8 +404,8 @@ void register_MesoCrystal_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( MesoCrystal_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( MesoCrystal_wrapper::*default_size_function_type )(  ) const;
             
             MesoCrystal_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/MultiLayer.pypp.cpp b/Core/PythonAPI/src/MultiLayer.pypp.cpp
index 7d82856cdcfb79b1bf6719c5d53fc3e49cd71b62..de475b94a9ec200eb4e20bc3752d1be8b0d28c3f 100644
--- a/Core/PythonAPI/src/MultiLayer.pypp.cpp
+++ b/Core/PythonAPI/src/MultiLayer.pypp.cpp
@@ -28,11 +28,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual ::MultiLayer * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->MultiLayer::clone(  );
-        }
     }
     
+    
     ::MultiLayer * default_clone(  ) const  {
         return MultiLayer::clone( );
     }
@@ -40,11 +40,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual ::MultiLayer * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->MultiLayer::cloneInvertB(  );
-        }
     }
     
+    
     ::MultiLayer * default_cloneInvertB(  ) const  {
         return MultiLayer::cloneInvertB( );
     }
@@ -52,11 +52,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,23 +64,35 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -88,11 +100,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -100,11 +112,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -112,11 +124,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -124,11 +136,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -152,26 +164,14 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -179,24 +179,24 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -272,7 +272,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getCrossCorrSpectralFun
         
-            typedef double ( ::MultiLayer::*getCrossCorrSpectralFun_function_type )( ::kvector_t const &,::size_t,::size_t ) const;
+            typedef double ( ::MultiLayer::*getCrossCorrSpectralFun_function_type )( ::kvector_t const &,::std::size_t,::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getCrossCorrSpectralFun"
@@ -282,7 +282,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayer
         
-            typedef ::Layer const * ( ::MultiLayer::*getLayer_function_type )( ::size_t ) const;
+            typedef ::Layer const * ( ::MultiLayer::*getLayer_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayer"
@@ -293,7 +293,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerBottomInterface
         
-            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerBottomInterface_function_type )( ::size_t ) const;
+            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerBottomInterface_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerBottomInterface"
@@ -304,7 +304,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerBottomZ
         
-            typedef double ( ::MultiLayer::*getLayerBottomZ_function_type )( ::size_t ) const;
+            typedef double ( ::MultiLayer::*getLayerBottomZ_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerBottomZ"
@@ -314,7 +314,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerInterface
         
-            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerInterface_function_type )( ::size_t ) const;
+            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerInterface_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerInterface"
@@ -325,7 +325,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerThickness
         
-            typedef double ( ::MultiLayer::*getLayerThickness_function_type )( ::size_t ) const;
+            typedef double ( ::MultiLayer::*getLayerThickness_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerThickness"
@@ -335,7 +335,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerTopInterface
         
-            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerTopInterface_function_type )( ::size_t ) const;
+            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerTopInterface_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerTopInterface"
@@ -346,7 +346,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getNumberOfInterfaces
         
-            typedef ::size_t ( ::MultiLayer::*getNumberOfInterfaces_function_type )(  ) const;
+            typedef ::std::size_t ( ::MultiLayer::*getNumberOfInterfaces_function_type )(  ) const;
             
             MultiLayer_exposer.def( 
                 "getNumberOfInterfaces"
@@ -355,7 +355,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getNumberOfLayers
         
-            typedef ::size_t ( ::MultiLayer::*getNumberOfLayers_function_type )(  ) const;
+            typedef ::std::size_t ( ::MultiLayer::*getNumberOfLayers_function_type )(  ) const;
             
             MultiLayer_exposer.def( 
                 "getNumberOfLayers"
@@ -374,7 +374,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::setLayerThickness
         
-            typedef void ( ::MultiLayer::*setLayerThickness_function_type )( ::size_t,double ) ;
+            typedef void ( ::MultiLayer::*setLayerThickness_function_type )( ::std::size_t,double ) ;
             
             MultiLayer_exposer.def( 
                 "setLayerThickness"
@@ -403,6 +403,17 @@ void register_MultiLayer_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&MultiLayer_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( MultiLayer_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            MultiLayer_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&MultiLayer_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -471,18 +482,6 @@ void register_MultiLayer_class(){
                 , default_registerParameter_function_type( &MultiLayer_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( MultiLayer_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            MultiLayer_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&MultiLayer_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -509,8 +508,8 @@ void register_MultiLayer_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( MultiLayer_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( MultiLayer_wrapper::*default_size_function_type )(  ) const;
             
             MultiLayer_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/Particle.pypp.cpp b/Core/PythonAPI/src/Particle.pypp.cpp
index f05b745c78995a3f7ca3521cc786ef048a18aa8d..27bf23b843c7a17e2278ea9b865f7c324021c903 100644
--- a/Core/PythonAPI/src/Particle.pypp.cpp
+++ b/Core/PythonAPI/src/Particle.pypp.cpp
@@ -42,11 +42,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::Particle * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Particle::clone(  );
-        }
     }
     
+    
     ::Particle * default_clone(  ) const  {
         return Particle::clone( );
     }
@@ -54,11 +54,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::Particle * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->Particle::cloneInvertB(  );
-        }
     }
     
+    
     ::Particle * default_cloneInvertB(  ) const  {
         return Particle::cloneInvertB( );
     }
@@ -66,23 +66,35 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::IFormFactor * createFormFactor( ::complex_t wavevector_scattering_factor ) const  {
         if( bp::override func_createFormFactor = this->get_override( "createFormFactor" ) )
             return func_createFormFactor( wavevector_scattering_factor );
-        else{
+        else
             return this->Particle::createFormFactor( wavevector_scattering_factor );
-        }
     }
     
+    
     ::IFormFactor * default_createFormFactor( ::complex_t wavevector_scattering_factor ) const  {
         return Particle::createFormFactor( wavevector_scattering_factor );
     }
 
+    virtual ::IMaterial const * getAmbientMaterial(  ) const  {
+        if( bp::override func_getAmbientMaterial = this->get_override( "getAmbientMaterial" ) )
+            return func_getAmbientMaterial(  );
+        else
+            return this->Particle::getAmbientMaterial(  );
+    }
+    
+    
+    ::IMaterial const * default_getAmbientMaterial(  ) const  {
+        return Particle::getAmbientMaterial( );
+    }
+
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Particle::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Particle::getMaterial( );
     }
@@ -90,11 +102,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Particle::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Particle::getRefractiveIndex( );
     }
@@ -102,11 +114,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::IFormFactor const * getSimpleFormFactor(  ) const  {
         if( bp::override func_getSimpleFormFactor = this->get_override( "getSimpleFormFactor" ) )
             return func_getSimpleFormFactor(  );
-        else{
+        else
             return this->Particle::getSimpleFormFactor(  );
-        }
     }
     
+    
     ::IFormFactor const * default_getSimpleFormFactor(  ) const  {
         return Particle::getSimpleFormFactor( );
     }
@@ -114,11 +126,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual bool hasDistributedFormFactor(  ) const  {
         if( bp::override func_hasDistributedFormFactor = this->get_override( "hasDistributedFormFactor" ) )
             return func_hasDistributedFormFactor(  );
-        else{
+        else
             return this->Particle::hasDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_hasDistributedFormFactor(  ) const  {
         return Particle::hasDistributedFormFactor( );
     }
@@ -126,11 +138,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void setTransform( ::Geometry::ITransform3D const & transform ) {
         if( bp::override func_setTransform = this->get_override( "setTransform" ) )
             func_setTransform( boost::ref(transform) );
-        else{
+        else
             this->Particle::setTransform( boost::ref(transform) );
-        }
     }
     
+    
     void default_setTransform( ::Geometry::ITransform3D const & transform ) {
         Particle::setTransform( boost::ref(transform) );
     }
@@ -138,11 +150,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -150,23 +162,35 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -174,11 +198,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -186,11 +210,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -198,11 +222,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -210,11 +234,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -238,26 +262,14 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -265,24 +277,24 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -332,6 +344,18 @@ void register_Particle_class(){
                 , ( bp::arg("wavevector_scattering_factor") )
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::Particle::getAmbientMaterial
+        
+            typedef ::IMaterial const * ( ::Particle::*getAmbientMaterial_function_type )(  ) const;
+            typedef ::IMaterial const * ( Particle_wrapper::*default_getAmbientMaterial_function_type )(  ) const;
+            
+            Particle_exposer.def( 
+                "getAmbientMaterial"
+                , getAmbientMaterial_function_type(&::Particle::getAmbientMaterial)
+                , default_getAmbientMaterial_function_type(&Particle_wrapper::default_getAmbientMaterial)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::Particle::getMaterial
         
@@ -422,6 +446,17 @@ void register_Particle_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&Particle_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( Particle_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            Particle_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&Particle_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -490,18 +525,6 @@ void register_Particle_class(){
                 , default_registerParameter_function_type( &Particle_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( Particle_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            Particle_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&Particle_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -528,8 +551,8 @@ void register_Particle_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( Particle_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( Particle_wrapper::*default_size_function_type )(  ) const;
             
             Particle_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp b/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
index 7bd494ade7c60cfa316c2f34773ce52708f92163..96a971bd2566a71085f1ede52c38104c94751cfc 100644
--- a/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
@@ -28,11 +28,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -40,35 +40,59 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::IMaterial const * getAmbientMaterial(  ) const  {
+        if( bp::override func_getAmbientMaterial = this->get_override( "getAmbientMaterial" ) )
+            return func_getAmbientMaterial(  );
+        else
+            return this->Particle::getAmbientMaterial(  );
+    }
+    
+    
+    ::IMaterial const * default_getAmbientMaterial(  ) const  {
+        return Particle::getAmbientMaterial( );
+    }
+
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -76,11 +100,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -88,11 +112,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Particle::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Particle::getMaterial( );
     }
@@ -100,11 +124,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Particle::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Particle::getRefractiveIndex( );
     }
@@ -112,11 +136,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual bool hasDistributedFormFactor(  ) const  {
         if( bp::override func_hasDistributedFormFactor = this->get_override( "hasDistributedFormFactor" ) )
             return func_hasDistributedFormFactor(  );
-        else{
+        else
             return this->Particle::hasDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_hasDistributedFormFactor(  ) const  {
         return Particle::hasDistributedFormFactor( );
     }
@@ -124,11 +148,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +160,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -164,26 +188,14 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +203,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -203,24 +215,24 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void setTransform( ::Geometry::ITransform3D const & transform ) {
         if( bp::override func_setTransform = this->get_override( "setTransform" ) )
             func_setTransform( boost::ref(transform) );
-        else{
+        else
             this->Particle::setTransform( boost::ref(transform) );
-        }
     }
     
+    
     void default_setTransform( ::Geometry::ITransform3D const & transform ) {
         Particle::setTransform( boost::ref(transform) );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -253,6 +265,17 @@ void register_ParticleCoreShell_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&ParticleCoreShell_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( ParticleCoreShell_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            ParticleCoreShell_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&ParticleCoreShell_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -265,6 +288,18 @@ void register_ParticleCoreShell_class(){
                 , default_createParameterTree_function_type(&ParticleCoreShell_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::Particle::getAmbientMaterial
+        
+            typedef ::IMaterial const * ( ::Particle::*getAmbientMaterial_function_type )(  ) const;
+            typedef ::IMaterial const * ( ParticleCoreShell_wrapper::*default_getAmbientMaterial_function_type )(  ) const;
+            
+            ParticleCoreShell_exposer.def( 
+                "getAmbientMaterial"
+                , getAmbientMaterial_function_type(&::Particle::getAmbientMaterial)
+                , default_getAmbientMaterial_function_type(&ParticleCoreShell_wrapper::default_getAmbientMaterial)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::ICompositeSample::getCompositeSample
         
@@ -355,18 +390,6 @@ void register_ParticleCoreShell_class(){
                 , default_registerParameter_function_type( &ParticleCoreShell_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( ParticleCoreShell_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            ParticleCoreShell_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&ParticleCoreShell_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -405,8 +428,8 @@ void register_ParticleCoreShell_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( ParticleCoreShell_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleCoreShell_wrapper::*default_size_function_type )(  ) const;
             
             ParticleCoreShell_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/ParticleDecoration.pypp.cpp b/Core/PythonAPI/src/ParticleDecoration.pypp.cpp
index e56aa80e7a50ef0480af6c4dd1312d8a59e97bb1..40de3ade607d8950551fffad7947300a8da740f1 100644
--- a/Core/PythonAPI/src/ParticleDecoration.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleDecoration.pypp.cpp
@@ -28,11 +28,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual ::ParticleDecoration * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ParticleDecoration::clone(  );
-        }
     }
     
+    
     ::ParticleDecoration * default_clone(  ) const  {
         return ParticleDecoration::clone( );
     }
@@ -40,83 +40,83 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual ::ParticleDecoration * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ParticleDecoration::cloneInvertB(  );
-        }
     }
     
+    
     ::ParticleDecoration * default_cloneInvertB(  ) const  {
         return ParticleDecoration::cloneInvertB( );
     }
 
-    virtual double getAbundanceFractionOfParticle( ::size_t index ) const  {
+    virtual double getAbundanceFractionOfParticle( ::std::size_t index ) const  {
         if( bp::override func_getAbundanceFractionOfParticle = this->get_override( "getAbundanceFractionOfParticle" ) )
             return func_getAbundanceFractionOfParticle( index );
-        else{
+        else
             return this->ParticleDecoration::getAbundanceFractionOfParticle( index );
-        }
     }
     
-    double default_getAbundanceFractionOfParticle( ::size_t index ) const  {
+    
+    double default_getAbundanceFractionOfParticle( ::std::size_t index ) const  {
         return ParticleDecoration::getAbundanceFractionOfParticle( index );
     }
 
     virtual ::SafePointerVector< IInterferenceFunction > getInterferenceFunctions(  ) const  {
         if( bp::override func_getInterferenceFunctions = this->get_override( "getInterferenceFunctions" ) )
             return func_getInterferenceFunctions(  );
-        else{
+        else
             return this->ParticleDecoration::getInterferenceFunctions(  );
-        }
     }
     
+    
     ::SafePointerVector< IInterferenceFunction > default_getInterferenceFunctions(  ) const  {
         return ParticleDecoration::getInterferenceFunctions( );
     }
 
-    virtual ::size_t getNumberOfInterferenceFunctions(  ) const  {
+    virtual ::std::size_t getNumberOfInterferenceFunctions(  ) const  {
         if( bp::override func_getNumberOfInterferenceFunctions = this->get_override( "getNumberOfInterferenceFunctions" ) )
             return func_getNumberOfInterferenceFunctions(  );
-        else{
+        else
             return this->ParticleDecoration::getNumberOfInterferenceFunctions(  );
-        }
     }
     
-    ::size_t default_getNumberOfInterferenceFunctions(  ) const  {
+    
+    ::std::size_t default_getNumberOfInterferenceFunctions(  ) const  {
         return ParticleDecoration::getNumberOfInterferenceFunctions( );
     }
 
-    virtual ::size_t getNumberOfParticles(  ) const  {
+    virtual ::std::size_t getNumberOfParticles(  ) const  {
         if( bp::override func_getNumberOfParticles = this->get_override( "getNumberOfParticles" ) )
             return func_getNumberOfParticles(  );
-        else{
+        else
             return this->ParticleDecoration::getNumberOfParticles(  );
-        }
     }
     
-    ::size_t default_getNumberOfParticles(  ) const  {
+    
+    ::std::size_t default_getNumberOfParticles(  ) const  {
         return ParticleDecoration::getNumberOfParticles( );
     }
 
-    virtual ::ParticleInfo const * getParticleInfo( ::size_t index ) const  {
+    virtual ::ParticleInfo const * getParticleInfo( ::std::size_t index ) const  {
         if( bp::override func_getParticleInfo = this->get_override( "getParticleInfo" ) )
             return func_getParticleInfo( index );
-        else{
+        else
             return this->ParticleDecoration::getParticleInfo( index );
-        }
     }
     
-    ::ParticleInfo const * default_getParticleInfo( ::size_t index ) const  {
+    
+    ::ParticleInfo const * default_getParticleInfo( ::std::size_t index ) const  {
         return ParticleDecoration::getParticleInfo( index );
     }
 
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -124,23 +124,35 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,11 +160,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -160,11 +172,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -172,11 +184,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -184,11 +196,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -212,26 +224,14 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -239,24 +239,24 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -334,8 +334,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getAbundanceFractionOfParticle
         
-            typedef double ( ::ParticleDecoration::*getAbundanceFractionOfParticle_function_type )( ::size_t ) const;
-            typedef double ( ParticleDecoration_wrapper::*default_getAbundanceFractionOfParticle_function_type )( ::size_t ) const;
+            typedef double ( ::ParticleDecoration::*getAbundanceFractionOfParticle_function_type )( ::std::size_t ) const;
+            typedef double ( ParticleDecoration_wrapper::*default_getAbundanceFractionOfParticle_function_type )( ::std::size_t ) const;
             
             ParticleDecoration_exposer.def( 
                 "getAbundanceFractionOfParticle"
@@ -346,7 +346,7 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getInterferenceFunction
         
-            typedef ::IInterferenceFunction const * ( ::ParticleDecoration::*getInterferenceFunction_function_type )( ::size_t ) const;
+            typedef ::IInterferenceFunction const * ( ::ParticleDecoration::*getInterferenceFunction_function_type )( ::std::size_t ) const;
             
             ParticleDecoration_exposer.def( 
                 "getInterferenceFunction"
@@ -368,8 +368,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getNumberOfInterferenceFunctions
         
-            typedef ::size_t ( ::ParticleDecoration::*getNumberOfInterferenceFunctions_function_type )(  ) const;
-            typedef ::size_t ( ParticleDecoration_wrapper::*default_getNumberOfInterferenceFunctions_function_type )(  ) const;
+            typedef ::std::size_t ( ::ParticleDecoration::*getNumberOfInterferenceFunctions_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleDecoration_wrapper::*default_getNumberOfInterferenceFunctions_function_type )(  ) const;
             
             ParticleDecoration_exposer.def( 
                 "getNumberOfInterferenceFunctions"
@@ -379,8 +379,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getNumberOfParticles
         
-            typedef ::size_t ( ::ParticleDecoration::*getNumberOfParticles_function_type )(  ) const;
-            typedef ::size_t ( ParticleDecoration_wrapper::*default_getNumberOfParticles_function_type )(  ) const;
+            typedef ::std::size_t ( ::ParticleDecoration::*getNumberOfParticles_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleDecoration_wrapper::*default_getNumberOfParticles_function_type )(  ) const;
             
             ParticleDecoration_exposer.def( 
                 "getNumberOfParticles"
@@ -390,8 +390,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getParticleInfo
         
-            typedef ::ParticleInfo const * ( ::ParticleDecoration::*getParticleInfo_function_type )( ::size_t ) const;
-            typedef ::ParticleInfo const * ( ParticleDecoration_wrapper::*default_getParticleInfo_function_type )( ::size_t ) const;
+            typedef ::ParticleInfo const * ( ::ParticleDecoration::*getParticleInfo_function_type )( ::std::size_t ) const;
+            typedef ::ParticleInfo const * ( ParticleDecoration_wrapper::*default_getParticleInfo_function_type )( ::std::size_t ) const;
             
             ParticleDecoration_exposer.def( 
                 "getParticleInfo"
@@ -422,6 +422,17 @@ void register_ParticleDecoration_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&ParticleDecoration_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( ParticleDecoration_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            ParticleDecoration_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&ParticleDecoration_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -490,18 +501,6 @@ void register_ParticleDecoration_class(){
                 , default_registerParameter_function_type( &ParticleDecoration_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( ParticleDecoration_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            ParticleDecoration_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&ParticleDecoration_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -528,8 +527,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( ParticleDecoration_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleDecoration_wrapper::*default_size_function_type )(  ) const;
             
             ParticleDecoration_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/ParticleInfo.pypp.cpp b/Core/PythonAPI/src/ParticleInfo.pypp.cpp
index 0f715b22caba0ab6cc0e66424f921d35b3db6f6a..bea496bcbe540faf6015e251ab915be990551566 100644
--- a/Core/PythonAPI/src/ParticleInfo.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleInfo.pypp.cpp
@@ -28,11 +28,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual ::ParticleInfo * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ParticleInfo::clone(  );
-        }
     }
     
+    
     ::ParticleInfo * default_clone(  ) const  {
         return ParticleInfo::clone( );
     }
@@ -40,11 +40,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual ::ParticleInfo * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ParticleInfo::cloneInvertB(  );
-        }
     }
     
+    
     ::ParticleInfo * default_cloneInvertB(  ) const  {
         return ParticleInfo::cloneInvertB( );
     }
@@ -52,11 +52,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,23 +64,35 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -88,11 +100,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -100,11 +112,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -112,11 +124,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -124,11 +136,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -152,26 +164,14 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -179,24 +179,24 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -301,6 +301,17 @@ void register_ParticleInfo_class(){
                 , clearParameterPool_function_type(&::IParameterized::clearParameterPool)
                 , default_clearParameterPool_function_type(&ParticleInfo_wrapper::default_clearParameterPool) );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( ParticleInfo_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            ParticleInfo_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&ParticleInfo_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -369,18 +380,6 @@ void register_ParticleInfo_class(){
                 , default_registerParameter_function_type( &ParticleInfo_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( ParticleInfo_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            ParticleInfo_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&ParticleInfo_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -407,8 +406,8 @@ void register_ParticleInfo_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( ParticleInfo_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleInfo_wrapper::*default_size_function_type )(  ) const;
             
             ParticleInfo_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp b/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp
index 7330e9d4fcc9153ffa86623d0084bba347fe2b8c..77d913740e9fc8a4e07155c5ba493d033c2ae658 100644
--- a/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp
+++ b/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp
@@ -28,11 +28,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual ::PositionParticleInfo * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->PositionParticleInfo::clone(  );
-        }
     }
     
+    
     ::PositionParticleInfo * default_clone(  ) const  {
         return PositionParticleInfo::clone( );
     }
@@ -40,11 +40,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -52,11 +52,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -64,23 +64,35 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual ::ParticleInfo * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ParticleInfo::cloneInvertB(  );
-        }
     }
     
+    
     ::ParticleInfo * default_cloneInvertB(  ) const  {
         return ParticleInfo::cloneInvertB( );
     }
 
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else
+            return this->ISample::containsMagneticMaterial(  );
+    }
+    
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -88,11 +100,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual ::ICompositeSample * getCompositeSample(  ) {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample * default_getCompositeSample(  ) {
         return ICompositeSample::getCompositeSample( );
     }
@@ -100,11 +112,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ICompositeSample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ICompositeSample::getCompositeSample( );
     }
@@ -112,11 +124,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -124,11 +136,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -152,26 +164,14 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -179,24 +179,24 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
-    virtual ::size_t size(  ) const  {
+    virtual ::std::size_t size(  ) const  {
         if( bp::override func_size = this->get_override( "size" ) )
             return func_size(  );
-        else{
+        else
             return this->ICompositeSample::size(  );
-        }
     }
     
-    ::size_t default_size(  ) const  {
+    
+    ::std::size_t default_size(  ) const  {
         return ICompositeSample::size( );
     }
 
@@ -282,6 +282,17 @@ void register_PositionParticleInfo_class(){
                 , default_cloneInvertB_function_type(&PositionParticleInfo_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type )(  ) const;
+            typedef bool ( PositionParticleInfo_wrapper::*default_containsMagneticMaterial_function_type )(  ) const;
+            
+            PositionParticleInfo_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&PositionParticleInfo_wrapper::default_containsMagneticMaterial) );
+        
         }
         { //::IParameterized::createParameterTree
         
@@ -350,18 +361,6 @@ void register_PositionParticleInfo_class(){
                 , default_registerParameter_function_type( &PositionParticleInfo_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( PositionParticleInfo_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            PositionParticleInfo_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&PositionParticleInfo_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
@@ -388,8 +387,8 @@ void register_PositionParticleInfo_class(){
         }
         { //::ICompositeSample::size
         
-            typedef ::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
-            typedef ::size_t ( PositionParticleInfo_wrapper::*default_size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( PositionParticleInfo_wrapper::*default_size_function_type )(  ) const;
             
             PositionParticleInfo_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp b/Core/PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp
index 2b60275edbe18de579def50a3085769c8da7b354..ee1d7a797f57d200e23305cd031ec408cb794191 100644
--- a/Core/PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp
+++ b/Core/PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp
@@ -28,11 +28,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual ::ResolutionFunction2DSimple * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ResolutionFunction2DSimple::clone(  );
-        }
     }
     
+    
     ::ResolutionFunction2DSimple * default_clone(  ) const  {
         return ResolutionFunction2DSimple::clone( );
     }
@@ -40,11 +40,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual double evaluateCDF( double x, double y ) const  {
         if( bp::override func_evaluateCDF = this->get_override( "evaluateCDF" ) )
             return func_evaluateCDF( x, y );
-        else{
+        else
             return this->ResolutionFunction2DSimple::evaluateCDF( x, y );
-        }
     }
     
+    
     double default_evaluateCDF( double x, double y ) const  {
         return ResolutionFunction2DSimple::evaluateCDF( x, y );
     }
@@ -52,11 +52,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,11 +76,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -88,11 +88,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -116,26 +116,14 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -143,11 +131,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -238,18 +226,6 @@ void register_ResolutionFunction2DSimple_class(){
                 , default_registerParameter_function_type( &ResolutionFunction2DSimple_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( ResolutionFunction2DSimple_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            ResolutionFunction2DSimple_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&ResolutionFunction2DSimple_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/PythonAPI/src/Simulation.pypp.cpp b/Core/PythonAPI/src/Simulation.pypp.cpp
index 841a35e2ca8b5e80662bd2a4a282a2777c4db282..a85b6850cdbc1b7f9beac6a583a7938a9b1960d0 100644
--- a/Core/PythonAPI/src/Simulation.pypp.cpp
+++ b/Core/PythonAPI/src/Simulation.pypp.cpp
@@ -28,11 +28,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual ::Simulation * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Simulation::clone(  );
-        }
     }
     
+    
     ::Simulation * default_clone(  ) const  {
         return Simulation::clone( );
     }
@@ -40,11 +40,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -52,11 +52,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -64,11 +64,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -76,11 +76,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -104,26 +104,14 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
         }
     }
 
-    virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
-            return func_setMatchedParametersValue( wildcards, value );
-        else{
-            return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
-    }
-    
-    int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
-        return IParameterized::setMatchedParametersValue( wildcards, value );
-    }
-
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -131,11 +119,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -249,7 +237,7 @@ void register_Simulation_class(){
         }
         { //::Simulation::runSimulationElement
         
-            typedef void ( ::Simulation::*runSimulationElement_function_type )( ::size_t ) ;
+            typedef void ( ::Simulation::*runSimulationElement_function_type )( ::std::size_t ) ;
             
             Simulation_exposer.def( 
                 "runSimulationElement"
@@ -289,7 +277,7 @@ void register_Simulation_class(){
         }
         { //::Simulation::setDetectorParameters
         
-            typedef void ( ::Simulation::*setDetectorParameters_function_type )( ::size_t,double,double,::size_t,double,double,bool ) ;
+            typedef void ( ::Simulation::*setDetectorParameters_function_type )( ::std::size_t,double,double,::std::size_t,double,double,bool ) ;
             
             Simulation_exposer.def( 
                 "setDetectorParameters"
@@ -430,18 +418,6 @@ void register_Simulation_class(){
                 , default_registerParameter_function_type( &Simulation_wrapper::default_registerParameter )
                 , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) );
         
-        }
-        { //::IParameterized::setMatchedParametersValue
-        
-            typedef int ( ::IParameterized::*setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            typedef int ( Simulation_wrapper::*default_setMatchedParametersValue_function_type )( ::std::string const &,double ) ;
-            
-            Simulation_exposer.def( 
-                "setMatchedParametersValue"
-                , setMatchedParametersValue_function_type(&::IParameterized::setMatchedParametersValue)
-                , default_setMatchedParametersValue_function_type(&Simulation_wrapper::default_setMatchedParametersValue)
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
-        
         }
         { //::IParameterized::setParameterValue
         
diff --git a/Core/Samples/inc/Crystal.h b/Core/Samples/inc/Crystal.h
index c153e38ee6f52576ad17ac1cef5f4ea4bf633875..f842e5160443fabe67b203da8faa0054514af771 100644
--- a/Core/Samples/inc/Crystal.h
+++ b/Core/Samples/inc/Crystal.h
@@ -35,7 +35,7 @@ public:
     virtual Crystal *cloneInvertB() const;
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const { p_visitor->visit(this); }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     virtual void setAmbientMaterial(const IMaterial *p_ambient_material)
     { mp_lattice_basis->setAmbientMaterial(p_ambient_material); }
diff --git a/Core/Samples/inc/DiffuseParticleInfo.h b/Core/Samples/inc/DiffuseParticleInfo.h
index de08661b78cd761701606e977b8f67d269b53ff1..e3aaca19c65f4911fd1ebd59c84e09dc0ffbafaa 100644
--- a/Core/Samples/inc/DiffuseParticleInfo.h
+++ b/Core/Samples/inc/DiffuseParticleInfo.h
@@ -33,7 +33,7 @@ public:
     virtual ~DiffuseParticleInfo() {}
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const { p_visitor->visit(this); }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     //! scale abundance
     void scaleAbundance(double factor) { m_abundance *= factor; }
diff --git a/Core/Samples/inc/IClusteredParticles.h b/Core/Samples/inc/IClusteredParticles.h
index 2b73a4acd155f3727fc42e087d2663d6534d68e5..af2bb55f135fa702c19dacfb7193b3f653ceb3cb 100644
--- a/Core/Samples/inc/IClusteredParticles.h
+++ b/Core/Samples/inc/IClusteredParticles.h
@@ -29,19 +29,17 @@ class BA_CORE_API_ IClusteredParticles : public ICompositeSample
 public:
     IClusteredParticles() {}
     virtual ~IClusteredParticles() {}
+
     //! clone method to allow for polymorphic copying
-    virtual IClusteredParticles *clone() const {
-        throw NotImplementedException("IClusteredParticles::clone() -> Error! "
-                "Not implemented exception");
-    }
+    virtual IClusteredParticles *clone() const  = 0;
 
     //! Returns a clone with inverted magnetic fields
-    virtual IClusteredParticles *cloneInvertB() const {
-        throw NotImplementedException("IClusteredParticles::cloneInvertB() -> "
-                "Error! Not implemented exception");
-    }
+    virtual IClusteredParticles *cloneInvertB() const = 0;
+
+    //! calls the ISampleVisitor's visit method
+    virtual void accept(ISampleVisitor *visitor) const = 0;
 
-    virtual void setAmbientMaterial(const IMaterial *p_ambient_material)=0;
+    virtual void setAmbientMaterial(const IMaterial *p_ambient_material) = 0;
 
     //! @brief create a total form factor for the mesocrystal with a specific
     //! shape and content
diff --git a/Core/Samples/inc/ICompositeIterator.h b/Core/Samples/inc/ICompositeIterator.h
index 933f4ac820065d4899f38408f244d6e8bbe0993d..503527b92fddeee33f67a5378819cd42dd441ab3 100644
--- a/Core/Samples/inc/ICompositeIterator.h
+++ b/Core/Samples/inc/ICompositeIterator.h
@@ -28,9 +28,9 @@
 class MementoState
 {
 public:
-    typedef std::list<ISample*>::iterator iterator_t;
+    typedef std::list<ISample*>::const_iterator const_iterator_t;
 
-    MementoState(iterator_t itor, iterator_t end_itor)
+    MementoState(const_iterator_t itor, const_iterator_t end_itor)
         : m_itor( itor ), m_end_itor( end_itor ) {}
 
     MementoState& operator=(const MementoState& other)
@@ -44,7 +44,7 @@ public:
 
     virtual ~MementoState() {}
 
-    iterator_t& get_itor() { return m_itor; }
+    const_iterator_t& get_itor() { return m_itor; }
     bool is_end() const { return m_itor == m_end_itor; }
     void next() { m_itor++; }
 
@@ -52,8 +52,8 @@ public:
     { return  (o << "memento state " <<& m.m_itor << " " <<& m.m_end_itor); }
 
 protected:
-    iterator_t m_itor;
-    iterator_t m_end_itor;
+    const_iterator_t m_itor;
+    const_iterator_t m_end_itor;
 
 private:
     MementoState();
@@ -73,7 +73,7 @@ public:
     MementoState& get_state() { return m_state_stack.top(); }
     bool empty() const { return m_state_stack.empty(); }
     void reset() { while(!m_state_stack.empty()) m_state_stack.pop(); }
-    MementoState::iterator_t& get_current_itor()
+    MementoState::const_iterator_t& get_current_itor()
     { return m_state_stack.top().get_itor(); }
     void next() { m_state_stack.top().next(); }
     size_t size() { return m_state_stack.size(); }
@@ -95,7 +95,7 @@ protected:
 class ICompositeIterator
 {
 public:
-    ICompositeIterator(ICompositeSample *root) : m_root(root), m_done(false) {}
+    ICompositeIterator(const ICompositeSample *root) : m_root(root), m_done(false) {}
     virtual ~ICompositeIterator() {}
 
     void first();
@@ -105,7 +105,7 @@ public:
     size_t get_level() { return m_memento_itor.size(); }
 protected:
     MementoIterator m_memento_itor;
-    ICompositeSample* m_root;
+    const ICompositeSample* m_root;
     bool m_done;
 };
 
diff --git a/Core/Samples/inc/ICompositeSample.h b/Core/Samples/inc/ICompositeSample.h
index b6e7f7cee045b5a2c8f4bccf2d5053ae15df3994..289bea220f33240b7d6e105828abf4a19ea41f7a 100644
--- a/Core/Samples/inc/ICompositeSample.h
+++ b/Core/Samples/inc/ICompositeSample.h
@@ -32,6 +32,9 @@ public:
 
     ICompositeSample *clone() const = 0;
 
+    //! calls the ISampleVisitor's visit method
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
+
     //! to confirm compound nature of given class
     virtual ICompositeSample *getCompositeSample() { return this; }
     virtual const ICompositeSample *getCompositeSample() const { return this; }
@@ -58,7 +61,7 @@ public:
     virtual size_t size() const { return m_samples.size(); }
 
     //! Creates general iterator to walk through tree of composite children.
-    class ICompositeIterator createIterator();
+    class ICompositeIterator createIterator() const;
 
 private:
     //! List of registered children.
diff --git a/Core/Samples/inc/IDecoration.h b/Core/Samples/inc/IDecoration.h
index 1eada6501ce984db4db9b97f8c5bc04222968356..0fcfdd1163062a9cb618072387a263af2712ef7e 100644
--- a/Core/Samples/inc/IDecoration.h
+++ b/Core/Samples/inc/IDecoration.h
@@ -34,6 +34,9 @@ public:
 
     virtual IDecoration *clone() const=0;
 
+    //! calls the ISampleVisitor's visit method
+    virtual void accept(ISampleVisitor *visitor) const=0;
+
     //! Returns a clone with inverted magnetic fields
     virtual IDecoration *cloneInvertB() const=0;
 
diff --git a/Core/Samples/inc/IInterferenceFunction.h b/Core/Samples/inc/IInterferenceFunction.h
index abf94eafd820264a986c1089ad165060fa4a1cfa..34c8a87f31a5ddaadf527bd2c52e39c52dc2566a 100644
--- a/Core/Samples/inc/IInterferenceFunction.h
+++ b/Core/Samples/inc/IInterferenceFunction.h
@@ -32,7 +32,7 @@ public:
     virtual IInterferenceFunction *clone() const=0;
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const { p_visitor->visit(this); }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     //! Retrieves the size-distance coupling constant (default 0.0)
     virtual double getKappa() const { return 0.0; }
diff --git a/Core/Samples/inc/IRoughness.h b/Core/Samples/inc/IRoughness.h
index 8fde31aa6a9eea770ca8d382a1cfd335078965fb..16f437744bc1b5852f48c0a7cd102c3f84755443 100644
--- a/Core/Samples/inc/IRoughness.h
+++ b/Core/Samples/inc/IRoughness.h
@@ -25,12 +25,7 @@ class BA_CORE_API_ IRoughness : public ISample
 public:
     IRoughness() {}
     virtual ~IRoughness() {}
-//    virtual IRoughness *clone() const
-//    {
-//        throw NotImplementedException(
-//                "IRoughness::clone() -> Error! Not implemented.");
-//    }
-
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 };
 
 #endif // IROUGHNESS_H
diff --git a/Core/Samples/inc/ISample.h b/Core/Samples/inc/ISample.h
index 2c6be217469e1d4adb4417b0113ddb95649257c6..5c4c693388f9391c01fde25fd07d6bf7458e6224 100644
--- a/Core/Samples/inc/ISample.h
+++ b/Core/Samples/inc/ISample.h
@@ -19,7 +19,6 @@
 #include "IParameterized.h"
 #include "ICloneable.h"
 #include "ISampleVisitor.h"
-#include "ISampleHierarchicalVisitor.h"
 
 class ICompositeSample;
 class DWBASimulation;
@@ -33,9 +32,10 @@ public:
     virtual ~ISample() {}
 
     //! Returns pointer to "this", if it is composite sample (to overload).
+    virtual ICompositeSample *getCompositeSample() { return 0; }
     virtual const ICompositeSample *getCompositeSample() const { return 0; }
 
-    virtual ISample *clone() const;
+    virtual ISample *clone() const =0;
 
     //! Returns a clone with inverted magnetic fields
     virtual ISample *cloneInvertB() const;
@@ -57,7 +57,7 @@ public:
     friend std::ostream& operator<<(std::ostream& ostr, const ISample& m)
     { m.print(ostr); return ostr; }
 
-    bool containsMagneticMaterial() const;
+    virtual bool containsMagneticMaterial() const;
 
 protected:
     virtual void print(std::ostream& ostr) const;
diff --git a/Core/Samples/inc/ISampleHierarchicalVisitor.h b/Core/Samples/inc/ISampleHierarchicalVisitor.h
deleted file mode 100644
index 852a34c41139e180e80ea2a79b3410ba77ac2ad2..0000000000000000000000000000000000000000
--- a/Core/Samples/inc/ISampleHierarchicalVisitor.h
+++ /dev/null
@@ -1,191 +0,0 @@
-// ************************************************************************** //
-//
-//  BornAgain: simulate and fit scattering at grazing incidence
-//
-//! @file      Samples/inc/ISampleHierarchicalVisitor.h
-//! @brief     Defines interface class ISampleHierarchicalVisitor.
-//!
-//! @homepage  http://apps.jcns.fz-juelich.de/BornAgain
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2013
-//! @authors   Scientific Computing Group at MLZ Garching
-//! @authors   C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke
-//
-// ************************************************************************** //
-
-#ifndef ISAMPLEHIERARCHICALVISITOR_H
-#define ISAMPLEHIERARCHICALVISITOR_H
-
-#include "Exceptions.h"
-
-class ISample;
-// - the order according to the hierarchy as reported by IDE
-class ICompositeSample;
-// -
-class IClusteredParticles;
-class Crystal;
-// -
-class IDecoration;
-class ParticleDecoration;
-// -
-class Layer;
-// -
-class LayerInterface;
-// -
-class MultiLayer;
-// -
-class Particle;
-class LatticeBasis;
-class MesoCrystal;
-class ParticleCoreShell;
-// -
-class ParticleInfo;
-class DiffuseParticleInfo;
-class PositionParticleInfo;
-// -
-class IFormFactor;
-// -
-class FormFactorDWBAPol;
-class FormFactorDWBAPolConstZ;
-// -
-class FormFactorWeighted;
-// -
-class IFormFactorBorn;
-// -
-class FormFactorBox;
-class FormFactorCone;
-class FormFactorCrystal;
-class FormFactorCylinder;
-class FormFactorEllipsoid;
-class FormFactorFullSphere;
-class FormFactorFullSpheroid;
-class FormFactorGauss;
-class FormFactorHemiSpheroid;
-class FormFactorLorentz;
-class FormFactorParallelepiped;
-class FormFactorPrism3;
-class FormFactorPrism6;
-class FormFactorPyramid;
-class FormFactorSphere;
-class FormFactorSphereGaussianRadius;
-class FormFactorTetrahedron;
-class IFormFactorBornSeparable;
-// -
-class IFormFactorDecorator;
-// -
-class FormFactorDWBA;
-class FormFactorDWBAConstZ;
-class FormFactorDecoratorDebyeWaller;
-class FormFactorDecoratorFactor;
-class FormFactorDecoratorMaterial;
-class FormFactorDecoratorMultiPositionFactor;
-class FormFactorDecoratorPositionFactor;
-class FormFactorDecoratorTransformation;
-// -
-class IInterferenceFunction;
-class InterferenceFunction1DParaCrystal;
-class InterferenceFunction2DLattice;
-class InterferenceFunction2DParaCrystal;
-class InterferenceFunctionNone;
-// -
-class IRoughness;
-class LayerRoughness;
-
-
-class BA_CORE_API_ ISampleHierarchicalVisitor
-{
-public:
-    ISampleHierarchicalVisitor() : m_nlevel(0) {}
-    virtual ~ISampleHierarchicalVisitor(){}
-
-    // visiting methods (the order according to the hierarchy as reported by IDE)
-
-    virtual bool visit(const ISample *);
-
-    virtual bool visit(const ICompositeSample *);
-
-    virtual bool visit(const IClusteredParticles *);
-    virtual bool visit(const Crystal *);
-
-    virtual bool visit(const IDecoration *);
-    virtual bool visit(const ParticleDecoration *);
-
-    virtual bool visit(const Layer *);
-
-    virtual bool visit(const LayerInterface *);
-
-    virtual bool visit(const MultiLayer *);
-
-    virtual bool visit(const Particle *);
-    virtual bool visit(const LatticeBasis *);
-    virtual bool visit(const MesoCrystal *);
-    virtual bool visit(const ParticleCoreShell *);
-
-    virtual bool visit(const ParticleInfo *);
-    virtual bool visit(const DiffuseParticleInfo *);
-    virtual bool visit(const PositionParticleInfo *);
-
-    virtual bool visit(const IFormFactor *);
-
-    virtual bool visit(const FormFactorDWBAPol *);
-    virtual bool visit(const FormFactorDWBAPolConstZ *);
-
-    virtual bool visit(const FormFactorWeighted *);
-
-    virtual bool visit(const IFormFactorBorn *);
-
-    virtual bool visit(const FormFactorBox *);
-    virtual bool visit(const FormFactorCone *);
-    virtual bool visit(const FormFactorCrystal *);
-    virtual bool visit(const FormFactorCylinder *);
-    virtual bool visit(const FormFactorEllipsoid *);
-    virtual bool visit(const FormFactorFullSphere *);
-    virtual bool visit(const FormFactorFullSpheroid *);
-    virtual bool visit(const FormFactorGauss *);
-    virtual bool visit(const FormFactorHemiSpheroid *);
-    virtual bool visit(const FormFactorLorentz *);
-    virtual bool visit(const FormFactorParallelepiped *);
-    virtual bool visit(const FormFactorPrism3 *);
-    virtual bool visit(const FormFactorPrism6 *);
-    virtual bool visit(const FormFactorPyramid *);
-    virtual bool visit(const FormFactorSphere *);
-    virtual bool visit(const FormFactorSphereGaussianRadius *);
-    virtual bool visit(const FormFactorTetrahedron *);
-    virtual bool visit(const IFormFactorBornSeparable *);
-
-    virtual bool visit(const IFormFactorDecorator *);
-
-    virtual bool visit(const FormFactorDWBA *);
-    virtual bool visit(const FormFactorDWBAConstZ *);
-    virtual bool visit(const FormFactorDecoratorDebyeWaller *);
-    virtual bool visit(const FormFactorDecoratorFactor *);
-    virtual bool visit(const FormFactorDecoratorMaterial *);
-    virtual bool visit(const FormFactorDecoratorMultiPositionFactor *);
-    virtual bool visit(const FormFactorDecoratorPositionFactor *);
-    virtual bool visit(const FormFactorDecoratorTransformation *);
-
-    virtual bool visit(const IInterferenceFunction *);
-    virtual bool visit(const InterferenceFunction1DParaCrystal *);
-    virtual bool visit(const InterferenceFunction2DLattice *);
-    virtual bool visit(const InterferenceFunction2DParaCrystal *);
-    virtual bool visit(const InterferenceFunctionNone *);
-
-    virtual bool visit(const IRoughness *);
-    virtual bool visit(const LayerRoughness *);
-
-
-    // enter and leave methods
-    bool visitEnter(const ICompositeSample *);
-    bool visitLeave(const ICompositeSample *);
-
-    //! return current level of the visitor
-    int getLevel() const { return m_nlevel; }
-
-protected:
-    int m_nlevel;
-};
-
-
-
-#endif // ISAMPLEHIERARCHICALVISITOR_H
-
diff --git a/Core/Samples/inc/ISampleVisitor.h b/Core/Samples/inc/ISampleVisitor.h
index 16aa7dac7a9f49ed98c85a4912cb78b364ac72b6..88530f0ce5b96613351ef5f9dc3acbe1f1909449 100644
--- a/Core/Samples/inc/ISampleVisitor.h
+++ b/Core/Samples/inc/ISampleVisitor.h
@@ -19,111 +19,177 @@
 #include "Exceptions.h"
 
 class ISample;
-class MultiLayer;
+// - the order according to the hierarchy as reported by IDE
+class ICompositeSample;
+// -
+class IClusteredParticles;
+class Crystal;
+// -
+class IDecoration;
+class ParticleDecoration;
+// -
 class Layer;
+// -
 class LayerInterface;
-class ParticleDecoration;
-class ParticleInfo;
+// -
+class MultiLayer;
+// -
 class Particle;
-class ParticleCoreShell;
-class MesoCrystal;
-class Crystal;
 class LatticeBasis;
-class IClusteredParticles;
+class MesoCrystal;
+class ParticleCoreShell;
+// -
+class ParticleInfo;
+class DiffuseParticleInfo;
+class PositionParticleInfo;
+// -
 class IFormFactor;
-class IInterferenceFunction;
-class FormFactorFullSphere;
-class FormFactorPyramid;
+// -
+class FormFactorDWBAPol;
+class FormFactorDWBAPolConstZ;
+// -
+class FormFactorWeighted;
+// -
+class IFormFactorBorn;
+// -
+class FormFactorBox;
+class FormFactorCone;
+class FormFactorCone6;
+class FormFactorCrystal;
 class FormFactorCylinder;
+class FormFactorEllipsoid;
+class FormFactorFullSphere;
+class FormFactorFullSpheroid;
+class FormFactorGauss;
+class FormFactorHemiSpheroid;
+class FormFactorLorentz;
+class FormFactorParallelepiped;
 class FormFactorPrism3;
+class FormFactorPrism6;
+class FormFactorPyramid;
+class FormFactorSphere;
+class FormFactorSphereGaussianRadius;
+class FormFactorTetrahedron;
+class IFormFactorBornSeparable;
+// -
+class IFormFactorDecorator;
+// -
+class FormFactorDWBA;
+class FormFactorDWBAConstZ;
+class FormFactorDecoratorDebyeWaller;
+class FormFactorDecoratorFactor;
+class FormFactorDecoratorMaterial;
+class FormFactorDecoratorMultiPositionFactor;
+class FormFactorDecoratorPositionFactor;
+class FormFactorDecoratorTransformation;
+// -
+class IInterferenceFunction;
 class InterferenceFunction1DParaCrystal;
-class InterferenceFunction2DParaCrystal;
 class InterferenceFunction2DLattice;
+class InterferenceFunction2DParaCrystal;
+class InterferenceFunctionNone;
+// -
+class IRoughness;
 class LayerRoughness;
 
 
-//! Interface to visit a sample tree and perform operations on its nodes
-
 class BA_CORE_API_ ISampleVisitor
 {
 public:
-    //! Destructor
-    virtual ~ISampleVisitor() {}
-
-    //! Performs specific action on the given sample
-    //! Needs to be overloaded for different ISample types
-
-    virtual void visit(const ISample *) { throw NotImplementedException(
-            "ISampleVisitor::visit(ISample *)"); }
-    virtual void visit(const MultiLayer *) { throw NotImplementedException(
-            "ISampleVisitor::visit(MultiLayer *)"); }
-    virtual void visit(const Layer *) { throw NotImplementedException(
-            "ISampleVisitor::visit(Layer *)"); }
-    virtual void visit(const LayerInterface *) { throw NotImplementedException(
-            "ISampleVisitor::visit(LayerInterface *)"); }
-    virtual void visit(const ParticleDecoration *) {
-        throw NotImplementedException(
-            "ISampleVisitor::visit(ParticleDecoration *)");
-    }
-    virtual void visit(const ParticleInfo *) { throw NotImplementedException(
-            "ISampleVisitor::visit(ParticleInfo *)"); }
-    virtual void visit(const Particle *) { throw NotImplementedException(
-            "ISampleVisitor::visit(Particle *)"); }
-    virtual void visit(const ParticleCoreShell *) {
-        throw NotImplementedException(
-            "ISampleVisitor::visit(ParticleCoreShell *)");
-    }
-    virtual void visit(const MesoCrystal *) { throw NotImplementedException(
-            "ISampleVisitor::visit(MesoCrystal *)"); }
-    virtual void visit(const Crystal *) {
-        throw NotImplementedException(
-            "ISampleVisitor::visit(Crystal *)"); }
-    virtual void visit(const LatticeBasis *) { throw NotImplementedException(
-            "ISampleVisitor::visit(LatticeBasis *)"); }
-    virtual void visit(const IFormFactor *) { throw NotImplementedException(
-            "ISampleVisitor::visit(IFormFactor *)"); }
-    virtual void visit(const FormFactorFullSphere *) {
-        throw NotImplementedException(
-            "ISampleVisitor::visit(FormFactorFullSphere *)");
-    }
-    virtual void visit(const FormFactorPyramid *) {
-        throw NotImplementedException(
-            "ISampleVisitor::visit(FormFactorPyramid *)");
-    }
-    virtual void visit(const FormFactorCylinder *) {
-        throw NotImplementedException(
-            "ISampleVisitor::visit(FormFactorCylinder *)");
-    }
-    virtual void visit(const FormFactorPrism3 *) {
-        throw NotImplementedException(
-            "ISampleVisitor::visit(FormFactorPrism3 *)");
-    }
-    virtual void visit(const IInterferenceFunction *) {
-        throw NotImplementedException(
-            "ISampleVisitor::visit(IInterferenceFunction *)");
-    }
-    virtual void visit(const InterferenceFunction1DParaCrystal  *) {
-        throw NotImplementedException(
-                "ISampleVisitor::visit(InterferenceFunction1DParaCrystal  *)");
-    }
-    virtual void visit(const InterferenceFunction2DParaCrystal  *) {
-        throw NotImplementedException(
-                "ISampleVisitor::visit(InterferenceFunction2DParaCrystal  *)");
-    }
-
-    virtual void visit(const LayerRoughness  *) {
-        throw NotImplementedException(
-                "ISampleVisitor::visit(LayerRoughness *)");
-    }
-
-    virtual void visit(const InterferenceFunction2DLattice  *) {
-        throw NotImplementedException(
-                "ISampleVisitor::visit(InterferenceFunction2DParaCrystal  *)");
-    }
-
-    virtual bool goForward(){ return true; }
-    virtual bool goBack(){ return true; }
+    ISampleVisitor() : m_level(0) {}
+    virtual ~ISampleVisitor(){}
+
+    // visiting methods (the order according to the hierarchy as reported by IDE)
+
+    virtual void visit(const ISample *);
+
+    virtual void visit(const ICompositeSample *);
+
+    virtual void visit(const IClusteredParticles *);
+    virtual void visit(const Crystal *);
+
+    virtual void visit(const IDecoration *);
+    virtual void visit(const ParticleDecoration *);
+
+    virtual void visit(const Layer *);
+
+    virtual void visit(const LayerInterface *);
+
+    virtual void visit(const MultiLayer *);
+
+    virtual void visit(const Particle *);
+    virtual void visit(const LatticeBasis *);
+    virtual void visit(const MesoCrystal *);
+    virtual void visit(const ParticleCoreShell *);
+
+    virtual void visit(const ParticleInfo *);
+    virtual void visit(const DiffuseParticleInfo *);
+    virtual void visit(const PositionParticleInfo *);
+
+    virtual void visit(const IFormFactor *);
+
+    virtual void visit(const FormFactorDWBAPol *);
+    virtual void visit(const FormFactorDWBAPolConstZ *);
+
+    virtual void visit(const FormFactorWeighted *);
+
+    virtual void visit(const IFormFactorBorn *);
+
+    virtual void visit(const FormFactorBox *);
+    virtual void visit(const FormFactorCone *);
+    virtual void visit(const FormFactorCone6 *);
+    virtual void visit(const FormFactorCrystal *);
+    virtual void visit(const FormFactorCylinder *);
+    virtual void visit(const FormFactorEllipsoid *);
+    virtual void visit(const FormFactorFullSphere *);
+    virtual void visit(const FormFactorFullSpheroid *);
+    virtual void visit(const FormFactorGauss *);
+    virtual void visit(const FormFactorHemiSpheroid *);
+    virtual void visit(const FormFactorLorentz *);
+    virtual void visit(const FormFactorParallelepiped *);
+    virtual void visit(const FormFactorPrism3 *);
+    virtual void visit(const FormFactorPrism6 *);
+    virtual void visit(const FormFactorPyramid *);
+    virtual void visit(const FormFactorSphere *);
+    virtual void visit(const FormFactorSphereGaussianRadius *);
+    virtual void visit(const FormFactorTetrahedron *);
+    virtual void visit(const IFormFactorBornSeparable *);
+
+    virtual void visit(const IFormFactorDecorator *);
+
+    virtual void visit(const FormFactorDWBA *);
+    virtual void visit(const FormFactorDWBAConstZ *);
+    virtual void visit(const FormFactorDecoratorDebyeWaller *);
+    virtual void visit(const FormFactorDecoratorFactor *);
+    virtual void visit(const FormFactorDecoratorMaterial *);
+    virtual void visit(const FormFactorDecoratorMultiPositionFactor *);
+    virtual void visit(const FormFactorDecoratorPositionFactor *);
+    virtual void visit(const FormFactorDecoratorTransformation *);
+
+    virtual void visit(const IInterferenceFunction *);
+    virtual void visit(const InterferenceFunction1DParaCrystal *);
+    virtual void visit(const InterferenceFunction2DLattice *);
+    virtual void visit(const InterferenceFunction2DParaCrystal *);
+    virtual void visit(const InterferenceFunctionNone *);
+
+    virtual void visit(const IRoughness *);
+    virtual void visit(const LayerRoughness *);
+
+    // enter and leave methods
+    bool visitEnter(const ICompositeSample *);
+    bool visitLeave(const ICompositeSample *);
+
+    //! return current level of the visitor in the composite hierarchy
+    int getLevel() const { return m_level; }
+
+    //! set current level of the visitor in the composite hierarchy
+    void setLevel(int level) { m_level = level; }
+
+private:
+    int m_level;
 };
 
+void VisitSampleTree(const ISample &sample, ISampleVisitor &visitor);
+
 
 #endif // ISAMPLEVISITOR_H
diff --git a/Core/Samples/inc/InterferenceFunctionNone.h b/Core/Samples/inc/InterferenceFunctionNone.h
index 6b1d2a7f8d32d6d422388dc10d53fb6b20cc10d7..0c3b5c271db0b2718e0aee30eae21dee63d00050 100644
--- a/Core/Samples/inc/InterferenceFunctionNone.h
+++ b/Core/Samples/inc/InterferenceFunctionNone.h
@@ -27,6 +27,7 @@ public:
     virtual ~InterferenceFunctionNone() {}
     virtual InterferenceFunctionNone *clone() const
     { return new InterferenceFunctionNone(); }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     virtual double evaluate(const cvector_t& q) const { (void)q; return 1.0; }
 };
diff --git a/Core/Samples/inc/LatticeBasis.h b/Core/Samples/inc/LatticeBasis.h
index 2433058cc8aad838dc2278dc516c973a6c992925..04670cbe9b3eee0250280db6b8cbc1fc0ddb91bf 100644
--- a/Core/Samples/inc/LatticeBasis.h
+++ b/Core/Samples/inc/LatticeBasis.h
@@ -36,9 +36,7 @@ public:
     LatticeBasis *createTransformed() const;
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const {
-        p_visitor->visit(this);
-    }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     void addParticle(const Particle& particle,
                      std::vector<kvector_t > positions);
diff --git a/Core/Samples/inc/Layer.h b/Core/Samples/inc/Layer.h
index 8ac57404f0a3f13f4918a2f8ad755927486272ca..38d7f9cb655d6b6ffbb65841530e2bfab5dcff49 100644
--- a/Core/Samples/inc/Layer.h
+++ b/Core/Samples/inc/Layer.h
@@ -43,7 +43,7 @@ public:
     virtual Layer *cloneInvertB() const;
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const { p_visitor->visit(this); }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     //! Sets layer thickness in nanometers.
     virtual void setThickness(double thickness);
diff --git a/Core/Samples/inc/LayerRoughness.h b/Core/Samples/inc/LayerRoughness.h
index 5927e52db7b6635ecf0c5e484036759830bd49bf..27705d0c3125347af9621009a6f5796c5ae8bcff 100644
--- a/Core/Samples/inc/LayerRoughness.h
+++ b/Core/Samples/inc/LayerRoughness.h
@@ -36,7 +36,7 @@ public:
     LayerRoughness *clone() const;
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const { p_visitor->visit(this); }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     //! Returns power spectral density of the surface roughness
     double getSpectralFun(const kvector_t& kvec) const;
diff --git a/Core/Samples/inc/MesoCrystal.h b/Core/Samples/inc/MesoCrystal.h
index ef9291797b8c97ad46f76ce616af7edd74cf4e5f..4d83862a083ac716bbb3202d9f92c5459f745681 100644
--- a/Core/Samples/inc/MesoCrystal.h
+++ b/Core/Samples/inc/MesoCrystal.h
@@ -37,9 +37,7 @@ public:
     virtual MesoCrystal *cloneInvertB() const;
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const {
-        p_visitor->visit(this);
-    }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     virtual void setAmbientMaterial(const IMaterial *p_material);
 
diff --git a/Core/Samples/inc/Particle.h b/Core/Samples/inc/Particle.h
index a15353cf26c111c16cda7d92a81bcb6bbb81df57..1da3d32916b057623d9e7302b1bace32018037b9 100644
--- a/Core/Samples/inc/Particle.h
+++ b/Core/Samples/inc/Particle.h
@@ -50,6 +50,9 @@ public:
         mp_ambient_material = p_material;
     }
 
+    //! Returns particle's material.
+    virtual const IMaterial* getAmbientMaterial() const { return mp_ambient_material; }
+
     //! Create a form factor which includes the particle's shape,
     //! material, ambient material, an optional transformation and an extra
     //! scattering factor
@@ -61,10 +64,9 @@ public:
         mp_material = p_material;
     }
 
-    //! Returns layer's material.
+    //! Returns particle's material.
     virtual const IMaterial* getMaterial() const { return mp_material; }
 
-
     //! Returns refractive index of the particle
     virtual complex_t getRefractiveIndex() const
     {
diff --git a/Core/Samples/inc/ParticleCoreShell.h b/Core/Samples/inc/ParticleCoreShell.h
index eb15497bc6f0e0fa9f4f3c3c4d8e635d8530d08d..85abdce851bc11c06700931fdf45428a709709d5 100644
--- a/Core/Samples/inc/ParticleCoreShell.h
+++ b/Core/Samples/inc/ParticleCoreShell.h
@@ -32,9 +32,7 @@ public:
     virtual ParticleCoreShell *cloneInvertB() const;
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const {
-        p_visitor->visit(this);
-    }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     //! Sets the refractive index of the ambient material (which influences
     //! its scattering power)
@@ -69,6 +67,9 @@ public:
         return mp_shell;
     }
 
+    void addAndRegisterCore(const Particle &core);
+    void addAndRegisterShell(const Particle &shell);
+
 protected:
     ParticleCoreShell(kvector_t relative_core_position);
     Particle *mp_shell;
diff --git a/Core/Samples/inc/PositionParticleInfo.h b/Core/Samples/inc/PositionParticleInfo.h
index 24822bebd2fc2032fd6e5dc84dce7724ddc97da5..b82d60cca8972d762c7d49abdafc7630aebe316f 100644
--- a/Core/Samples/inc/PositionParticleInfo.h
+++ b/Core/Samples/inc/PositionParticleInfo.h
@@ -37,7 +37,7 @@ public:
     virtual PositionParticleInfo *clone() const;
 
     //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const { p_visitor->visit(this); }
+    virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
     //! Returns particle.
     const Particle *getParticle() const { return mp_particle; }
diff --git a/Core/Samples/src/ICompositeSample.cpp b/Core/Samples/src/ICompositeSample.cpp
index 5eddbb6df3928205d7ff423938553c319bdd7bd0..75a0e65ec96c1f46680161593d2de3093a9bcb36 100644
--- a/Core/Samples/src/ICompositeSample.cpp
+++ b/Core/Samples/src/ICompositeSample.cpp
@@ -40,7 +40,7 @@ void ICompositeSample::deregisterChild(ISample *sample)
 
 //! Creates general iterator to walk through the tree of registered composite children
 
-ICompositeIterator ICompositeSample::createIterator()
+ICompositeIterator ICompositeSample::createIterator() const
 {
     return ICompositeIterator(this);
 }
diff --git a/Core/Samples/src/ISample.cpp b/Core/Samples/src/ISample.cpp
index 71910444ff1f1d700f9882fc815b1d94d17913c2..c33b52b6405576f8eeca225322cb43da35f6772b 100644
--- a/Core/Samples/src/ISample.cpp
+++ b/Core/Samples/src/ISample.cpp
@@ -20,20 +20,10 @@
 #include "Utils.h"
 #include "SamplePrintVisitor.h"
 
-ISample *ISample::clone() const
-{
-    throw NotImplementedException(
-        "ISample::clone() -> "
-        "Error! Method is not implemented");
-}
-
-//! Adds params from local to external pool and recurses over direct children.
-
 ISample* ISample::cloneInvertB() const
 {
     throw NotImplementedException(
-        "ISample::cloneInvertB() -> "
-        "Error! Method is not implemented");
+        "ISample::cloneInvertB() -> Error! Method is not implemented");
 }
 
 std::string ISample::addParametersToExternalPool(
@@ -75,21 +65,15 @@ std::string ISample::addParametersToExternalPool(
 void ISample::printSampleTree()
 {
     SamplePrintVisitor visitor;
-    this->accept(&visitor);
+    VisitSampleTree(*this, visitor);
 }
 
 bool ISample::containsMagneticMaterial() const
 {
     SampleMaterialVisitor material_vis;
-    this->accept(&material_vis);
-    std::vector<const IMaterial *> materials = material_vis.getMaterials();
-    for (std::vector<const IMaterial *>::const_iterator it = materials.begin();
-            it != materials.end(); ++it) {
-        if (!(*it)->isScalarMaterial()) {
-            return true;
-        }
-    }
-    return false;
+    VisitSampleTree(*this, material_vis);
+    return material_vis.containsMagneticMaterial();
+
 }
 
 void ISample::print(std::ostream& ostr) const
@@ -100,3 +84,5 @@ void ISample::print(std::ostream& ostr) const
 }
 
 
+
+
diff --git a/Core/Samples/src/ISampleHierarchicalVisitor.cpp b/Core/Samples/src/ISampleHierarchicalVisitor.cpp
deleted file mode 100644
index 4eb51dcae03d394dcbd21e15fc997e8a6ada26fb..0000000000000000000000000000000000000000
--- a/Core/Samples/src/ISampleHierarchicalVisitor.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-#include "ISampleHierarchicalVisitor.h"
-
-
-bool ISampleHierarchicalVisitor::visit(const ISample *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ISample *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const ICompositeSample *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ICompositeSample *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const IClusteredParticles *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IClusteredParticles *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const Crystal *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const Crystal *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const IDecoration *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IDecoration *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const ParticleDecoration *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ParticleDecoration *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const Layer *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const Layer *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const LayerInterface *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const LayerInterface *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const MultiLayer *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const MultiLayer *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const Particle *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const Particle *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const LatticeBasis *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const LatticeBasis *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const MesoCrystal *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const MesoCrystal *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const ParticleCoreShell *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ParticleCoreShell *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const ParticleInfo *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ParticleInfo *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const DiffuseParticleInfo *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const DiffuseParticleInfo *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const PositionParticleInfo *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const PositionParticleInfo *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const IFormFactor *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IFormFactor *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDWBAPol *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDWBAPol *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDWBAPolConstZ *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDWBAPolConstZ *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorWeighted *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorWeighted *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const IFormFactorBorn *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IFormFactorBorn *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorBox *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorBox *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorCone *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorCone *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorCrystal *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorCrystal *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorCylinder *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorCylinder *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorEllipsoid *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorEllipsoid *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorFullSphere *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorFullSphere *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorFullSpheroid *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorFullSpheroid *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorGauss *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorGauss *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorHemiSpheroid *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit const FormFactorHemiSpheroid *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorLorentz *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorLorentz *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorParallelepiped *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorParallelepiped *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorPrism3 *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorPrism3 *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorPrism6 *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorPrism6 *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorPyramid *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorPyramid *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorSphere *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorSphere *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorSphereGaussianRadius *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorSphereGaussianRadius *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorTetrahedron *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorTetrahedron *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const IFormFactorBornSeparable *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IFormFactorBornSeparable *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const IFormFactorDecorator *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IFormFactorDecorator *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDWBA *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDWBA *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDWBAConstZ *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDWBAConstZ *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorDebyeWaller *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorDebyeWaller *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorFactor *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorFactor *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorMaterial *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorMaterial *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorMultiPositionFactor *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorMultiPositionFactor *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorPositionFactor *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorPositionFactor *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorTransformation *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorTransformation *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const IInterferenceFunction *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IInterferenceFunction *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const InterferenceFunction1DParaCrystal *){
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const InterferenceFunction1DParaCrystal *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const InterferenceFunction2DLattice *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const InterferenceFunction2DLattice *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const InterferenceFunction2DParaCrystal *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const InterferenceFunction2DParaCrystal *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const InterferenceFunctionNone *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const InterferenceFunctionNone *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const IRoughness *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IRoughness *) -> Error. Not implemented.");
-}
-
-bool ISampleHierarchicalVisitor::visit(const LayerRoughness *)
-{
-    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const LayerRoughness *) -> Error. Not implemented.");
-}
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-bool  ISampleHierarchicalVisitor::visitEnter(const ICompositeSample *)
-{
-    m_nlevel++;
-    return true;
-}
-
-bool  ISampleHierarchicalVisitor::visitLeave(const ICompositeSample *)
-{
-    m_nlevel--;
-    return true;
-}
diff --git a/Core/Samples/src/ISampleVisitor.cpp b/Core/Samples/src/ISampleVisitor.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..aef894f2c2ebcb449196503eaa8dc7c3e0369d10
--- /dev/null
+++ b/Core/Samples/src/ISampleVisitor.cpp
@@ -0,0 +1,373 @@
+#include "ISampleVisitor.h"
+#include "ISample.h"
+#include "ICompositeSample.h"
+#include "ICompositeIterator.h"
+
+
+void VisitSampleTree(const ISample &sample, ISampleVisitor &visitor)
+{
+    sample.accept(&visitor);
+    const ICompositeSample *composite = sample.getCompositeSample();
+    if(composite) {
+        ICompositeIterator it = composite->createIterator();
+        it.first();
+        while( !it.is_done() ) {
+            visitor.setLevel(it.get_level());
+            ISample *child = it.get_current();
+            child->accept(&visitor);
+            it.next();
+        }
+    }
+}
+
+
+
+void ISampleVisitor::visit(const ISample *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const ISample *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const ICompositeSample *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const ICompositeSample *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const IClusteredParticles *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const IClusteredParticles *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const Crystal *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const Crystal *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const IDecoration *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const IDecoration *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const ParticleDecoration *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const ParticleDecoration *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const Layer *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const Layer *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const LayerInterface *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const LayerInterface *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const MultiLayer *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const MultiLayer *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const Particle *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const Particle *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const LatticeBasis *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const LatticeBasis *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const MesoCrystal *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const MesoCrystal *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const ParticleCoreShell *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const ParticleCoreShell *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const ParticleInfo *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const ParticleInfo *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const DiffuseParticleInfo *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const DiffuseParticleInfo *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const PositionParticleInfo *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const PositionParticleInfo *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const IFormFactor *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const IFormFactor *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDWBAPol *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDWBAPol *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDWBAPolConstZ *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDWBAPolConstZ *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorWeighted *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorWeighted *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const IFormFactorBorn *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const IFormFactorBorn *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorBox *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorBox *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorCone *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorCone *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorCone6 *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorCone6 *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorCrystal *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorCrystal *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorCylinder *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorCylinder *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorEllipsoid *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorEllipsoid *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorFullSphere *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorFullSphere *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorFullSpheroid *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorFullSpheroid *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorGauss *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorGauss *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorHemiSpheroid *)
+{
+    throw NotImplementedException("ISampleVisitor::visit const FormFactorHemiSpheroid *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorLorentz *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorLorentz *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorParallelepiped *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorParallelepiped *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorPrism3 *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorPrism3 *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorPrism6 *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorPrism6 *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorPyramid *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorPyramid *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorSphere *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorSphere *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorSphereGaussianRadius *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorSphereGaussianRadius *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorTetrahedron *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorTetrahedron *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const IFormFactorBornSeparable *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const IFormFactorBornSeparable *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const IFormFactorDecorator *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const IFormFactorDecorator *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDWBA *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDWBA *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDWBAConstZ *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDWBAConstZ *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDecoratorDebyeWaller *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDecoratorDebyeWaller *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDecoratorFactor *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDecoratorFactor *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDecoratorMaterial *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDecoratorMaterial *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDecoratorMultiPositionFactor *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDecoratorMultiPositionFactor *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDecoratorPositionFactor *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDecoratorPositionFactor *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const FormFactorDecoratorTransformation *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const FormFactorDecoratorTransformation *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const IInterferenceFunction *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const IInterferenceFunction *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const InterferenceFunction1DParaCrystal *){
+    throw NotImplementedException("ISampleVisitor::visit(const InterferenceFunction1DParaCrystal *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const InterferenceFunction2DLattice *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const InterferenceFunction2DLattice *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const InterferenceFunction2DParaCrystal *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const InterferenceFunction2DParaCrystal *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const InterferenceFunctionNone *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const InterferenceFunctionNone *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const IRoughness *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const IRoughness *) -> Error. Not implemented.");
+}
+
+
+void ISampleVisitor::visit(const LayerRoughness *)
+{
+    throw NotImplementedException("ISampleVisitor::visit(const LayerRoughness *) -> Error. Not implemented.");
+}
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+bool  ISampleVisitor::visitEnter(const ICompositeSample *)
+{
+    m_level++;
+    return false;
+}
+
+bool  ISampleVisitor::visitLeave(const ICompositeSample *)
+{
+    m_level--;
+    return false;
+}
diff --git a/Core/Samples/src/MaterialManager.cpp b/Core/Samples/src/MaterialManager.cpp
index 1888b31ce97ac9d14c64f4cf0ac4550a98f0dce0..6d2614f4b184576eeaee4a0986b9b9b9433031fc 100644
--- a/Core/Samples/src/MaterialManager.cpp
+++ b/Core/Samples/src/MaterialManager.cpp
@@ -67,6 +67,9 @@ const IMaterial *MaterialManager::this_getHomogeneousMaterial(
     if( mat ) {
         // check if user is trying to create material
         // with same name but different parameters
+        if(!mat->isScalarMaterial()) {
+            throw LogicErrorException("MaterialManager::this_getHomogeneousMaterial() -> Attempt to make existing magnetic material non-magnetic one. Material name '"+mat->getName()+"'.");
+        }
         const HomogeneousMaterial *old =
             dynamic_cast<const HomogeneousMaterial *>(mat);
         if(old->getRefractiveIndex() != refractive_index) {
@@ -110,19 +113,14 @@ const IMaterial* MaterialManager::this_getHomogeneousMagneticMaterial(
     if( mat ) {
         // check if user is trying to create material
         // with same name but different parameters
-        const HomogeneousMaterial *old =
-            dynamic_cast<const HomogeneousMaterial *>(mat);
-        if(old->getRefractiveIndex() != refractive_index) {
-            HomogeneousMaterial *non_const_mat =
-                const_cast<HomogeneousMaterial *>(old);
-            non_const_mat->setRefractiveIndex(refractive_index);
-            msglog(MSG::WARNING) <<
-                "MaterialManager::addHomogeneousMagneticMaterial()" <<
-                "-> Redefining refractive index for material '" << name << "'";
+        if(mat->isScalarMaterial()) {
+            throw LogicErrorException("MaterialManager::this_getHomogeneousMagneticMaterial() -> Attempt to make existing non-magnetic material magnetic one. Material name '"+mat->getName()+"'.");
         }
+
         const HomogeneousMagneticMaterial *mold =
             dynamic_cast<const HomogeneousMagneticMaterial *>(mat);
-        if(mold && mold->getMagneticField() != magnetic_field) {
+
+        if(mold->getMagneticField() != magnetic_field) {
             HomogeneousMagneticMaterial *non_const_mat =
                 const_cast<HomogeneousMagneticMaterial *>(mold);
             non_const_mat->setMagneticField(magnetic_field);
@@ -130,11 +128,15 @@ const IMaterial* MaterialManager::this_getHomogeneousMagneticMaterial(
                 "MaterialManager::addHomogeneousMagneticMaterial()" <<
                 "-> Redefining magnetic field for material '" << name << "'";
         }
-        if(!mold) {
-            throw ExistingClassRegistrationException(
-                    "Non-magnetic material with this name"
-                    " was already registered: " + name);
+        if(mold->getRefractiveIndex() != refractive_index) {
+            HomogeneousMagneticMaterial *non_const_mat =
+                const_cast<HomogeneousMagneticMaterial *>(mold);
+            non_const_mat->setRefractiveIndex(refractive_index);
+            msglog(MSG::WARNING) <<
+                "MaterialManager::addHomogeneousMagneticMaterial()" <<
+                "-> Redefining refractive index for material '" << name << "'";
         }
+
         return mat;
     } else {
         IMaterial *hmat = new HomogeneousMagneticMaterial(name,
diff --git a/Core/Samples/src/MesoCrystal.cpp b/Core/Samples/src/MesoCrystal.cpp
index 1782dab4e89602da62ea3d28a0dddd20549b98e9..0598f342f9e6577d33abffb8691f36ff3f9e2ec0 100644
--- a/Core/Samples/src/MesoCrystal.cpp
+++ b/Core/Samples/src/MesoCrystal.cpp
@@ -84,8 +84,10 @@ void MesoCrystal::setTransform(const Geometry::ITransform3D& transform)
 void MesoCrystal::setSimpleFormFactor(IFormFactor* p_form_factor)
 {
     if (p_form_factor != mp_meso_form_factor) {
+        deregisterChild(mp_meso_form_factor);
         delete mp_meso_form_factor;
         mp_meso_form_factor = p_form_factor;
+        registerChild(mp_meso_form_factor);
     }
 }
 
diff --git a/Core/Samples/src/MultiLayer.cpp b/Core/Samples/src/MultiLayer.cpp
index 0d72e660d44bf8ad2c5004b54d3443b8d2e39299..0c9cadc38dece297969f4ef50b8a81640c6e72b2 100644
--- a/Core/Samples/src/MultiLayer.cpp
+++ b/Core/Samples/src/MultiLayer.cpp
@@ -46,14 +46,10 @@ void MultiLayer::init_parameters()
 /* ************************************************************************* */
 void MultiLayer::clear()
 {
-    for(size_t i=0; i<m_layers.size(); i++) {
-        if( m_layers[i] ) delete m_layers[i];
-    }
+    for(size_t i=0; i<m_layers.size(); i++) delete m_layers[i];
     m_layers.clear();
 
-    for(size_t i=0; i<m_interfaces.size(); i++) {
-        if( m_interfaces[i] ) delete m_interfaces[i];
-    }
+    for(size_t i=0; i<m_interfaces.size(); i++) delete m_interfaces[i];
     m_interfaces.clear();
 
     m_layers_z.clear();
@@ -70,13 +66,16 @@ MultiLayer *MultiLayer::clone() const
 
     newMultiLayer->m_layers_z = m_layers_z;
 
+    std::vector<Layer *> layer_buffer;
     for(size_t i=0; i<m_layers.size(); i++) {
-        newMultiLayer->addAndRegisterLayer( m_layers[i]->clone() );
+        layer_buffer.push_back(m_layers[i]->clone() );
     }
 
     for(size_t i=0; i<m_interfaces.size(); i++) {
-        const Layer *topLayer = newMultiLayer->m_layers[i];
-        const Layer *bottomLayer = newMultiLayer->m_layers[i+1];
+//        const Layer *topLayer = newMultiLayer->m_layers[i];
+//        const Layer *bottomLayer = newMultiLayer->m_layers[i+1];
+        const Layer *topLayer = layer_buffer[i];
+        const Layer *bottomLayer = layer_buffer[i+1];
 
         LayerInterface *newInterface(0);
         if(m_interfaces[i]->getRoughness()) {
@@ -86,8 +85,11 @@ MultiLayer *MultiLayer::clone() const
             newInterface = LayerInterface::createSmoothInterface(topLayer,
                     bottomLayer );
         }
+
+        newMultiLayer->addAndRegisterLayer( layer_buffer[i] );
         newMultiLayer->addAndRegisterInterface( newInterface );
     }
+    newMultiLayer->addAndRegisterLayer( layer_buffer.back() );
 
     newMultiLayer->m_crossCorrLength = m_crossCorrLength;
 
@@ -103,13 +105,19 @@ MultiLayer* MultiLayer::cloneInvertB() const
 
     newMultiLayer->m_layers_z = m_layers_z;
 
+//    for(size_t i=0; i<m_layers.size(); i++) {
+//        newMultiLayer->addAndRegisterLayer( m_layers[i]->cloneInvertB() );
+//    }
+    std::vector<Layer *> layer_buffer;
     for(size_t i=0; i<m_layers.size(); i++) {
-        newMultiLayer->addAndRegisterLayer( m_layers[i]->cloneInvertB() );
+        layer_buffer.push_back(m_layers[i]->cloneInvertB() );
     }
 
     for(size_t i=0; i<m_interfaces.size(); i++) {
-        const Layer *topLayer = newMultiLayer->m_layers[i];
-        const Layer *bottomLayer = newMultiLayer->m_layers[i+1];
+//        const Layer *topLayer = newMultiLayer->m_layers[i];
+//        const Layer *bottomLayer = newMultiLayer->m_layers[i+1];
+        const Layer *topLayer = layer_buffer[i];
+        const Layer *bottomLayer = layer_buffer[i+1];
 
         LayerInterface *newInterface(0);
         if(m_interfaces[i]->getRoughness()) {
@@ -119,8 +127,10 @@ MultiLayer* MultiLayer::cloneInvertB() const
             newInterface = LayerInterface::createSmoothInterface(topLayer,
                     bottomLayer );
         }
+        newMultiLayer->addAndRegisterLayer( layer_buffer[i] );
         newMultiLayer->addAndRegisterInterface( newInterface );
     }
+    newMultiLayer->addAndRegisterLayer( layer_buffer.back() );
 
     newMultiLayer->m_crossCorrLength = m_crossCorrLength;
 
@@ -155,8 +165,8 @@ void MultiLayer::addLayerWithTopRoughness(
         LayerInterface *interface =
             LayerInterface::createRoughInterface(
                 p_last_layer, p_new_layer, roughness);
-        addAndRegisterLayer(p_new_layer);
         addAndRegisterInterface(interface);
+        addAndRegisterLayer(p_new_layer);
         m_layers_z.push_back(m_layers_z.back() - layer.getThickness() );
         return;
     }
diff --git a/Core/Samples/src/ParticleCoreShell.cpp b/Core/Samples/src/ParticleCoreShell.cpp
index b15e0bd6e1c46af16d609280c3cc4b0de54f94ef..3a7f9d17bd6814d4c3c3171f4a31f05ae5ceea08 100644
--- a/Core/Samples/src/ParticleCoreShell.cpp
+++ b/Core/Samples/src/ParticleCoreShell.cpp
@@ -19,10 +19,12 @@
 
 ParticleCoreShell::ParticleCoreShell(const Particle& shell,
         const Particle& core, kvector_t relative_core_position)
-    : m_relative_core_position(relative_core_position)
+    : mp_shell(0)
+    , mp_core(0)
+    , m_relative_core_position(relative_core_position)
 {
-    mp_shell = shell.clone();
-    mp_core = core.clone();
+    addAndRegisterCore(core);
+    addAndRegisterShell(shell);
 }
 
 ParticleCoreShell::~ParticleCoreShell()
@@ -105,3 +107,24 @@ ParticleCoreShell::ParticleCoreShell(kvector_t relative_core_position)
 , m_relative_core_position(relative_core_position)
 {
 }
+
+void ParticleCoreShell::addAndRegisterCore(const Particle &core)
+{
+    if(mp_core) {
+        deregisterChild(mp_core);
+        delete mp_core;
+    }
+    mp_core = core.clone();
+    registerChild(mp_core);
+}
+
+
+void ParticleCoreShell::addAndRegisterShell(const Particle &shell)
+{
+    if(mp_shell) {
+        deregisterChild(mp_shell);
+        delete mp_shell;
+    }
+    mp_shell = shell.clone();
+    registerChild(mp_shell);
+}
diff --git a/Core/Samples/src/PositionParticleInfo.cpp b/Core/Samples/src/PositionParticleInfo.cpp
index ca653a4b46ee39d6c8afad342020bfab4a3c65bb..6c8e6cca065b72a2c86738b203c543bfa3ed3485 100644
--- a/Core/Samples/src/PositionParticleInfo.cpp
+++ b/Core/Samples/src/PositionParticleInfo.cpp
@@ -56,6 +56,7 @@ void PositionParticleInfo::init_parameters()
     registerParameter("x_position", &m_pos_x);
     registerParameter("y_position", &m_pos_y);
     registerParameter("z_position", &m_depth);
+    registerParameter("abundance", &m_abundance);
 }
 
 
diff --git a/Core/StandardSamples/PolarizedDWBAZeroMagBuilder.cpp b/Core/StandardSamples/PolarizedDWBAZeroMagBuilder.cpp
index 48eb71214a558c404dac14d807e0fdc766880085..0fbe7032ac8d63b56632f8c480cd3ac7d91d5fd1 100644
--- a/Core/StandardSamples/PolarizedDWBAZeroMagBuilder.cpp
+++ b/Core/StandardSamples/PolarizedDWBAZeroMagBuilder.cpp
@@ -37,7 +37,7 @@ ISample *PolarizedDWBAZeroMagBuilder::buildSample() const
     substrate_layer.setMaterial(p_substrate_material);
     const IMaterial *particle_material =
             MaterialManager::getHomogeneousMagneticMaterial(
-                    "Particle", 6e-4, 2e-8, magnetic_field);
+                    "MagParticle", 6e-4, 2e-8, magnetic_field);
 
     ParticleDecoration particle_decoration(
             new Particle(particle_material,
diff --git a/Core/StandardSamples/SampleBuilderFactory.cpp b/Core/StandardSamples/SampleBuilderFactory.cpp
index f8c6136d1073d0eb8e00402a15c310137e5c1713..cea66549d6c7d81d310a8d9cf6a8088240f1d37d 100644
--- a/Core/StandardSamples/SampleBuilderFactory.cpp
+++ b/Core/StandardSamples/SampleBuilderFactory.cpp
@@ -109,7 +109,7 @@ SampleBuilderFactory::SampleBuilderFactory()
         "mesocrystal01",
         IFactoryCreateFunction<MesoCrystal01Builder, ISampleBuilder>,
         "mesocrystals of cylindrical shape composed by spherical nanoparticles");
-	registerItem(
+    registerItem(
         "PolarizedDWBAZeroMag",
         IFactoryCreateFunction<PolarizedDWBAZeroMagBuilder, ISampleBuilder>,
         "polarized DWBA with zero magnetic field");
diff --git a/Core/Tools/inc/IFactory.h b/Core/Tools/inc/IFactory.h
index 875809c891311cc5b2c16a2130879986962c3a9a..d3fedeb6d66ab21bac8fc35dad4976cb72262a7c 100644
--- a/Core/Tools/inc/IFactory.h
+++ b/Core/Tools/inc/IFactory.h
@@ -101,6 +101,13 @@ public:
     //! Returns number of registered objects
     size_t getNumberOfRegistered() const { return m_callbacks.size(); }
 
+    iterator begin() { return m_descriptions.begin(); }
+    const_iterator begin() const { return m_descriptions.begin(); }
+
+    iterator end() { return m_descriptions.end(); }
+    const_iterator end() const { return m_descriptions.end(); }
+
+
 protected:
     bool m_own_objects;         //!< will store created objects in the list and then delete them on exit then true
     CallbackMap_t m_callbacks;     //!< map of correspondance of objectsId and creation functions
diff --git a/Core/Tools/inc/IParameterized.h b/Core/Tools/inc/IParameterized.h
index 73271e1714cb934f43d14cee49dcf92e6465ac4e..183c69eea08ab694944fe4ff1352fe1918f016af 100644
--- a/Core/Tools/inc/IParameterized.h
+++ b/Core/Tools/inc/IParameterized.h
@@ -61,7 +61,7 @@ public:
     virtual bool setParameterValue(const std::string &name, double value);
 
     //! Sets parameter value, return number of changed parameters
-    virtual int setMatchedParametersValue(const std::string& wildcards, double value);
+    //virtual int setMatchedParametersValue(const std::string& wildcards, double value);
 
     //! clear parameter pool
     virtual void clearParameterPool() { m_parameters.clear(); }
diff --git a/Core/Tools/inc/ParameterPool.h b/Core/Tools/inc/ParameterPool.h
index 5370957320a75dd39b86306ef44c884cce5383a1..d0824ef0c7112f46ae6e04560fae5825fd449fec 100644
--- a/Core/Tools/inc/ParameterPool.h
+++ b/Core/Tools/inc/ParameterPool.h
@@ -90,6 +90,9 @@ protected:
     //! Prints parameter pool contents.
     virtual void print(std::ostream& ostr) const;
 
+    //! prints error message
+    std::string get_error_message(const std::string &criteria) const;
+
     //! Map of parameters.
     parametermap_t m_map;
 };
diff --git a/Core/Tools/inc/SampleMaterialVisitor.h b/Core/Tools/inc/SampleMaterialVisitor.h
index 157e4c84b274bae9db7a230e50a4009130d1a868..da5870713df1b4b748bf2ad9fc7a28967e6dee15 100644
--- a/Core/Tools/inc/SampleMaterialVisitor.h
+++ b/Core/Tools/inc/SampleMaterialVisitor.h
@@ -23,38 +23,96 @@
 class SampleMaterialVisitor : public ISampleVisitor
 {
 public:
-    SampleMaterialVisitor();
-    virtual ~SampleMaterialVisitor();
-
-    void visit(const ISample *sample);
-    void visit(const MultiLayer *sample);
-    void visit(const Layer *sample);
-    void visit(const LayerInterface *sample);
-    void visit(const ParticleDecoration *sample);
-    void visit(const ParticleInfo *sample);
-    void visit(const Particle *sample);
-    void visit(const ParticleCoreShell *sample);
-    void visit(const MesoCrystal *sample);
-    void visit(const Crystal *sample);
-    void visit(const LatticeBasis *sample);
-    void visit(const IFormFactor *sample);
-
-    void visit(const FormFactorFullSphere *sample);
-    void visit(const FormFactorPyramid *sample);
-    void visit(const FormFactorCylinder *sample);
-    void visit(const FormFactorPrism3 *sample);
-
-    void visit(const IInterferenceFunction *sample);
-    void visit(const InterferenceFunction1DParaCrystal  *);
-    void visit(const InterferenceFunction2DParaCrystal  *);
-    void visit(const InterferenceFunction2DLattice  *);
-
-    void visit(const LayerRoughness  *);
+    SampleMaterialVisitor() {}
+    virtual ~SampleMaterialVisitor() {}
 
+    // visiting methods (the order according to the hierarchy as reported by IDE)
+
+    virtual void visit(const ISample *sample);
+
+    virtual void visit(const ICompositeSample *sample);
+
+    virtual void visit(const IClusteredParticles *sample);
+    virtual void visit(const Crystal *sample);
+
+    virtual void visit(const IDecoration *sample);
+    virtual void visit(const ParticleDecoration *sample);
+
+    virtual void visit(const Layer *sample);
+
+    virtual void visit(const LayerInterface *sample);
+
+    virtual void visit(const MultiLayer *sample);
+
+    virtual void visit(const Particle *sample);
+    virtual void visit(const LatticeBasis *sample);
+    virtual void visit(const MesoCrystal *sample);
+    virtual void visit(const ParticleCoreShell *sample);
+
+    virtual void visit(const ParticleInfo *sample);
+    virtual void visit(const DiffuseParticleInfo *sample);
+    virtual void visit(const PositionParticleInfo *sample);
+
+    virtual void visit(const IFormFactor *sample);
+
+    virtual void visit(const FormFactorDWBAPol *sample);
+    virtual void visit(const FormFactorDWBAPolConstZ *sample);
+
+    virtual void visit(const FormFactorWeighted *sample);
+
+    virtual void visit(const IFormFactorBorn *sample);
+
+    virtual void visit(const FormFactorBox *sample);
+    virtual void visit(const FormFactorCone *sample);
+    virtual void visit(const FormFactorCone6 *sample);
+    virtual void visit(const FormFactorCrystal *sample);
+    virtual void visit(const FormFactorCylinder *sample);
+    virtual void visit(const FormFactorEllipsoid *sample);
+    virtual void visit(const FormFactorFullSphere *sample);
+    virtual void visit(const FormFactorFullSpheroid *sample);
+    virtual void visit(const FormFactorGauss *sample);
+    virtual void visit(const FormFactorHemiSpheroid *sample);
+    virtual void visit(const FormFactorLorentz *sample);
+    virtual void visit(const FormFactorParallelepiped *sample);
+    virtual void visit(const FormFactorPrism3 *sample);
+    virtual void visit(const FormFactorPrism6 *sample);
+    virtual void visit(const FormFactorPyramid *sample);
+    virtual void visit(const FormFactorSphere *sample);
+    virtual void visit(const FormFactorSphereGaussianRadius *sample);
+    virtual void visit(const FormFactorTetrahedron *sample);
+    virtual void visit(const IFormFactorBornSeparable *sample);
+
+    virtual void visit(const IFormFactorDecorator *sample);
+
+    virtual void visit(const FormFactorDWBA *sample);
+    virtual void visit(const FormFactorDWBAConstZ *sample);
+    virtual void visit(const FormFactorDecoratorDebyeWaller *sample);
+    virtual void visit(const FormFactorDecoratorFactor *sample);
+    virtual void visit(const FormFactorDecoratorMaterial *sample);
+    virtual void visit(const FormFactorDecoratorMultiPositionFactor *sample);
+    virtual void visit(const FormFactorDecoratorPositionFactor *sample);
+    virtual void visit(const FormFactorDecoratorTransformation *sample);
+
+    virtual void visit(const IInterferenceFunction *sample);
+    virtual void visit(const InterferenceFunction1DParaCrystal *sample);
+    virtual void visit(const InterferenceFunction2DLattice *sample);
+    virtual void visit(const InterferenceFunction2DParaCrystal *sample);
+    virtual void visit(const InterferenceFunctionNone *sample);
+
+    virtual void visit(const IRoughness *sample);
+    virtual void visit(const LayerRoughness *sample);
+
+    //! return vector of material presented in the sample
     std::vector<const IMaterial *> getMaterials() const {
         return m_materials;
     }
 
+    //! return true if contains magnetic materials
+    bool containsMagneticMaterial() const;
+
+    //! clear state of the visitor
+    void clear();
+
 protected:
     void addMaterial(const IMaterial *p_material);
     std::vector<const IMaterial *> m_materials;
diff --git a/Core/Tools/inc/SamplePrintVisitor.h b/Core/Tools/inc/SamplePrintVisitor.h
index f08a47f9f682ae14e06ca6c20fadce59499db3c2..f24b07da66cece1a6686b096721b608be8fc3fdf 100644
--- a/Core/Tools/inc/SamplePrintVisitor.h
+++ b/Core/Tools/inc/SamplePrintVisitor.h
@@ -8,60 +8,87 @@
 class BA_CORE_API_ SamplePrintVisitor : public ISampleVisitor
 {
 public:
-    SamplePrintVisitor() : m_level(0){}
-
-    void visit(const ISample *sample);
-    void visit(const MultiLayer *sample);
-    void visit(const Layer *sample);
-    void visit(const LayerInterface *sample);
-    void visit(const ParticleDecoration *sample);
-    void visit(const ParticleInfo *sample);
-    void visit(const Particle *sample);
-    void visit(const ParticleCoreShell *sample);
-    void visit(const MesoCrystal *sample);
-    void visit(const Crystal *sample);
-    void visit(const LatticeBasis *sample);
-    void visit(const IFormFactor *sample);
-
-
-    void visit(const FormFactorFullSphere *sample);
-    void visit(const FormFactorPyramid *sample);
-    void visit(const FormFactorCylinder *sample);
-    void visit(const FormFactorPrism3 *sample);
-
-    void visit(const IInterferenceFunction *sample);
-    void visit(const InterferenceFunction1DParaCrystal  *);
-    void visit(const InterferenceFunction2DParaCrystal  *);
-    void visit(const InterferenceFunction2DLattice  *);
-
-    void visit(const LayerRoughness *sample);
-
-    bool goForward();
-    bool goBack();
-private:
-    std::string get_indent();
-    int m_level;
-};
+    SamplePrintVisitor() {}
 
+    virtual void visit(const ISample *sample);
 
-inline bool SamplePrintVisitor::goForward()
-{
-    ++m_level;
-    return true;
-}
+    virtual void visit(const ICompositeSample *sample);
 
-inline bool SamplePrintVisitor::goBack()
-{
-    --m_level;
-    return true;
-}
+    virtual void visit(const IClusteredParticles *sample);
+    virtual void visit(const Crystal *sample);
+
+    virtual void visit(const IDecoration *sample);
+    virtual void visit(const ParticleDecoration *sample);
+
+    virtual void visit(const Layer *sample);
+
+    virtual void visit(const LayerInterface *sample);
+
+    virtual void visit(const MultiLayer *sample);
+
+    virtual void visit(const Particle *sample);
+    virtual void visit(const LatticeBasis *sample);
+    virtual void visit(const MesoCrystal *sample);
+    virtual void visit(const ParticleCoreShell *sample);
+
+    virtual void visit(const ParticleInfo *sample);
+    virtual void visit(const DiffuseParticleInfo *sample);
+    virtual void visit(const PositionParticleInfo *sample);
+
+    virtual void visit(const IFormFactor *sample);
+
+    virtual void visit(const FormFactorDWBAPol *sample);
+    virtual void visit(const FormFactorDWBAPolConstZ *sample);
+
+    virtual void visit(const FormFactorWeighted *sample);
+
+    virtual void visit(const IFormFactorBorn *sample);
+
+    virtual void visit(const FormFactorBox *sample);
+    virtual void visit(const FormFactorCone *sample);
+    virtual void visit(const FormFactorCone6 *sample);
+    virtual void visit(const FormFactorCrystal *sample);
+    virtual void visit(const FormFactorCylinder *sample);
+    virtual void visit(const FormFactorEllipsoid *sample);
+    virtual void visit(const FormFactorFullSphere *sample);
+    virtual void visit(const FormFactorFullSpheroid *sample);
+    virtual void visit(const FormFactorGauss *sample);
+    virtual void visit(const FormFactorHemiSpheroid *sample);
+    virtual void visit(const FormFactorLorentz *sample);
+    virtual void visit(const FormFactorParallelepiped *sample);
+    virtual void visit(const FormFactorPrism3 *sample);
+    virtual void visit(const FormFactorPrism6 *sample);
+    virtual void visit(const FormFactorPyramid *sample);
+    virtual void visit(const FormFactorSphere *sample);
+    virtual void visit(const FormFactorSphereGaussianRadius *sample);
+    virtual void visit(const FormFactorTetrahedron *sample);
+    virtual void visit(const IFormFactorBornSeparable *sample);
+
+    virtual void visit(const IFormFactorDecorator *sample);
+
+    virtual void visit(const FormFactorDWBA *sample);
+    virtual void visit(const FormFactorDWBAConstZ *sample);
+    virtual void visit(const FormFactorDecoratorDebyeWaller *sample);
+    virtual void visit(const FormFactorDecoratorFactor *sample);
+    virtual void visit(const FormFactorDecoratorMaterial *sample);
+    virtual void visit(const FormFactorDecoratorMultiPositionFactor *sample);
+    virtual void visit(const FormFactorDecoratorPositionFactor *sample);
+    virtual void visit(const FormFactorDecoratorTransformation *sample);
+
+    virtual void visit(const IInterferenceFunction *sample);
+    virtual void visit(const InterferenceFunction1DParaCrystal *sample);
+    virtual void visit(const InterferenceFunction2DLattice *sample);
+    virtual void visit(const InterferenceFunction2DParaCrystal *sample);
+    virtual void visit(const InterferenceFunctionNone *sample);
+
+    virtual void visit(const IRoughness *sample);
+    virtual void visit(const LayerRoughness *sample);
+
+private:
+    std::string get_indent();
+    void print_default(const ISample *sample);
+};
 
-inline std::string SamplePrintVisitor::get_indent()
-{
-    std::string result;
-    result.resize(m_level*4, '.');
-    return result;
-}
 
 
 #endif // SAMPLEPRINTVISITOR_H
diff --git a/Core/Tools/src/IParameterized.cpp b/Core/Tools/src/IParameterized.cpp
index 6c15b57fa42505589e90944b8d645d054c683bf5..dee4c3d75c329f92a37a840438cb09621899ef33 100644
--- a/Core/Tools/src/IParameterized.cpp
+++ b/Core/Tools/src/IParameterized.cpp
@@ -66,16 +66,23 @@ std::string IParameterized::addParametersToExternalPool(
 //! set parameter value, return true in the case of success
 bool IParameterized::setParameterValue(const std::string &name, double value)
 {
-    boost::scoped_ptr<ParameterPool> P_pool(createParameterTree());
-    return P_pool->setParameterValue(name, value);
+    if(name.find('*') == std::string::npos && name.find('/') == std::string::npos) {
+        return m_parameters.setParameterValue(name, value);
+    }
+    boost::scoped_ptr<ParameterPool> pool(createParameterTree());
+    if(name.find('*') != std::string::npos) {
+        return pool->setMatchedParametersValue(name, value);
+    } else {
+        return pool->setParameterValue(name, value);
+    }
 }
 
 //! Sets parameter value, return number of changed parameters
-int IParameterized::setMatchedParametersValue(const std::string& wildcards, double value)
-{
-    boost::scoped_ptr<ParameterPool> P_pool(createParameterTree());
-    return P_pool->setMatchedParametersValue(wildcards, value);
-}
+//int IParameterized::setMatchedParametersValue(const std::string& wildcards, double value)
+//{
+//    boost::scoped_ptr<ParameterPool> P_pool(createParameterTree());
+//    return P_pool->setMatchedParametersValue(wildcards, value);
+//}
 
 
 void IParameterized::printParameters() const
@@ -85,9 +92,6 @@ void IParameterized::printParameters() const
     delete p_pool;
 }
 
-//! No pure virtual function here, have to throw here,
-//! due to problems in exporting abstract classes to python
-//!
 void IParameterized::init_parameters()
 {
     throw NotImplementedException("IParameterized::init_parameters() -> "
diff --git a/Core/Tools/src/ParameterPool.cpp b/Core/Tools/src/ParameterPool.cpp
index 1611e0f1347d35ce5bce56f1fb17b38c65ca4509..fae936bf86eac3e067321edd8574c5e0dde98f03 100644
--- a/Core/Tools/src/ParameterPool.cpp
+++ b/Core/Tools/src/ParameterPool.cpp
@@ -90,10 +90,11 @@ std::vector<ParameterPool::parameter_t> ParameterPool::getMatchedParameters(cons
         }
     }
     if( selected_parameters.empty() ) {
-        msglog(MSG::FATAL) << "ParameterPool::getMatchedParameters() -> Warning! No parameters satisfying  criteria '" << wildcards << "' have been found";
-        msglog(MSG::FATAL) << "Existing keys are:";
-        for(parametermap_t::const_iterator it=m_map.begin(); it!= m_map.end(); ++it) std::cout << (*it).first << std::endl;
-        throw LogicErrorException("ParameterPool::getMatchedParameters() -> Error! No parameters with given wildcard.");
+//        msglog(MSG::FATAL) << "ParameterPool::getMatchedParameters() -> Error! No parameters satisfying  wildcards '" << wildcards << "' have been found";
+//        msglog(MSG::FATAL) << "Existing keys are:";
+//        for(parametermap_t::const_iterator it=m_map.begin(); it!= m_map.end(); ++it) std::cout << (*it).first << std::endl;
+//        throw LogicErrorException("ParameterPool::getMatchedParameters() -> Error! No parameters with given wildcard '"+wildcards+"'.");
+        throw LogicErrorException("ParameterPool::getMatchedParameters() -> Error! " + get_error_message(wildcards));
     }
     return selected_parameters;
 }
@@ -104,9 +105,9 @@ bool ParameterPool::setParameterValue(const std::string& name, double value)
 {
     parameter_t x = getParameter(name);
     if( x.isNull() ) {
-        msglog(MSG::FATAL) << "ParameterPool::setParameterValue() -> Error. No parameter with name '" << name << "'";
-        throw LogicErrorException("ParameterPool::setParameterValue() -> Error. No such parameter");
-        return false;
+//        msglog(MSG::FATAL) << "ParameterPool::setParameterValue() -> Error. No parameter with name '" << name << "'";
+//        throw LogicErrorException("ParameterPool::setParameterValue() -> Error. No such parameter");
+        throw LogicErrorException("ParameterPool::getMatchedParameters() -> Error! " + get_error_message(name));
     }
     x.setValue(value);
     return true;
@@ -123,6 +124,9 @@ int ParameterPool::setMatchedParametersValue(const std::string& wildcards, doubl
             npars++;
         }
     }
+    if(npars == 0) {
+        throw LogicErrorException("ParameterPool::setMatchedParameters() -> Error! " + get_error_message(wildcards));
+    }
     return npars;
 }
 
@@ -171,3 +175,11 @@ void ParameterPool::print(std::ostream& ostr) const
 }
 
 
+std::string ParameterPool::get_error_message(const std::string &criteria) const
+{
+    std::ostringstream os;
+    os << "No parameters satisfying  criteria '" << criteria << "' have been found. Existing keys are:" << std::endl;
+    for(parametermap_t::const_iterator it=m_map.begin(); it!= m_map.end(); ++it)
+        os << "'" << (*it).first << "'" << std::endl;
+    return os.str();
+}
diff --git a/Core/Tools/src/SampleMaterialVisitor.cpp b/Core/Tools/src/SampleMaterialVisitor.cpp
index 69b6aefe940a48cb9821598c5192d19eaf5306fc..152c28ef98864a56ba6a8717d6df2d50746cc90b 100644
--- a/Core/Tools/src/SampleMaterialVisitor.cpp
+++ b/Core/Tools/src/SampleMaterialVisitor.cpp
@@ -12,208 +12,378 @@
 //! @authors   C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke
 //
 // ************************************************************************** //
-
 #include "SampleMaterialVisitor.h"
-
-#include "ISample.h"
-#include "FormFactors.h"
-#include "MultiLayer.h"
-#include "ParticleDecoration.h"
+#include "IMaterial.h"
+#include "Layer.h"
 #include "Particle.h"
-#include "ParticleInfo.h"
-#include "ParticleCoreShell.h"
-#include "MesoCrystal.h"
-#include "InterferenceFunction1DParaCrystal.h"
-#include "InterferenceFunction2DParaCrystal.h"
-#include "InterferenceFunction2DLattice.h"
+#include "LatticeBasis.h"
 
-#include <algorithm>
 
-SampleMaterialVisitor::SampleMaterialVisitor()
+void SampleMaterialVisitor::clear()
 {
     m_materials.clear();
 }
 
-SampleMaterialVisitor::~SampleMaterialVisitor()
+
+void SampleMaterialVisitor::addMaterial(const IMaterial* p_material)
 {
-    m_materials.clear();
+    if (p_material && std::find(m_materials.begin(), m_materials.end(),
+            p_material) == m_materials.end() ) {
+        m_materials.push_back(p_material);
+    }
+}
+
+
+bool SampleMaterialVisitor::containsMagneticMaterial() const {
+    for (std::vector<const IMaterial *>::const_iterator it = m_materials.begin();
+            it != m_materials.end(); ++it) {
+        if (!(*it)->isScalarMaterial()) return true;
+    }
+    return false;
 }
 
-void SampleMaterialVisitor::visit(const ISample* sample)
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+
+void SampleMaterialVisitor::visit(const ISample *)
 {
-    (void)sample;
-    throw NotImplementedException("SampleMaterialVisitor::visit(ISample *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const ISample *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const MultiLayer* sample)
+
+void SampleMaterialVisitor::visit(const ICompositeSample *)
 {
-    assert(sample);
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const ICompositeSample *) -> Error. Not implemented.");
+}
 
-    for(size_t i_layer=0; i_layer < sample->getNumberOfLayers(); ++i_layer) {
-        const Layer *layer = sample->getLayer(i_layer);
-        layer->accept(this);
-    }
+
+void SampleMaterialVisitor::visit(const IClusteredParticles *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const IClusteredParticles *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const Layer* sample)
+
+void SampleMaterialVisitor::visit(const Crystal *)
 {
-    assert(sample);
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const Crystal *) -> Error. Not implemented.");
+}
 
-    const IMaterial *p_material = sample->getMaterial();
-    addMaterial(p_material);
-    const IDecoration *p_decoration = sample->getDecoration();
-    if (p_decoration) {
-        p_decoration->accept(this);
-    }
+
+void SampleMaterialVisitor::visit(const IDecoration *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const IDecoration *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const LayerInterface* sample)
+
+void SampleMaterialVisitor::visit(const ParticleDecoration *)
 {
-    (void)sample;
-    throw NotImplementedException("SampleMaterialVisitor::visit(LayerInterface *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const ParticleDecoration *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const ParticleDecoration* sample)
+
+void SampleMaterialVisitor::visit(const Layer *sample)
 {
     assert(sample);
+    const IMaterial *material = sample->getMaterial();
+    addMaterial(material);
+}
 
-    for (size_t i=0; i<sample->getNumberOfParticles(); ++i) {
-        const ParticleInfo *p_particle_info = sample->getParticleInfo(i);
-        p_particle_info->accept(this);
-    }
+
+void SampleMaterialVisitor::visit(const LayerInterface *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const LayerInterface *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const ParticleInfo* sample)
+
+void SampleMaterialVisitor::visit(const MultiLayer *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const MultiLayer *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const Particle *sample)
 {
     assert(sample);
+    addMaterial(sample->getMaterial());
+    addMaterial(sample->getAmbientMaterial());
+}
 
-    const Particle *p_particle = sample->getParticle();
-    if (p_particle) {
-        p_particle->accept(this);
-    }
+
+void SampleMaterialVisitor::visit(const LatticeBasis *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const LatticeBasis *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const Particle* sample)
+
+void SampleMaterialVisitor::visit(const MesoCrystal *)
 {
-    assert(sample);
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const MesoCrystal *) -> Error. Not implemented.");
+}
+
 
-    const IMaterial *p_material = sample->getMaterial();
-    addMaterial(p_material);
+void SampleMaterialVisitor::visit(const ParticleCoreShell *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const ParticleCoreShell *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const ParticleCoreShell* sample)
+
+void SampleMaterialVisitor::visit(const ParticleInfo *)
 {
-    assert(sample);
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const ParticleInfo *) -> Error. Not implemented.");
+}
 
-    const Particle *p_core = sample->getCoreParticle();
-    if (p_core) {
-        p_core->accept(this);
-    }
-    const Particle *p_shell = sample->getShellParticle();
-    if (p_shell) {
-        p_shell->accept(this);
-    }
+
+void SampleMaterialVisitor::visit(const DiffuseParticleInfo *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const DiffuseParticleInfo *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const MesoCrystal* sample)
+
+void SampleMaterialVisitor::visit(const PositionParticleInfo *)
 {
-    assert(sample);
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const PositionParticleInfo *) -> Error. Not implemented.");
+}
+
 
-    const IClusteredParticles *p_clustered_particles =
-            sample->getClusteredParticles();
-    p_clustered_particles->accept(this);
+void SampleMaterialVisitor::visit(const IFormFactor *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const IFormFactor *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const Crystal* sample)
+
+void SampleMaterialVisitor::visit(const FormFactorDWBAPol *)
 {
-    assert(sample);
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDWBAPol *) -> Error. Not implemented.");
+}
+
 
-    const LatticeBasis *p_lattice_basis = sample->getLatticeBasis();
-    p_lattice_basis->accept(this);
+void SampleMaterialVisitor::visit(const FormFactorDWBAPolConstZ *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDWBAPolConstZ *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const LatticeBasis* sample)
+
+void SampleMaterialVisitor::visit(const FormFactorWeighted *)
 {
-    assert(sample);
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorWeighted *) -> Error. Not implemented.");
+}
 
-    size_t nbr_particles = sample->getNbrParticles();
-    for (size_t i=0; i<nbr_particles; ++i)
-    {
-        const Particle *p_particle = sample->getParticle(i);
-        p_particle->accept(this);
-    }
+
+void SampleMaterialVisitor::visit(const IFormFactorBorn *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const IFormFactorBorn *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const IFormFactor* sample)
+
+void SampleMaterialVisitor::visit(const FormFactorBox *)
 {
-    (void)sample;
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(IFormFactor *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorBox *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const FormFactorFullSphere* sample)
+
+void SampleMaterialVisitor::visit(const FormFactorCone *)
 {
-    (void)sample;
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(FormFactorFullSphere *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorCone *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const FormFactorPyramid* sample)
+
+void SampleMaterialVisitor::visit(const FormFactorCone6 *)
 {
-    (void)sample;
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(FormFactorPyramid *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorCone6 *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const FormFactorCylinder* sample)
+
+void SampleMaterialVisitor::visit(const FormFactorCrystal *)
 {
-    (void)sample;
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(FormFactorCylinder *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorCrystal *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const FormFactorPrism3* sample)
+
+void SampleMaterialVisitor::visit(const FormFactorCylinder *)
 {
-    (void)sample;
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(FormFactorPrism3 *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorCylinder *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const IInterferenceFunction* sample)
+
+void SampleMaterialVisitor::visit(const FormFactorEllipsoid *)
 {
-    (void)sample;
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(IInterferenceFunction *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorEllipsoid *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const InterferenceFunction1DParaCrystal*)
+
+void SampleMaterialVisitor::visit(const FormFactorFullSphere *)
 {
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(IInterferenceFunction *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorFullSphere *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const InterferenceFunction2DParaCrystal*)
+
+void SampleMaterialVisitor::visit(const FormFactorFullSpheroid *)
 {
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(InterferenceFunction2DParaCrystal *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorFullSpheroid *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const InterferenceFunction2DLattice*)
+
+void SampleMaterialVisitor::visit(const FormFactorGauss *)
 {
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(InterferenceFunction2DLattice *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorGauss *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::visit(const LayerRoughness*)
+
+void SampleMaterialVisitor::visit(const FormFactorHemiSpheroid *)
 {
-    throw NotImplementedException("SampleMaterialVisitor::"
-            "visit(LayerRoughness *)");
+//    throw NotImplementedException("SampleMaterialVisitor::visit const FormFactorHemiSpheroid *) -> Error. Not implemented.");
 }
 
-void SampleMaterialVisitor::addMaterial(const IMaterial* p_material)
+
+void SampleMaterialVisitor::visit(const FormFactorLorentz *)
 {
-    if (p_material && std::find(m_materials.begin(), m_materials.end(),
-            p_material) == m_materials.end() ) {
-        m_materials.push_back(p_material);
-    }
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorLorentz *) -> Error. Not implemented.");
 }
+
+
+void SampleMaterialVisitor::visit(const FormFactorParallelepiped *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorParallelepiped *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorPrism3 *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorPrism3 *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorPrism6 *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorPrism6 *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorPyramid *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorPyramid *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorSphere *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorSphere *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorSphereGaussianRadius *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorSphereGaussianRadius *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorTetrahedron *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorTetrahedron *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const IFormFactorBornSeparable *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const IFormFactorBornSeparable *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const IFormFactorDecorator *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const IFormFactorDecorator *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorDWBA *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDWBA *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorDWBAConstZ *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDWBAConstZ *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorDecoratorDebyeWaller *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDecoratorDebyeWaller *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorDecoratorFactor *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDecoratorFactor *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorDecoratorMaterial *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDecoratorMaterial *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorDecoratorMultiPositionFactor *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDecoratorMultiPositionFactor *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorDecoratorPositionFactor *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDecoratorPositionFactor *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const FormFactorDecoratorTransformation *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const FormFactorDecoratorTransformation *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const IInterferenceFunction *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const IInterferenceFunction *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const InterferenceFunction1DParaCrystal *){
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const InterferenceFunction1DParaCrystal *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const InterferenceFunction2DLattice *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const InterferenceFunction2DLattice *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const InterferenceFunction2DParaCrystal *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const InterferenceFunction2DParaCrystal *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const InterferenceFunctionNone *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const InterferenceFunctionNone *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const IRoughness *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const IRoughness *) -> Error. Not implemented.");
+}
+
+
+void SampleMaterialVisitor::visit(const LayerRoughness *)
+{
+//    throw NotImplementedException("SampleMaterialVisitor::visit(const LayerRoughness *) -> Error. Not implemented.");
+}
+
+
+
diff --git a/Core/Tools/src/SamplePrintVisitor.cpp b/Core/Tools/src/SamplePrintVisitor.cpp
index 9f3c7076474b08027a7d45a73faadd43813648fc..ceb0e6e4c76cf4a74737cacaa2b04aa460bdf80d 100644
--- a/Core/Tools/src/SamplePrintVisitor.cpp
+++ b/Core/Tools/src/SamplePrintVisitor.cpp
@@ -5,23 +5,387 @@
 #include "ParticleDecoration.h"
 #include "Particle.h"
 #include "ParticleCoreShell.h"
-#include "InterferenceFunction1DParaCrystal.h"
-#include "InterferenceFunction2DParaCrystal.h"
-#include "InterferenceFunction2DLattice.h"
+#include "InterferenceFunctions.h"
 #include "ParticleInfo.h"
+#include "LayerInterface.h"
+#include "PositionParticleInfo.h"
 #include <iostream>
 #include "MesoCrystal.h"
 
 
-void SamplePrintVisitor::visit(const ISample *sample)
+void SamplePrintVisitor::visit(const ISample *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const ISample *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const ICompositeSample *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const ICompositeSample *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const IClusteredParticles *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const IClusteredParticles *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const Crystal *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const IDecoration *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const IDecoration *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const ParticleDecoration *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const Layer *sample)
+{
+    assert(sample);
+    std::cout << get_indent() << sample->getName()
+              << " " << (sample->getMaterial() ? sample->getMaterial()->getName() : "0_MATERIAL")
+              << " " << sample->getRefractiveIndex()
+              << " " << (*sample->getParameterPool())
+              << std::endl;
+}
+
+
+void SamplePrintVisitor::visit(const LayerInterface *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const MultiLayer *sample)
+{
+    std::cout << "--------------------------------------------------------------------------------" << std::endl;
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const Particle *sample)
+{
+    assert(sample);
+    std::cout << get_indent() << sample->getName()
+              << " " << (sample->getMaterial() ? sample->getMaterial()->getName() : "0_MATERIAL")
+              << " " << sample->getRefractiveIndex()
+              << std::endl;
+}
+
+
+void SamplePrintVisitor::visit(const LatticeBasis *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const MesoCrystal *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const ParticleCoreShell *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const ParticleCoreShell *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const ParticleInfo *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const DiffuseParticleInfo *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const DiffuseParticleInfo *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const PositionParticleInfo *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const IFormFactor *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const IFormFactor *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDWBAPol *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDWBAPol *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDWBAPolConstZ *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDWBAPolConstZ *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorWeighted *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorWeighted *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const IFormFactorBorn *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const IFormFactorBorn *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorBox *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorCone *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorCone6 *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorCrystal *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorCrystal *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorCylinder *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorEllipsoid *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorFullSphere *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorFullSpheroid *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorGauss *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorHemiSpheroid *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorLorentz *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorLorentz *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorParallelepiped *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorPrism3 *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorPrism6 *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorPyramid *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorSphere *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorSphereGaussianRadius *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorTetrahedron *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const IFormFactorBornSeparable *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const IFormFactorBornSeparable *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const IFormFactorDecorator *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const IFormFactorDecorator *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDWBA *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDWBA *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDWBAConstZ *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDWBAConstZ *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDecoratorDebyeWaller *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDecoratorFactor *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDecoratorFactor *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDecoratorMaterial *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDecoratorMaterial *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDecoratorMultiPositionFactor *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDecoratorMultiPositionFactor *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDecoratorPositionFactor *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDecoratorPositionFactor *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const FormFactorDecoratorTransformation *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const FormFactorDecoratorTransformation *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const IInterferenceFunction *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const IInterferenceFunction *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const InterferenceFunction1DParaCrystal *sample){
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const InterferenceFunction2DLattice *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const InterferenceFunction2DParaCrystal *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const InterferenceFunctionNone *sample)
+{
+    print_default(sample);
+}
+
+
+void SamplePrintVisitor::visit(const IRoughness *)
+{
+    throw NotImplementedException("SamplePrintVisitor::visit(const IRoughness *) -> Error. Not implemented.");
+}
+
+
+void SamplePrintVisitor::visit(const LayerRoughness *sample)
+{
+    print_default(sample);
+}
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+
+//! return string representing indentation
+std::string SamplePrintVisitor::get_indent()
+{
+    std::string result;
+    result.resize(getLevel()*4, '.');
+    result += " ";
+    return result;
+}
+
+//! print default sample information
+void SamplePrintVisitor::print_default(const ISample *sample)
 {
     assert(sample);
-    std::cout << get_indent() << "PrintVisitor_ISample " << sample->getName()
+    std::cout << get_indent() << sample->getName()
               << " " << (*sample->getParameterPool())
               << std::endl;
 }
 
 
+
+/*
+
+
+
 void SamplePrintVisitor::visit(const MultiLayer *sample)
 {
     assert(sample);
@@ -44,19 +408,6 @@ void SamplePrintVisitor::visit(const MultiLayer *sample)
 }
 
 
-void SamplePrintVisitor::visit(const Layer *sample)
-{
-    assert(sample);
-    std::cout << get_indent() << "Layer " << sample->getName()
-              << " " << (sample->getMaterial() ? sample->getMaterial()->getName() : "0_MATERIAL")
-              << " " << sample->getRefractiveIndex()
-              << " " << (*sample->getParameterPool())
-              << std::endl;
-
-    const IDecoration *decoration = sample->getDecoration();
-    if(decoration) decoration->accept(this);
-}
-
 
 void SamplePrintVisitor::visit(const LayerInterface *sample)
 {
@@ -282,3 +633,7 @@ void SamplePrintVisitor::visit(const LayerRoughness *sample)
 }
 
 
+*/
+
+
+
diff --git a/Core/Tools/src/Utils.cpp b/Core/Tools/src/Utils.cpp
index 18f243b59a8192902832516257b2e6dc34d400ca..7db825b92b04cc59549480782922964b1123efd0 100644
--- a/Core/Tools/src/Utils.cpp
+++ b/Core/Tools/src/Utils.cpp
@@ -71,7 +71,7 @@ std::string Utils::String::round_doubles(const std::string& str, int precision)
 bool Utils::String::MatchPattern(
     const std::string& text, std::string wildcardPattern)
 {
-    bool caseSensitive = false;
+    bool caseSensitive(true);
 
     // escape all regex special characters, except '?' and '*'
     boost::replace_all(wildcardPattern, "\\", "\\\\");
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06.cpp b/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06.cpp
index 12d89f8fb4f87ea725c28f7cbe825e75b6267a5c..fccf99582a10bedd70afa4ee393a073ee6b8d759 100644
--- a/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06.cpp
+++ b/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06.cpp
@@ -106,7 +106,7 @@ void FunctionalTests::IsGISAXS06::runvariants()
     for (size_t i=0; i<xi.getNbins(); ++i) {
         double xi_value = xi.getBinValue(i);
         double probability = xi.getNormalizedProbability(i);
-        builder.setMatchedParametersValue("*xi",xi_value);
+        builder.setParameterValue("xi",xi_value);
         MultiLayer *p_sample = dynamic_cast<MultiLayer *>(builder.buildSample());
         m_simulation.setSample(*p_sample);
         m_simulation.runSimulation();
diff --git a/Tests/FunctionalTests/TestCore/MesoCrystal1/MesoCrystal1.cpp b/Tests/FunctionalTests/TestCore/MesoCrystal1/MesoCrystal1.cpp
index 052b78cfd01458266f3e243ec0de03644cdbad0f..9119717bca1ae4b6fe73a66723ebf91cffcbe4e0 100644
--- a/Tests/FunctionalTests/TestCore/MesoCrystal1/MesoCrystal1.cpp
+++ b/Tests/FunctionalTests/TestCore/MesoCrystal1/MesoCrystal1.cpp
@@ -24,7 +24,7 @@ void MesoCrystal1::MesoCrystal1::run(const std::string &path_to_data)
 {
     SimulationRegistry sim_registry;
     Simulation *simulation = sim_registry.createSimulation("mesocrystal01");
-    simulation->getSampleBuilder()->setMatchedParametersValue("*/nphi_rotations", 2.);
+    simulation->getSampleBuilder()->setParameterValue("nphi_rotations", 2.);
 
     // loading reference data
     std::string filename = path_to_data + "mesocrystal1_reference_v2_nphi2.txt.gz";
diff --git a/Tests/FunctionalTests/TestFit/TestFit02/TestFit02.cpp b/Tests/FunctionalTests/TestFit/TestFit02/TestFit02.cpp
index 73420c3477eef6270f506baf387a42f1d4da2f8e..7bb19d101e89570779e1d3c41dd390e149029fa9 100644
--- a/Tests/FunctionalTests/TestFit/TestFit02/TestFit02.cpp
+++ b/Tests/FunctionalTests/TestFit/TestFit02/TestFit02.cpp
@@ -34,11 +34,11 @@ int TestFit02::run()
 
     // setting sample builder to initial values
     SampleBuilder *sample_builder = new SampleBuilder();
-    sample_builder->setMatchedParametersValue("*cylinder_height", cylinder_height);
-    sample_builder->setMatchedParametersValue("*cylinder_radius", cylinder_radius);
-    sample_builder->setMatchedParametersValue("*prism3_half_side", prism3_half_side);
-    sample_builder->setMatchedParametersValue("*prism3_height", prism3_height);
-    sample_builder->setMatchedParametersValue("*cylinder_ratio", cylinder_ratio);
+    sample_builder->setParameterValue("cylinder_height", cylinder_height);
+    sample_builder->setParameterValue("cylinder_radius", cylinder_radius);
+    sample_builder->setParameterValue("prism3_half_side", prism3_half_side);
+    sample_builder->setParameterValue("prism3_height", prism3_height);
+    sample_builder->setParameterValue("cylinder_ratio", cylinder_ratio);
 
     Simulation *simulation = createSimulation();
     simulation->setSampleBuilder(sample_builder);
diff --git a/Tests/FunctionalTests/TestPyFit/testfit02.py b/Tests/FunctionalTests/TestPyFit/testfit02.py
index 07ed459246097161c440d096df959c9c499b9393..4caee78f393733604839a01b4c7dacaa621bae74 100644
--- a/Tests/FunctionalTests/TestPyFit/testfit02.py
+++ b/Tests/FunctionalTests/TestPyFit/testfit02.py
@@ -35,11 +35,11 @@ def runTest():
 
     # setting sample builder to initial values
     sample_builder = MySampleBuilder()
-    sample_builder.setMatchedParametersValue("*cylinder_height", cylinder_height)
-    sample_builder.setMatchedParametersValue("*cylinder_radius", cylinder_radius)
-    sample_builder.setMatchedParametersValue("*prism3_half_side", prism3_half_side)
-    sample_builder.setMatchedParametersValue("*prism3_height", prism3_height)
-    sample_builder.setMatchedParametersValue("*cylinder_ratio", cylinder_ratio)
+    sample_builder.setParameterValue("cylinder_height", cylinder_height)
+    sample_builder.setParameterValue("cylinder_radius", cylinder_radius)
+    sample_builder.setParameterValue("prism3_half_side", prism3_half_side)
+    sample_builder.setParameterValue("prism3_height", prism3_height)
+    sample_builder.setParameterValue("cylinder_ratio", cylinder_ratio)
 
     simulation = createSimulation()
     simulation.setSampleBuilder(sample_builder)
diff --git a/Tests/UnitTests/TestCore/IParameterizedTest.h b/Tests/UnitTests/TestCore/IParameterizedTest.h
index e5741335aa5d97e961462b5c27cd0b5938d66b07..2066d82fdda0c9f45a786b748314a633665dbe01 100644
--- a/Tests/UnitTests/TestCore/IParameterizedTest.h
+++ b/Tests/UnitTests/TestCore/IParameterizedTest.h
@@ -56,6 +56,25 @@ TEST_F(IParameterizedTest, DealingWithPool)
     EXPECT_EQ( double(2.0), m_parameterized.m_real_par2);
 }
 
+TEST_F(IParameterizedTest, SetParameterValue)
+{
+    m_parameterized.m_real_par1 = 1.0;
+    m_parameterized.m_real_par2 = 2.0;
+    m_parameterized.setParameterValue("par1", 3.0);
+    m_parameterized.setParameterValue("par2", 4.0);
+    EXPECT_EQ( double(3.0), m_parameterized.m_real_par1);
+    EXPECT_EQ( double(4.0), m_parameterized.m_real_par2);
+    ASSERT_THROW( m_parameterized.setParameterValue("NotExistingParameterName", 4.0), LogicErrorException );
+    m_parameterized.setParameterValue("*par*", 5.0);
+    EXPECT_EQ( double(5.0), m_parameterized.m_real_par1);
+    EXPECT_EQ( double(5.0), m_parameterized.m_real_par2);
+    m_parameterized.setParameterValue("/Parameterized/par1", 7.0);
+    EXPECT_EQ( double(7.0), m_parameterized.m_real_par1);
+    EXPECT_EQ( double(5.0), m_parameterized.m_real_par2);
+    m_parameterized.clearParameterPool();
+    EXPECT_EQ( 0.0, m_parameterized.getParameterPool()->size());
+
+}
 
 
 #endif // IPARAMETERIZEDTEST_H
diff --git a/Tests/UnitTests/TestCore/ParameterPoolTest.h b/Tests/UnitTests/TestCore/ParameterPoolTest.h
index 16ea4fedd71ed3305954442968421d09efd908f2..97fc5081dea9e6dec977fd8eb3613e21dc8b1fac 100644
--- a/Tests/UnitTests/TestCore/ParameterPoolTest.h
+++ b/Tests/UnitTests/TestCore/ParameterPoolTest.h
@@ -62,8 +62,12 @@ TEST_F(ParameterPoolTest, registerParameters)
 
 TEST_F(ParameterPoolTest, PoolClone)
 {
-    ParameterPool *pool = m_pool.clone();
-    EXPECT_EQ( size_t(3), pool->size() );
+    ParameterPool *clone = m_pool.clone();
+    EXPECT_EQ( size_t(3), clone->size() );
+    EXPECT_EQ( double(1.0), clone->getParameter("a_par1").getValue());
+    EXPECT_EQ( double(2.0), clone->getParameter("a_par2").getValue());
+    EXPECT_EQ( double(3.0), clone->getParameter("b_par3").getValue());
+    delete clone;
 }
 
 
@@ -84,5 +88,19 @@ TEST_F(ParameterPoolTest, CopyToExternalPool)
 }
 
 
+TEST_F(ParameterPoolTest, SetMatchedParametersValue)
+{
+    double x(1.0), y(2.0), z(3.0);
+    ParameterPool pool;
+    pool.registerParameter("xx_x", &x);
+    pool.registerParameter("xx_y", &y);
+    pool.registerParameter("xx_z", &z);
+    ASSERT_THROW( pool.setMatchedParametersValue("zz*", 4.0), LogicErrorException );
+    pool.setMatchedParametersValue("xx*", 4.0);
+    EXPECT_EQ( double(4.0), pool.getParameter("xx_x").getValue());
+    EXPECT_EQ( double(4.0), pool.getParameter("xx_y").getValue());
+    EXPECT_EQ( double(4.0), pool.getParameter("xx_z").getValue());
+}
+
 
 #endif // PARAMETERPOOLTEST_H
diff --git a/dev-tools/python-bindings/MakePyCore.py b/dev-tools/python-bindings/MakePyCore.py
index 0fb14ce4f53e4836a8a2803d7c91b8fb88b2c2aa..8c66bb61a66bbfcc29fa9ee70f897b0ce61b24aa 100644
--- a/dev-tools/python-bindings/MakePyCore.py
+++ b/dev-tools/python-bindings/MakePyCore.py
@@ -329,7 +329,7 @@ def MakePythonAPI(OutputTempDir):
     # default policies for what remained unchanged
     # -----------------
 
-    #builder_utils.IncludePureVirtualMethods(mb, include_classes)
+    builder_utils.IncludePureVirtualMethods(mb, include_classes)
 
     builder_utils.DefaultReturnPolicy(mb)
 
diff --git a/dev-tools/python-bindings/builder_utils.py b/dev-tools/python-bindings/builder_utils.py
index 772644cc4c8855815c05bc7519a11127eb094894..c3d8c32bc89ac3c183d46136b7e6cdfe329603f5 100644
--- a/dev-tools/python-bindings/builder_utils.py
+++ b/dev-tools/python-bindings/builder_utils.py
@@ -50,10 +50,7 @@ def ExcludeMemberFunctionsArgPtr(mb):
             if has_pointers: 
                 #print "XXX",cl.name, fun.name
                 fun.exclude();
-        #query = declarations.virtuality_type_matcher_t( declarations.VIRTUALITY_TYPES.PURE_VIRTUAL )
-        #fun = cl.member_functions( query, allow_empty=True )
-        #for x in fun:
-            #print "ZZZ",x.name
+
 
 
 #------------------------------------------------------------------------------
@@ -63,8 +60,10 @@ def IncludePureVirtualMethods(mb, include_classes):
     for cl in mb.classes():
         itsOurClass = False
         for name in include_classes:
-            if name == cl.name or name == cl.alias: itsOurClass=True
-        if not itsOurClass: continue
+            if name == cl.name or name == cl.alias:
+                itsOurClass=True
+        if not itsOurClass:
+            continue
         query = declarations.virtuality_type_matcher_t( declarations.VIRTUALITY_TYPES.PURE_VIRTUAL )
         fun = cl.member_functions( query, allow_empty=True )
         for f in fun: