From 2b47c56831ea4ca4797657b894c6d50055bf6802 Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Mon, 27 Apr 2015 15:07:14 +0200
Subject: [PATCH] First working version of doxyjen doc string parser

---
 Core/PythonAPI/src/AttLimits.pypp.cpp         |  65 +++--
 Core/PythonAPI/src/Beam.pypp.cpp              |  34 ++-
 Core/PythonAPI/src/Bin1D.pypp.cpp             |  14 +-
 Core/PythonAPI/src/Bin1DCVector.pypp.cpp      |  16 +-
 Core/PythonAPI/src/ConstKBinAxis.pypp.cpp     |   2 +-
 Core/PythonAPI/src/Crystal.pypp.cpp           |  17 +-
 Core/PythonAPI/src/CustomBinAxis.pypp.cpp     |   2 +-
 Core/PythonAPI/src/Detector.pypp.cpp          |  22 +-
 .../PythonAPI/src/DistributionCosine.pypp.cpp |  10 +-
 Core/PythonAPI/src/DistributionGate.pypp.cpp  |  13 +-
 .../src/DistributionGaussian.pypp.cpp         |  10 +-
 .../src/DistributionLogNormal.pypp.cpp        |  13 +-
 .../src/DistributionLorentz.pypp.cpp          |  10 +-
 .../src/FTDistribution1DCauchy.pypp.cpp       |   5 +-
 .../src/FTDistribution1DCosine.pypp.cpp       |   5 +-
 .../src/FTDistribution1DGate.pypp.cpp         |   5 +-
 .../src/FTDistribution1DGauss.pypp.cpp        |   5 +-
 .../src/FTDistribution1DTriangle.pypp.cpp     |   5 +-
 .../src/FTDistribution1DVoigt.pypp.cpp        |   5 +-
 .../src/FTDistribution2DCauchy.pypp.cpp       |   5 +-
 .../src/FTDistribution2DCone.pypp.cpp         |   5 +-
 .../src/FTDistribution2DGate.pypp.cpp         |   5 +-
 .../src/FTDistribution2DGauss.pypp.cpp        |   5 +-
 .../src/FTDistribution2DVoigt.pypp.cpp        |   5 +-
 Core/PythonAPI/src/FixedBinAxis.pypp.cpp      |   2 +-
 .../src/FormFactorAnisoPyramid.pypp.cpp       |   5 +-
 Core/PythonAPI/src/FormFactorBox.pypp.cpp     |  11 +-
 Core/PythonAPI/src/FormFactorCone.pypp.cpp    |   5 +-
 Core/PythonAPI/src/FormFactorCone6.pypp.cpp   |   5 +-
 Core/PythonAPI/src/FormFactorCrystal.pypp.cpp |   5 +-
 .../src/FormFactorCuboctahedron.pypp.cpp      |   5 +-
 .../PythonAPI/src/FormFactorCylinder.pypp.cpp |   5 +-
 .../FormFactorDecoratorDebyeWaller.pypp.cpp   |   5 +-
 .../FormFactorEllipsoidalCylinder.pypp.cpp    |   8 +-
 .../src/FormFactorFullSphere.pypp.cpp         |   5 +-
 .../src/FormFactorFullSpheroid.pypp.cpp       |   5 +-
 Core/PythonAPI/src/FormFactorGauss.pypp.cpp   |   7 +-
 .../src/FormFactorHemiEllipsoid.pypp.cpp      |   5 +-
 .../src/FormFactorInfLongBox.pypp.cpp         |   8 +-
 .../src/FormFactorInfLongRipple1.pypp.cpp     |   5 +-
 .../src/FormFactorInfLongRipple2.pypp.cpp     |   5 +-
 Core/PythonAPI/src/FormFactorLorentz.pypp.cpp |   7 +-
 Core/PythonAPI/src/FormFactorPrism3.pypp.cpp  |   5 +-
 Core/PythonAPI/src/FormFactorPrism6.pypp.cpp  |   5 +-
 Core/PythonAPI/src/FormFactorPyramid.pypp.cpp |   5 +-
 Core/PythonAPI/src/FormFactorRipple1.pypp.cpp |   5 +-
 Core/PythonAPI/src/FormFactorRipple2.pypp.cpp |   5 +-
 .../FormFactorSphereGaussianRadius.pypp.cpp   |   5 +-
 .../FormFactorSphereLogNormalRadius.pypp.cpp  |   5 +-
 .../FormFactorSphereUniformRadius.pypp.cpp    |   5 +-
 .../src/FormFactorTetrahedron.pypp.cpp        |   5 +-
 Core/PythonAPI/src/FormFactorTrivial.pypp.cpp |   5 +-
 .../src/FormFactorTruncatedCube.pypp.cpp      |   5 +-
 .../src/FormFactorTruncatedSphere.pypp.cpp    |   5 +-
 .../src/FormFactorTruncatedSpheroid.pypp.cpp  |   5 +-
 .../PythonAPI/src/FormFactorWeighted.pypp.cpp |   8 +-
 .../src/HomogeneousMagneticMaterial.pypp.cpp  |  10 +-
 .../src/HomogeneousMaterial.pypp.cpp          |   7 +-
 Core/PythonAPI/src/IAxis.pypp.cpp             |  32 ++-
 Core/PythonAPI/src/ICloneable.pypp.cpp        |   5 +-
 .../src/IClusteredParticles.pypp.cpp          |  20 +-
 Core/PythonAPI/src/ICompositeSample.pypp.cpp  |   8 +-
 .../src/IDetectorResolution.pypp.cpp          |  11 +-
 Core/PythonAPI/src/IDistribution1D.pypp.cpp   |  14 +-
 Core/PythonAPI/src/IFTDistribution1D.pypp.cpp |  17 +-
 Core/PythonAPI/src/IFTDistribution2D.pypp.cpp |  29 ++-
 Core/PythonAPI/src/IFormFactor.pypp.cpp       |  11 +-
 Core/PythonAPI/src/IFormFactorBorn.pypp.cpp   |  11 +-
 .../src/IFormFactorDecorator.pypp.cpp         |  14 +-
 .../src/IInterferenceFunction.pypp.cpp        |  11 +-
 Core/PythonAPI/src/ILayout.pypp.cpp           |  41 ++-
 Core/PythonAPI/src/IMaterial.pypp.cpp         |   2 +-
 Core/PythonAPI/src/IObservable.pypp.cpp       |   2 +-
 Core/PythonAPI/src/IObserver.pypp.cpp         |   2 +-
 Core/PythonAPI/src/IParameterized.pypp.cpp    |  15 +-
 Core/PythonAPI/src/IParticle.pypp.cpp         |  29 ++-
 .../src/IResolutionFunction2D.pypp.cpp        |  11 +-
 Core/PythonAPI/src/IRotation.pypp.cpp         |  20 +-
 Core/PythonAPI/src/ISample.pypp.cpp           |  11 +-
 Core/PythonAPI/src/ISampleBuilder.pypp.cpp    |   5 +-
 Core/PythonAPI/src/ISelectionRule.pypp.cpp    |   8 +-
 Core/PythonAPI/src/Instrument.pypp.cpp        |  46 ++--
 Core/PythonAPI/src/IntensityData.pypp.cpp     |  86 ++++---
 .../src/IntensityDataFunctions.pypp.cpp       |  23 +-
 .../src/IntensityDataIOFactory.pypp.cpp       |  14 +-
 .../InterferenceFunction1DLattice.pypp.cpp    |  14 +-
 .../InterferenceFunction2DLattice.pypp.cpp    |  20 +-
 ...InterferenceFunction2DParaCrystal.pypp.cpp |  38 ++-
 .../src/InterferenceFunctionNone.pypp.cpp     |   5 +-
 ...rferenceFunctionRadialParaCrystal.pypp.cpp |  29 ++-
 Core/PythonAPI/src/Lattice.pypp.cpp           |  21 +-
 .../src/Lattice1DIFParameters.pypp.cpp        |   6 +-
 .../src/Lattice2DIFParameters.pypp.cpp        |  10 +-
 Core/PythonAPI/src/Layer.pypp.cpp             |  27 +-
 Core/PythonAPI/src/LayerInterface.pypp.cpp    |  17 +-
 Core/PythonAPI/src/LayerRoughness.pypp.cpp    |  31 ++-
 Core/PythonAPI/src/MesoCrystal.pypp.cpp       |   5 +-
 Core/PythonAPI/src/MultiLayer.pypp.cpp        |  56 ++--
 Core/PythonAPI/src/OffSpecSimulation.pypp.cpp |  62 +++--
 .../src/ParameterDistribution.pypp.cpp        |  36 ++-
 Core/PythonAPI/src/ParameterPool.pypp.cpp     |  23 +-
 Core/PythonAPI/src/Particle.pypp.cpp          |  17 +-
 .../src/ParticleComposition.pypp.cpp          |  11 +-
 Core/PythonAPI/src/ParticleCoreShell.pypp.cpp |   5 +-
 .../src/ParticleDistribution.pypp.cpp         |  16 +-
 Core/PythonAPI/src/ParticleInfo.pypp.cpp      |  31 ++-
 Core/PythonAPI/src/ParticleLayout.pypp.cpp    |  22 +-
 .../PythonInterface_free_functions.pypp.cpp   |  30 ++-
 Core/PythonAPI/src/PythonModule.cpp           | 222 ++++++++--------
 .../src/RealParameterWrapper.pypp.cpp         |  16 +-
 .../src/ResolutionFunction2DGaussian.pypp.cpp |  11 +-
 Core/PythonAPI/src/RotationEuler.pypp.cpp     |  14 +-
 Core/PythonAPI/src/RotationX.pypp.cpp         |   8 +-
 Core/PythonAPI/src/RotationY.pypp.cpp         |   8 +-
 Core/PythonAPI/src/RotationZ.pypp.cpp         |   8 +-
 .../src/SimpleSelectionRule.pypp.cpp          |   2 +-
 Core/PythonAPI/src/Simulation.pypp.cpp        |  80 ++++--
 .../src/SimulationParameters.pypp.cpp         |   6 +-
 .../PythonAPI/src/SpecularSimulation.pypp.cpp |  54 ++--
 Core/PythonAPI/src/ThreadInfo.pypp.cpp        |  16 +-
 Core/PythonAPI/src/VariableBinAxis.pypp.cpp   |   2 +-
 Core/PythonAPI/src/cvector_t.pypp.cpp         |  49 ++--
 Core/PythonAPI/src/kvector_t.pypp.cpp         |  49 ++--
 Core/PythonAPI/src/vdouble1d_t.pypp.cpp       |   2 +-
 Core/PythonAPI/src/vector_complex_t.pypp.cpp  |   2 +-
 Core/PythonAPI/src/vector_integer_t.pypp.cpp  |   2 +-
 Core/PythonAPI/src/vector_kvector_t.pypp.cpp  |   2 +-
 .../src/vector_longinteger_t.pypp.cpp         |   2 +-
 Doc/Doxygen/Doxyfile                          |   2 +-
 Fit/PythonAPI/src/AttFitting.pypp.cpp         |  14 +-
 Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp   |   4 +-
 Fit/PythonAPI/src/FitObject.pypp.cpp          |  38 ++-
 Fit/PythonAPI/src/FitParameter.pypp.cpp       |   4 +-
 .../src/FitStrategyAdjustMinimizer.pypp.cpp   |   8 +-
 .../src/FitStrategyAdjustParameters.pypp.cpp  |   4 +-
 Fit/PythonAPI/src/FitStrategyDefault.pypp.cpp |   2 +-
 .../src/FitStrategyFixParameters.pypp.cpp     |   4 +-
 .../src/FitStrategyReleaseParameters.pypp.cpp |   4 +-
 Fit/PythonAPI/src/FitSuite.pypp.cpp           |  70 +++--
 Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp    |  56 ++--
 Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp |  56 ++--
 Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp  |  29 ++-
 Fit/PythonAPI/src/IFitStrategy.pypp.cpp       |  10 +-
 Fit/PythonAPI/src/IIntensityFunction.pypp.cpp |   8 +-
 .../src/IIntensityNormalizer.pypp.cpp         |  11 +-
 Fit/PythonAPI/src/IMinimizer.pypp.cpp         |   5 +-
 Fit/PythonAPI/src/INamed.pypp.cpp             |  10 +-
 Fit/PythonAPI/src/ISquaredFunction.pypp.cpp   |  11 +-
 .../src/IntensityFunctionLog.pypp.cpp         |   2 +-
 .../src/IntensityFunctionSqrt.pypp.cpp        |   2 +-
 .../src/IntensityNormalizer.pypp.cpp          |   2 +-
 .../IntensityScaleAndShiftNormalizer.pypp.cpp |   2 +-
 Fit/PythonAPI/src/MinimizerFactory.pypp.cpp   |   8 +-
 Fit/PythonAPI/src/MinimizerOptions.pypp.cpp   |  62 +++--
 Fit/PythonAPI/src/PythonModule.cpp            |  44 ++--
 .../src/SquaredFunctionDefault.pypp.cpp       |   2 +-
 .../src/SquaredFunctionGaussianError.pypp.cpp |   2 +-
 .../SquaredFunctionMeanSquaredError.pypp.cpp  |   2 +-
 .../src/SquaredFunctionSimError.pypp.cpp      |   2 +-
 .../SquaredFunctionSystematicError.pypp.cpp   |   2 +-
 Fit/PythonAPI/src/vector_string_t.pypp.cpp    |   2 +-
 .../FunctionalTests/TestPyCore/isgisaxs06.py  |   4 +-
 dev-tools/python-bindings/utils_build.py      |  15 +-
 dev-tools/python-bindings/utils_docstring.py  | 240 ++++++++++++++++++
 164 files changed, 1835 insertions(+), 969 deletions(-)
 create mode 100644 dev-tools/python-bindings/utils_docstring.py

diff --git a/Core/PythonAPI/src/AttLimits.pypp.cpp b/Core/PythonAPI/src/AttLimits.pypp.cpp
index 9202ef0b3f2..390bf939207 100644
--- a/Core/PythonAPI/src/AttLimits.pypp.cpp
+++ b/Core/PythonAPI/src/AttLimits.pypp.cpp
@@ -30,7 +30,7 @@ void register_AttLimits_class(){
 
     { //::AttLimits
         typedef bp::class_< AttLimits > AttLimits_exposer_t;
-        AttLimits_exposer_t AttLimits_exposer = AttLimits_exposer_t( "AttLimits", bp::init< >() );
+        AttLimits_exposer_t AttLimits_exposer = AttLimits_exposer_t( "AttLimits", "", bp::init< >("") );
         bp::scope AttLimits_scope( AttLimits_exposer );
         { //::AttLimits::fixed
         
@@ -38,7 +38,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "fixed"
-                , fixed_function_type( &::AttLimits::fixed ) );
+                , fixed_function_type( &::AttLimits::fixed )
+                , "    //! Creates a fixed value object" );
         
         }
         { //::AttLimits::getLowerLimit
@@ -47,7 +48,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "getLowerLimit"
-                , getLowerLimit_function_type( &::AttLimits::getLowerLimit ) );
+                , getLowerLimit_function_type( &::AttLimits::getLowerLimit )
+                , "    //! Returns lower limit" );
         
         }
         { //::AttLimits::getUpperLimit
@@ -56,7 +58,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "getUpperLimit"
-                , getUpperLimit_function_type( &::AttLimits::getUpperLimit ) );
+                , getUpperLimit_function_type( &::AttLimits::getUpperLimit )
+                , "    //! Returns upper limit" );
         
         }
         { //::AttLimits::hasLowerAndUpperLimits
@@ -65,7 +68,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "hasLowerAndUpperLimits"
-                , hasLowerAndUpperLimits_function_type( &::AttLimits::hasLowerAndUpperLimits ) );
+                , hasLowerAndUpperLimits_function_type( &::AttLimits::hasLowerAndUpperLimits )
+                , "    //! if has lower and upper limit" );
         
         }
         { //::AttLimits::hasLowerLimit
@@ -74,7 +78,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "hasLowerLimit"
-                , hasLowerLimit_function_type( &::AttLimits::hasLowerLimit ) );
+                , hasLowerLimit_function_type( &::AttLimits::hasLowerLimit )
+                , "    //! if has lower limit" );
         
         }
         { //::AttLimits::hasUpperLimit
@@ -83,7 +88,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "hasUpperLimit"
-                , hasUpperLimit_function_type( &::AttLimits::hasUpperLimit ) );
+                , hasUpperLimit_function_type( &::AttLimits::hasUpperLimit )
+                , "    //! if has upper limit" );
         
         }
         { //::AttLimits::isFixed
@@ -92,7 +98,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "isFixed"
-                , isFixed_function_type( &::AttLimits::isFixed ) );
+                , isFixed_function_type( &::AttLimits::isFixed )
+                , "    //! if object is fixed at some value" );
         
         }
         { //::AttLimits::isInRange
@@ -102,7 +109,8 @@ void register_AttLimits_class(){
             AttLimits_exposer.def( 
                 "isInRange"
                 , isInRange_function_type( &::AttLimits::isInRange )
-                , ( bp::arg("value") ) );
+                , ( bp::arg("value") )
+                , "" );
         
         }
         { //::AttLimits::limited
@@ -112,7 +120,8 @@ void register_AttLimits_class(){
             AttLimits_exposer.def( 
                 "limited"
                 , limited_function_type( &::AttLimits::limited )
-                , ( bp::arg("left_bound_value"), bp::arg("right_bound_value") ) );
+                , ( bp::arg("left_bound_value"), bp::arg("right_bound_value") )
+                , "    //! Creates an object bounded from the left and right" );
         
         }
         { //::AttLimits::limitless
@@ -121,7 +130,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "limitless"
-                , limitless_function_type( &::AttLimits::limitless ) );
+                , limitless_function_type( &::AttLimits::limitless )
+                , "    //! Creates an object withoud bounds (default)" );
         
         }
         { //::AttLimits::lowerLimited
@@ -131,7 +141,8 @@ void register_AttLimits_class(){
             AttLimits_exposer.def( 
                 "lowerLimited"
                 , lowerLimited_function_type( &::AttLimits::lowerLimited )
-                , ( bp::arg("bound_value") ) );
+                , ( bp::arg("bound_value") )
+                , "    //! Creates an object bounded from the left" );
         
         }
         { //::AttLimits::n_positive
@@ -140,7 +151,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "n_positive"
-                , n_positive_function_type( &::AttLimits::n_positive ) );
+                , n_positive_function_type( &::AttLimits::n_positive )
+                , "    //! Creates an object which can have only positive values with 0.0 included" );
         
         }
         AttLimits_exposer.def( bp::self != bp::self );
@@ -151,7 +163,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "positive"
-                , positive_function_type( &::AttLimits::positive ) );
+                , positive_function_type( &::AttLimits::positive )
+                , "    //! Creates an object which can have only positive values (>0.0, zero is not included)" );
         
         }
         { //::AttLimits::removeLimits
@@ -160,7 +173,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "removeLimits"
-                , removeLimits_function_type( &::AttLimits::removeLimits ) );
+                , removeLimits_function_type( &::AttLimits::removeLimits )
+                , "    //! remove limits" );
         
         }
         { //::AttLimits::removeLowerLimit
@@ -169,7 +183,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "removeLowerLimit"
-                , removeLowerLimit_function_type( &::AttLimits::removeLowerLimit ) );
+                , removeLowerLimit_function_type( &::AttLimits::removeLowerLimit )
+                , "    //! remove lower limit" );
         
         }
         { //::AttLimits::removeUpperLimit
@@ -178,7 +193,8 @@ void register_AttLimits_class(){
             
             AttLimits_exposer.def( 
                 "removeUpperLimit"
-                , removeUpperLimit_function_type( &::AttLimits::removeUpperLimit ) );
+                , removeUpperLimit_function_type( &::AttLimits::removeUpperLimit )
+                , "    //! remove upper limit" );
         
         }
         { //::AttLimits::setFixed
@@ -188,7 +204,8 @@ void register_AttLimits_class(){
             AttLimits_exposer.def( 
                 "setFixed"
                 , setFixed_function_type( &::AttLimits::setFixed )
-                , ( bp::arg("is_fixed") ) );
+                , ( bp::arg("is_fixed") )
+                , "    //! Sets object fixed" );
         
         }
         { //::AttLimits::setLimits
@@ -198,7 +215,8 @@ void register_AttLimits_class(){
             AttLimits_exposer.def( 
                 "setLimits"
                 , setLimits_function_type( &::AttLimits::setLimits )
-                , ( bp::arg("xmin"), bp::arg("xmax") ) );
+                , ( bp::arg("xmin"), bp::arg("xmax") )
+                , "    //! Sets lower and upper limits" );
         
         }
         { //::AttLimits::setLowerLimit
@@ -208,7 +226,8 @@ void register_AttLimits_class(){
             AttLimits_exposer.def( 
                 "setLowerLimit"
                 , setLowerLimit_function_type( &::AttLimits::setLowerLimit )
-                , ( bp::arg("value") ) );
+                , ( bp::arg("value") )
+                , "    //! Sets lower limit" );
         
         }
         { //::AttLimits::setUpperLimit
@@ -218,7 +237,8 @@ void register_AttLimits_class(){
             AttLimits_exposer.def( 
                 "setUpperLimit"
                 , setUpperLimit_function_type( &::AttLimits::setUpperLimit )
-                , ( bp::arg("value") ) );
+                , ( bp::arg("value") )
+                , "    //! Sets upper limit" );
         
         }
         { //::AttLimits::upperLimited
@@ -228,7 +248,8 @@ void register_AttLimits_class(){
             AttLimits_exposer.def( 
                 "upperLimited"
                 , upperLimited_function_type( &::AttLimits::upperLimited )
-                , ( bp::arg("bound_value") ) );
+                , ( bp::arg("bound_value") )
+                , "    //! Creates an object bounded from the right" );
         
         }
         AttLimits_exposer.staticmethod( "fixed" );
diff --git a/Core/PythonAPI/src/Beam.pypp.cpp b/Core/PythonAPI/src/Beam.pypp.cpp
index 0fa96928f07..208bc06c547 100644
--- a/Core/PythonAPI/src/Beam.pypp.cpp
+++ b/Core/PythonAPI/src/Beam.pypp.cpp
@@ -141,9 +141,9 @@ void register_Beam_class(){
 
     { //::Beam
         typedef bp::class_< Beam_wrapper, bp::bases< IParameterized > > Beam_exposer_t;
-        Beam_exposer_t Beam_exposer = Beam_exposer_t( "Beam", bp::init< >() );
+        Beam_exposer_t Beam_exposer = Beam_exposer_t( "Beam", "", bp::init< >("") );
         bp::scope Beam_scope( Beam_exposer );
-        Beam_exposer.def( bp::init< Beam const & >(( bp::arg("other") )) );
+        Beam_exposer.def( bp::init< Beam const & >(( bp::arg("other") ), "") );
         { //::Beam::SetSpinUpFraction
         
             typedef void ( ::Beam::*SetSpinUpFraction_function_type)( double ) ;
@@ -151,7 +151,8 @@ void register_Beam_class(){
             Beam_exposer.def( 
                 "SetSpinUpFraction"
                 , SetSpinUpFraction_function_type( &::Beam::SetSpinUpFraction )
-                , ( bp::arg("up_fraction") ) );
+                , ( bp::arg("up_fraction") )
+                , "    //! Sets the polarization density matrix to a value representing\n    //! a mixed ensemble with the given fraction of positive z spin" );
         
         }
         { //::Beam::getAlpha
@@ -160,7 +161,8 @@ void register_Beam_class(){
             
             Beam_exposer.def( 
                 "getAlpha"
-                , getAlpha_function_type( &::Beam::getAlpha ) );
+                , getAlpha_function_type( &::Beam::getAlpha )
+                , "" );
         
         }
         { //::Beam::getCentralK
@@ -169,7 +171,8 @@ void register_Beam_class(){
             
             Beam_exposer.def( 
                 "getCentralK"
-                , getCentralK_function_type( &::Beam::getCentralK ) );
+                , getCentralK_function_type( &::Beam::getCentralK )
+                , "    //! Get the value of the wavevector" );
         
         }
         { //::Beam::getIntensity
@@ -178,7 +181,8 @@ void register_Beam_class(){
             
             Beam_exposer.def( 
                 "getIntensity"
-                , getIntensity_function_type( &::Beam::getIntensity ) );
+                , getIntensity_function_type( &::Beam::getIntensity )
+                , "    //! Gets the beam intensity in neutrons/sec" );
         
         }
         { //::Beam::getPhi
@@ -187,7 +191,8 @@ void register_Beam_class(){
             
             Beam_exposer.def( 
                 "getPhi"
-                , getPhi_function_type( &::Beam::getPhi ) );
+                , getPhi_function_type( &::Beam::getPhi )
+                , "" );
         
         }
         { //::Beam::getWavelength
@@ -196,7 +201,8 @@ void register_Beam_class(){
             
             Beam_exposer.def( 
                 "getWavelength"
-                , getWavelength_function_type( &::Beam::getWavelength ) );
+                , getWavelength_function_type( &::Beam::getWavelength )
+                , "" );
         
         }
         { //::Beam::operator=
@@ -207,7 +213,8 @@ void register_Beam_class(){
                 "assign"
                 , assign_function_type( &::Beam::operator= )
                 , ( bp::arg("other") )
-                , bp::return_self< >() );
+                , bp::return_self< >()
+                , "" );
         
         }
         { //::Beam::setCentralK
@@ -217,7 +224,8 @@ void register_Beam_class(){
             Beam_exposer.def( 
                 "setCentralK"
                 , setCentralK_function_type( &::Beam::setCentralK )
-                , ( bp::arg("wavelength"), bp::arg("alpha_i"), bp::arg("phi_i") ) );
+                , ( bp::arg("wavelength"), bp::arg("alpha_i"), bp::arg("phi_i") )
+                , "    //! Sets the value of the incoming wavevector in terms of wavelength\n    //! and incoming angles" );
         
         }
         { //::Beam::setIntensity
@@ -227,7 +235,8 @@ void register_Beam_class(){
             Beam_exposer.def( 
                 "setIntensity"
                 , setIntensity_function_type( &::Beam::setIntensity )
-                , ( bp::arg("intensity") ) );
+                , ( bp::arg("intensity") )
+                , "    //! Sets the beam intensity in neutrons/sec" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -282,7 +291,8 @@ void register_Beam_class(){
             Beam_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &Beam_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/Bin1D.pypp.cpp b/Core/PythonAPI/src/Bin1D.pypp.cpp
index 648c1aa0631..39f50a466de 100644
--- a/Core/PythonAPI/src/Bin1D.pypp.cpp
+++ b/Core/PythonAPI/src/Bin1D.pypp.cpp
@@ -30,16 +30,17 @@ void register_Bin1D_class(){
 
     { //::Bin1D
         typedef bp::class_< Bin1D > Bin1D_exposer_t;
-        Bin1D_exposer_t Bin1D_exposer = Bin1D_exposer_t( "Bin1D", bp::init< >() );
+        Bin1D_exposer_t Bin1D_exposer = Bin1D_exposer_t( "Bin1D", "", bp::init< >("") );
         bp::scope Bin1D_scope( Bin1D_exposer );
-        Bin1D_exposer.def( bp::init< double, double >(( bp::arg("lower"), bp::arg("upper") )) );
+        Bin1D_exposer.def( bp::init< double, double >(( bp::arg("lower"), bp::arg("upper") ), "") );
         { //::Bin1D::getBinSize
         
             typedef double ( ::Bin1D::*getBinSize_function_type)(  ) const;
             
             Bin1D_exposer.def( 
                 "getBinSize"
-                , getBinSize_function_type( &::Bin1D::getBinSize ) );
+                , getBinSize_function_type( &::Bin1D::getBinSize )
+                , "" );
         
         }
         { //::Bin1D::getMidPoint
@@ -48,11 +49,12 @@ void register_Bin1D_class(){
             
             Bin1D_exposer.def( 
                 "getMidPoint"
-                , getMidPoint_function_type( &::Bin1D::getMidPoint ) );
+                , getMidPoint_function_type( &::Bin1D::getMidPoint )
+                , "" );
         
         }
-        Bin1D_exposer.def_readwrite( "m_lower", &Bin1D::m_lower );
-        Bin1D_exposer.def_readwrite( "m_upper", &Bin1D::m_upper );
+        Bin1D_exposer.def_readwrite( "m_lower", &Bin1D::m_lower, "" );
+        Bin1D_exposer.def_readwrite( "m_upper", &Bin1D::m_upper, "" );
     }
 
 }
diff --git a/Core/PythonAPI/src/Bin1DCVector.pypp.cpp b/Core/PythonAPI/src/Bin1DCVector.pypp.cpp
index 527a49aff71..903b1eb296c 100644
--- a/Core/PythonAPI/src/Bin1DCVector.pypp.cpp
+++ b/Core/PythonAPI/src/Bin1DCVector.pypp.cpp
@@ -30,17 +30,18 @@ void register_Bin1DCVector_class(){
 
     { //::Bin1DCVector
         typedef bp::class_< Bin1DCVector > Bin1DCVector_exposer_t;
-        Bin1DCVector_exposer_t Bin1DCVector_exposer = Bin1DCVector_exposer_t( "Bin1DCVector", bp::init< >() );
+        Bin1DCVector_exposer_t Bin1DCVector_exposer = Bin1DCVector_exposer_t( "Bin1DCVector", "", bp::init< >("") );
         bp::scope Bin1DCVector_scope( Bin1DCVector_exposer );
-        Bin1DCVector_exposer.def( bp::init< cvector_t const &, cvector_t const & >(( bp::arg("lower"), bp::arg("upper") )) );
-        Bin1DCVector_exposer.def( bp::init< double, Bin1D const &, Bin1D const & >(( bp::arg("wavelength"), bp::arg("alpha_bin"), bp::arg("phi_bin") )) );
+        Bin1DCVector_exposer.def( bp::init< cvector_t const &, cvector_t const & >(( bp::arg("lower"), bp::arg("upper") ), "") );
+        Bin1DCVector_exposer.def( bp::init< double, Bin1D const &, Bin1D const & >(( bp::arg("wavelength"), bp::arg("alpha_bin"), bp::arg("phi_bin") ), "") );
         { //::Bin1DCVector::getDelta
         
             typedef ::cvector_t ( ::Bin1DCVector::*getDelta_function_type)(  ) const;
             
             Bin1DCVector_exposer.def( 
                 "getDelta"
-                , getDelta_function_type( &::Bin1DCVector::getDelta ) );
+                , getDelta_function_type( &::Bin1DCVector::getDelta )
+                , "" );
         
         }
         { //::Bin1DCVector::getMidPoint
@@ -49,11 +50,12 @@ void register_Bin1DCVector_class(){
             
             Bin1DCVector_exposer.def( 
                 "getMidPoint"
-                , getMidPoint_function_type( &::Bin1DCVector::getMidPoint ) );
+                , getMidPoint_function_type( &::Bin1DCVector::getMidPoint )
+                , "" );
         
         }
-        Bin1DCVector_exposer.def_readwrite( "m_q_lower", &Bin1DCVector::m_q_lower );
-        Bin1DCVector_exposer.def_readwrite( "m_q_upper", &Bin1DCVector::m_q_upper );
+        Bin1DCVector_exposer.def_readwrite( "m_q_lower", &Bin1DCVector::m_q_lower, "" );
+        Bin1DCVector_exposer.def_readwrite( "m_q_upper", &Bin1DCVector::m_q_upper, "" );
     }
 
 }
diff --git a/Core/PythonAPI/src/ConstKBinAxis.pypp.cpp b/Core/PythonAPI/src/ConstKBinAxis.pypp.cpp
index 6e32a0fb101..4f696be1d15 100644
--- a/Core/PythonAPI/src/ConstKBinAxis.pypp.cpp
+++ b/Core/PythonAPI/src/ConstKBinAxis.pypp.cpp
@@ -175,7 +175,7 @@ void register_ConstKBinAxis_class(){
 
     { //::ConstKBinAxis
         typedef bp::class_< ConstKBinAxis_wrapper, bp::bases< VariableBinAxis >, std::auto_ptr< ConstKBinAxis_wrapper >, boost::noncopyable > ConstKBinAxis_exposer_t;
-        ConstKBinAxis_exposer_t ConstKBinAxis_exposer = ConstKBinAxis_exposer_t( "ConstKBinAxis", bp::init< std::string const &, std::size_t, double, double >(( bp::arg("name"), bp::arg("nbins"), bp::arg("start"), bp::arg("end") )) );
+        ConstKBinAxis_exposer_t ConstKBinAxis_exposer = ConstKBinAxis_exposer_t( "ConstKBinAxis", "", bp::init< std::string const &, std::size_t, double, double >(( bp::arg("name"), bp::arg("nbins"), bp::arg("start"), bp::arg("end") ), "    //! @brief ConstKBinAxis constructor\n    //! @param name Axis name\n    //! @param nbins number of bins\n    //! @param start low edge of first bin\n    //! @param end upper edge of last bin") );
         bp::scope ConstKBinAxis_scope( ConstKBinAxis_exposer );
         { //::ConstKBinAxis::clone
         
diff --git a/Core/PythonAPI/src/Crystal.pypp.cpp b/Core/PythonAPI/src/Crystal.pypp.cpp
index 987b2ac2937..ce69b83eead 100644
--- a/Core/PythonAPI/src/Crystal.pypp.cpp
+++ b/Core/PythonAPI/src/Crystal.pypp.cpp
@@ -304,7 +304,7 @@ void register_Crystal_class(){
 
     { //::Crystal
         typedef bp::class_< Crystal_wrapper, bp::bases< IClusteredParticles >, std::auto_ptr< Crystal_wrapper >, boost::noncopyable > Crystal_exposer_t;
-        Crystal_exposer_t Crystal_exposer = Crystal_exposer_t( "Crystal", bp::init< ParticleComposition const &, Lattice const & >(( bp::arg("lattice_basis"), bp::arg("lattice") )) );
+        Crystal_exposer_t Crystal_exposer = Crystal_exposer_t( "Crystal", "", bp::init< ParticleComposition const &, Lattice const & >(( bp::arg("lattice_basis"), bp::arg("lattice") ), "") );
         bp::scope Crystal_scope( Crystal_exposer );
         { //::Crystal::applyTransformation
         
@@ -374,7 +374,8 @@ void register_Crystal_class(){
             Crystal_exposer.def( 
                 "getLatticeBasis"
                 , getLatticeBasis_function_type( &::Crystal::getLatticeBasis )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::Crystal::getRotation
@@ -384,7 +385,8 @@ void register_Crystal_class(){
             Crystal_exposer.def( 
                 "getRotation"
                 , getRotation_function_type( &::Crystal::getRotation )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Gets transformation" );
         
         }
         { //::Crystal::getTransformedLattice
@@ -393,7 +395,8 @@ void register_Crystal_class(){
             
             Crystal_exposer.def( 
                 "getTransformedLattice"
-                , getTransformedLattice_function_type( &::Crystal::getTransformedLattice ) );
+                , getTransformedLattice_function_type( &::Crystal::getTransformedLattice )
+                , "" );
         
         }
         { //::Crystal::setAmbientMaterial
@@ -415,7 +418,8 @@ void register_Crystal_class(){
             Crystal_exposer.def( 
                 "setDWFactor"
                 , setDWFactor_function_type( &::Crystal::setDWFactor )
-                , ( bp::arg("dw_factor") ) );
+                , ( bp::arg("dw_factor") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -527,7 +531,8 @@ void register_Crystal_class(){
             Crystal_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &Crystal_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/CustomBinAxis.pypp.cpp b/Core/PythonAPI/src/CustomBinAxis.pypp.cpp
index e09a5f08e0f..1388b1d969b 100644
--- a/Core/PythonAPI/src/CustomBinAxis.pypp.cpp
+++ b/Core/PythonAPI/src/CustomBinAxis.pypp.cpp
@@ -175,7 +175,7 @@ void register_CustomBinAxis_class(){
 
     { //::CustomBinAxis
         typedef bp::class_< CustomBinAxis_wrapper, bp::bases< VariableBinAxis >, std::auto_ptr< CustomBinAxis_wrapper >, boost::noncopyable > CustomBinAxis_exposer_t;
-        CustomBinAxis_exposer_t CustomBinAxis_exposer = CustomBinAxis_exposer_t( "CustomBinAxis", bp::init< std::string const &, std::size_t, double, double >(( bp::arg("name"), bp::arg("nbins"), bp::arg("start"), bp::arg("end") )) );
+        CustomBinAxis_exposer_t CustomBinAxis_exposer = CustomBinAxis_exposer_t( "CustomBinAxis", "", bp::init< std::string const &, std::size_t, double, double >(( bp::arg("name"), bp::arg("nbins"), bp::arg("start"), bp::arg("end") ), "    //! @brief CustomBinAxis constructor\n    //! @param name Axis name\n    //! @param nbins number of bins\n    //! @param start center of first bin (IsGisaxs convention)\n    //! @param end center of last bin (IsGisaxs convention)") );
         bp::scope CustomBinAxis_scope( CustomBinAxis_exposer );
         { //::CustomBinAxis::clone
         
diff --git a/Core/PythonAPI/src/Detector.pypp.cpp b/Core/PythonAPI/src/Detector.pypp.cpp
index d33a76c7612..1a130b3373e 100644
--- a/Core/PythonAPI/src/Detector.pypp.cpp
+++ b/Core/PythonAPI/src/Detector.pypp.cpp
@@ -141,16 +141,17 @@ void register_Detector_class(){
 
     { //::Detector
         typedef bp::class_< Detector_wrapper, bp::bases< IParameterized > > Detector_exposer_t;
-        Detector_exposer_t Detector_exposer = Detector_exposer_t( "Detector", bp::init< >() );
+        Detector_exposer_t Detector_exposer = Detector_exposer_t( "Detector", "", bp::init< >("") );
         bp::scope Detector_scope( Detector_exposer );
-        Detector_exposer.def( bp::init< Detector const & >(( bp::arg("other") )) );
+        Detector_exposer.def( bp::init< Detector const & >(( bp::arg("other") ), "") );
         { //::Detector::clear
         
             typedef void ( ::Detector::*clear_function_type)(  ) ;
             
             Detector_exposer.def( 
                 "clear"
-                , clear_function_type( &::Detector::clear ) );
+                , clear_function_type( &::Detector::clear )
+                , "" );
         
         }
         { //::Detector::getAxis
@@ -161,7 +162,8 @@ void register_Detector_class(){
                 "getAxis"
                 , getAxis_function_type( &::Detector::getAxis )
                 , ( bp::arg("index") )
-                , bp::return_value_policy< bp::copy_const_reference >() );
+                , bp::return_value_policy< bp::copy_const_reference >()
+                , "" );
         
         }
         { //::Detector::getDetectorResolutionFunction
@@ -171,7 +173,8 @@ void register_Detector_class(){
             Detector_exposer.def( 
                 "getDetectorResolutionFunction"
                 , getDetectorResolutionFunction_function_type( &::Detector::getDetectorResolutionFunction )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::Detector::getDimension
@@ -180,7 +183,8 @@ void register_Detector_class(){
             
             Detector_exposer.def( 
                 "getDimension"
-                , getDimension_function_type( &::Detector::getDimension ) );
+                , getDimension_function_type( &::Detector::getDimension )
+                , "" );
         
         }
         { //::Detector::operator=
@@ -191,7 +195,8 @@ void register_Detector_class(){
                 "assign"
                 , assign_function_type( &::Detector::operator= )
                 , ( bp::arg("other") )
-                , bp::return_self< >() );
+                , bp::return_self< >()
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -246,7 +251,8 @@ void register_Detector_class(){
             Detector_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &Detector_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/DistributionCosine.pypp.cpp b/Core/PythonAPI/src/DistributionCosine.pypp.cpp
index fd7cfe8ff44..ca8e467611c 100644
--- a/Core/PythonAPI/src/DistributionCosine.pypp.cpp
+++ b/Core/PythonAPI/src/DistributionCosine.pypp.cpp
@@ -210,9 +210,9 @@ void register_DistributionCosine_class(){
 
     { //::DistributionCosine
         typedef bp::class_< DistributionCosine_wrapper, bp::bases< IDistribution1D >, std::auto_ptr< DistributionCosine_wrapper > > DistributionCosine_exposer_t;
-        DistributionCosine_exposer_t DistributionCosine_exposer = DistributionCosine_exposer_t( "DistributionCosine", bp::init< >() );
+        DistributionCosine_exposer_t DistributionCosine_exposer = DistributionCosine_exposer_t( "DistributionCosine", "", bp::init< >("") );
         bp::scope DistributionCosine_scope( DistributionCosine_exposer );
-        DistributionCosine_exposer.def( bp::init< double, double >(( bp::arg("mean"), bp::arg("sigma") )) );
+        DistributionCosine_exposer.def( bp::init< double, double >(( bp::arg("mean"), bp::arg("sigma") ), "") );
         { //::DistributionCosine::clone
         
             typedef ::DistributionCosine * ( ::DistributionCosine::*clone_function_type)(  ) const;
@@ -254,7 +254,8 @@ void register_DistributionCosine_class(){
             
             DistributionCosine_exposer.def( 
                 "getSigma"
-                , getSigma_function_type( &::DistributionCosine::getSigma ) );
+                , getSigma_function_type( &::DistributionCosine::getSigma )
+                , "    //! get the sigma parameter of the distribution" );
         
         }
         { //::DistributionCosine::probabilityDensity
@@ -333,7 +334,8 @@ void register_DistributionCosine_class(){
             DistributionCosine_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &DistributionCosine_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/DistributionGate.pypp.cpp b/Core/PythonAPI/src/DistributionGate.pypp.cpp
index 85edd51d5d1..b8e9c208a27 100644
--- a/Core/PythonAPI/src/DistributionGate.pypp.cpp
+++ b/Core/PythonAPI/src/DistributionGate.pypp.cpp
@@ -210,9 +210,9 @@ void register_DistributionGate_class(){
 
     { //::DistributionGate
         typedef bp::class_< DistributionGate_wrapper, bp::bases< IDistribution1D >, std::auto_ptr< DistributionGate_wrapper > > DistributionGate_exposer_t;
-        DistributionGate_exposer_t DistributionGate_exposer = DistributionGate_exposer_t( "DistributionGate", bp::init< >() );
+        DistributionGate_exposer_t DistributionGate_exposer = DistributionGate_exposer_t( "DistributionGate", "", bp::init< >("") );
         bp::scope DistributionGate_scope( DistributionGate_exposer );
-        DistributionGate_exposer.def( bp::init< double, double >(( bp::arg("min"), bp::arg("max") )) );
+        DistributionGate_exposer.def( bp::init< double, double >(( bp::arg("min"), bp::arg("max") ), "") );
         { //::DistributionGate::clone
         
             typedef ::DistributionGate * ( ::DistributionGate::*clone_function_type)(  ) const;
@@ -243,7 +243,8 @@ void register_DistributionGate_class(){
             
             DistributionGate_exposer.def( 
                 "getMax"
-                , getMax_function_type( &::DistributionGate::getMax ) );
+                , getMax_function_type( &::DistributionGate::getMax )
+                , "    //! get the maximum value of the distribution" );
         
         }
         { //::DistributionGate::getMean
@@ -263,7 +264,8 @@ void register_DistributionGate_class(){
             
             DistributionGate_exposer.def( 
                 "getMin"
-                , getMin_function_type( &::DistributionGate::getMin ) );
+                , getMin_function_type( &::DistributionGate::getMin )
+                , "    //! get the minimum value of the distribution" );
         
         }
         { //::DistributionGate::probabilityDensity
@@ -342,7 +344,8 @@ void register_DistributionGate_class(){
             DistributionGate_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &DistributionGate_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/DistributionGaussian.pypp.cpp b/Core/PythonAPI/src/DistributionGaussian.pypp.cpp
index b0c494c4796..b48c685174b 100644
--- a/Core/PythonAPI/src/DistributionGaussian.pypp.cpp
+++ b/Core/PythonAPI/src/DistributionGaussian.pypp.cpp
@@ -210,9 +210,9 @@ void register_DistributionGaussian_class(){
 
     { //::DistributionGaussian
         typedef bp::class_< DistributionGaussian_wrapper, bp::bases< IDistribution1D >, std::auto_ptr< DistributionGaussian_wrapper > > DistributionGaussian_exposer_t;
-        DistributionGaussian_exposer_t DistributionGaussian_exposer = DistributionGaussian_exposer_t( "DistributionGaussian", bp::init< >() );
+        DistributionGaussian_exposer_t DistributionGaussian_exposer = DistributionGaussian_exposer_t( "DistributionGaussian", "", bp::init< >("") );
         bp::scope DistributionGaussian_scope( DistributionGaussian_exposer );
-        DistributionGaussian_exposer.def( bp::init< double, double >(( bp::arg("mean"), bp::arg("std_dev") )) );
+        DistributionGaussian_exposer.def( bp::init< double, double >(( bp::arg("mean"), bp::arg("std_dev") ), "") );
         { //::DistributionGaussian::clone
         
             typedef ::DistributionGaussian * ( ::DistributionGaussian::*clone_function_type)(  ) const;
@@ -254,7 +254,8 @@ void register_DistributionGaussian_class(){
             
             DistributionGaussian_exposer.def( 
                 "getStdDev"
-                , getStdDev_function_type( &::DistributionGaussian::getStdDev ) );
+                , getStdDev_function_type( &::DistributionGaussian::getStdDev )
+                , "    //! get the standard deviation" );
         
         }
         { //::DistributionGaussian::probabilityDensity
@@ -333,7 +334,8 @@ void register_DistributionGaussian_class(){
             DistributionGaussian_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &DistributionGaussian_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/DistributionLogNormal.pypp.cpp b/Core/PythonAPI/src/DistributionLogNormal.pypp.cpp
index 2438de06512..ea229376590 100644
--- a/Core/PythonAPI/src/DistributionLogNormal.pypp.cpp
+++ b/Core/PythonAPI/src/DistributionLogNormal.pypp.cpp
@@ -210,9 +210,9 @@ void register_DistributionLogNormal_class(){
 
     { //::DistributionLogNormal
         typedef bp::class_< DistributionLogNormal_wrapper, bp::bases< IDistribution1D >, std::auto_ptr< DistributionLogNormal_wrapper > > DistributionLogNormal_exposer_t;
-        DistributionLogNormal_exposer_t DistributionLogNormal_exposer = DistributionLogNormal_exposer_t( "DistributionLogNormal", bp::init< double >(( bp::arg("scale_param") )) );
+        DistributionLogNormal_exposer_t DistributionLogNormal_exposer = DistributionLogNormal_exposer_t( "DistributionLogNormal", "", bp::init< double >(( bp::arg("scale_param") ), "") );
         bp::scope DistributionLogNormal_scope( DistributionLogNormal_exposer );
-        DistributionLogNormal_exposer.def( bp::init< double, double >(( bp::arg("median"), bp::arg("scale_param") )) );
+        DistributionLogNormal_exposer.def( bp::init< double, double >(( bp::arg("median"), bp::arg("scale_param") ), "") );
         { //::DistributionLogNormal::clone
         
             typedef ::DistributionLogNormal * ( ::DistributionLogNormal::*clone_function_type)(  ) const;
@@ -254,7 +254,8 @@ void register_DistributionLogNormal_class(){
             
             DistributionLogNormal_exposer.def( 
                 "getMedian"
-                , getMedian_function_type( &::DistributionLogNormal::getMedian ) );
+                , getMedian_function_type( &::DistributionLogNormal::getMedian )
+                , "    //! get the median of the distribution" );
         
         }
         { //::DistributionLogNormal::getScalePar
@@ -263,7 +264,8 @@ void register_DistributionLogNormal_class(){
             
             DistributionLogNormal_exposer.def( 
                 "getScalePar"
-                , getScalePar_function_type( &::DistributionLogNormal::getScalePar ) );
+                , getScalePar_function_type( &::DistributionLogNormal::getScalePar )
+                , "    //! get the scale parameter of the distribution" );
         
         }
         { //::DistributionLogNormal::probabilityDensity
@@ -342,7 +344,8 @@ void register_DistributionLogNormal_class(){
             DistributionLogNormal_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &DistributionLogNormal_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/DistributionLorentz.pypp.cpp b/Core/PythonAPI/src/DistributionLorentz.pypp.cpp
index 909183b08de..8c8bc280120 100644
--- a/Core/PythonAPI/src/DistributionLorentz.pypp.cpp
+++ b/Core/PythonAPI/src/DistributionLorentz.pypp.cpp
@@ -210,9 +210,9 @@ void register_DistributionLorentz_class(){
 
     { //::DistributionLorentz
         typedef bp::class_< DistributionLorentz_wrapper, bp::bases< IDistribution1D >, std::auto_ptr< DistributionLorentz_wrapper > > DistributionLorentz_exposer_t;
-        DistributionLorentz_exposer_t DistributionLorentz_exposer = DistributionLorentz_exposer_t( "DistributionLorentz", bp::init< >() );
+        DistributionLorentz_exposer_t DistributionLorentz_exposer = DistributionLorentz_exposer_t( "DistributionLorentz", "", bp::init< >("") );
         bp::scope DistributionLorentz_scope( DistributionLorentz_exposer );
-        DistributionLorentz_exposer.def( bp::init< double, double >(( bp::arg("mean"), bp::arg("hwhm") )) );
+        DistributionLorentz_exposer.def( bp::init< double, double >(( bp::arg("mean"), bp::arg("hwhm") ), "") );
         { //::DistributionLorentz::clone
         
             typedef ::DistributionLorentz * ( ::DistributionLorentz::*clone_function_type)(  ) const;
@@ -243,7 +243,8 @@ void register_DistributionLorentz_class(){
             
             DistributionLorentz_exposer.def( 
                 "getHWHM"
-                , getHWHM_function_type( &::DistributionLorentz::getHWHM ) );
+                , getHWHM_function_type( &::DistributionLorentz::getHWHM )
+                , "    //! get the half width at half maximum" );
         
         }
         { //::DistributionLorentz::getMean
@@ -333,7 +334,8 @@ void register_DistributionLorentz_class(){
             DistributionLorentz_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &DistributionLorentz_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution1DCauchy.pypp.cpp b/Core/PythonAPI/src/FTDistribution1DCauchy.pypp.cpp
index 70093e5681b..6c7174076d2 100644
--- a/Core/PythonAPI/src/FTDistribution1DCauchy.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution1DCauchy.pypp.cpp
@@ -167,7 +167,7 @@ void register_FTDistribution1DCauchy_class(){
 
     { //::FTDistribution1DCauchy
         typedef bp::class_< FTDistribution1DCauchy_wrapper, bp::bases< IFTDistribution1D >, std::auto_ptr< FTDistribution1DCauchy_wrapper > > FTDistribution1DCauchy_exposer_t;
-        FTDistribution1DCauchy_exposer_t FTDistribution1DCauchy_exposer = FTDistribution1DCauchy_exposer_t( "FTDistribution1DCauchy", bp::init< double >(( bp::arg("omega") )) );
+        FTDistribution1DCauchy_exposer_t FTDistribution1DCauchy_exposer = FTDistribution1DCauchy_exposer_t( "FTDistribution1DCauchy", "", bp::init< double >(( bp::arg("omega") ), "") );
         bp::scope FTDistribution1DCauchy_scope( FTDistribution1DCauchy_exposer );
         { //::FTDistribution1DCauchy::clone
         
@@ -245,7 +245,8 @@ void register_FTDistribution1DCauchy_class(){
             FTDistribution1DCauchy_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution1DCauchy_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution1DCosine.pypp.cpp b/Core/PythonAPI/src/FTDistribution1DCosine.pypp.cpp
index b9247d17efd..c96dadb554c 100644
--- a/Core/PythonAPI/src/FTDistribution1DCosine.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution1DCosine.pypp.cpp
@@ -167,7 +167,7 @@ void register_FTDistribution1DCosine_class(){
 
     { //::FTDistribution1DCosine
         typedef bp::class_< FTDistribution1DCosine_wrapper, bp::bases< IFTDistribution1D >, std::auto_ptr< FTDistribution1DCosine_wrapper > > FTDistribution1DCosine_exposer_t;
-        FTDistribution1DCosine_exposer_t FTDistribution1DCosine_exposer = FTDistribution1DCosine_exposer_t( "FTDistribution1DCosine", bp::init< double >(( bp::arg("omega") )) );
+        FTDistribution1DCosine_exposer_t FTDistribution1DCosine_exposer = FTDistribution1DCosine_exposer_t( "FTDistribution1DCosine", "", bp::init< double >(( bp::arg("omega") ), "") );
         bp::scope FTDistribution1DCosine_scope( FTDistribution1DCosine_exposer );
         { //::FTDistribution1DCosine::clone
         
@@ -245,7 +245,8 @@ void register_FTDistribution1DCosine_class(){
             FTDistribution1DCosine_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution1DCosine_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution1DGate.pypp.cpp b/Core/PythonAPI/src/FTDistribution1DGate.pypp.cpp
index 5f14bc4dd42..92dc353bd6e 100644
--- a/Core/PythonAPI/src/FTDistribution1DGate.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution1DGate.pypp.cpp
@@ -167,7 +167,7 @@ void register_FTDistribution1DGate_class(){
 
     { //::FTDistribution1DGate
         typedef bp::class_< FTDistribution1DGate_wrapper, bp::bases< IFTDistribution1D >, std::auto_ptr< FTDistribution1DGate_wrapper > > FTDistribution1DGate_exposer_t;
-        FTDistribution1DGate_exposer_t FTDistribution1DGate_exposer = FTDistribution1DGate_exposer_t( "FTDistribution1DGate", bp::init< double >(( bp::arg("omega") )) );
+        FTDistribution1DGate_exposer_t FTDistribution1DGate_exposer = FTDistribution1DGate_exposer_t( "FTDistribution1DGate", "", bp::init< double >(( bp::arg("omega") ), "") );
         bp::scope FTDistribution1DGate_scope( FTDistribution1DGate_exposer );
         { //::FTDistribution1DGate::clone
         
@@ -245,7 +245,8 @@ void register_FTDistribution1DGate_class(){
             FTDistribution1DGate_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution1DGate_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution1DGauss.pypp.cpp b/Core/PythonAPI/src/FTDistribution1DGauss.pypp.cpp
index 3efcd600b4c..f4890efb121 100644
--- a/Core/PythonAPI/src/FTDistribution1DGauss.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution1DGauss.pypp.cpp
@@ -167,7 +167,7 @@ void register_FTDistribution1DGauss_class(){
 
     { //::FTDistribution1DGauss
         typedef bp::class_< FTDistribution1DGauss_wrapper, bp::bases< IFTDistribution1D >, std::auto_ptr< FTDistribution1DGauss_wrapper > > FTDistribution1DGauss_exposer_t;
-        FTDistribution1DGauss_exposer_t FTDistribution1DGauss_exposer = FTDistribution1DGauss_exposer_t( "FTDistribution1DGauss", bp::init< double >(( bp::arg("omega") )) );
+        FTDistribution1DGauss_exposer_t FTDistribution1DGauss_exposer = FTDistribution1DGauss_exposer_t( "FTDistribution1DGauss", "", bp::init< double >(( bp::arg("omega") ), "") );
         bp::scope FTDistribution1DGauss_scope( FTDistribution1DGauss_exposer );
         { //::FTDistribution1DGauss::clone
         
@@ -245,7 +245,8 @@ void register_FTDistribution1DGauss_class(){
             FTDistribution1DGauss_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution1DGauss_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution1DTriangle.pypp.cpp b/Core/PythonAPI/src/FTDistribution1DTriangle.pypp.cpp
index 040fa92a648..11684c35b15 100644
--- a/Core/PythonAPI/src/FTDistribution1DTriangle.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution1DTriangle.pypp.cpp
@@ -167,7 +167,7 @@ void register_FTDistribution1DTriangle_class(){
 
     { //::FTDistribution1DTriangle
         typedef bp::class_< FTDistribution1DTriangle_wrapper, bp::bases< IFTDistribution1D >, std::auto_ptr< FTDistribution1DTriangle_wrapper > > FTDistribution1DTriangle_exposer_t;
-        FTDistribution1DTriangle_exposer_t FTDistribution1DTriangle_exposer = FTDistribution1DTriangle_exposer_t( "FTDistribution1DTriangle", bp::init< double >(( bp::arg("omega") )) );
+        FTDistribution1DTriangle_exposer_t FTDistribution1DTriangle_exposer = FTDistribution1DTriangle_exposer_t( "FTDistribution1DTriangle", "", bp::init< double >(( bp::arg("omega") ), "") );
         bp::scope FTDistribution1DTriangle_scope( FTDistribution1DTriangle_exposer );
         { //::FTDistribution1DTriangle::clone
         
@@ -245,7 +245,8 @@ void register_FTDistribution1DTriangle_class(){
             FTDistribution1DTriangle_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution1DTriangle_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution1DVoigt.pypp.cpp b/Core/PythonAPI/src/FTDistribution1DVoigt.pypp.cpp
index 4cb38dea241..efa54d55c1a 100644
--- a/Core/PythonAPI/src/FTDistribution1DVoigt.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution1DVoigt.pypp.cpp
@@ -179,7 +179,7 @@ void register_FTDistribution1DVoigt_class(){
 
     { //::FTDistribution1DVoigt
         typedef bp::class_< FTDistribution1DVoigt_wrapper, bp::bases< IFTDistribution1D >, std::auto_ptr< FTDistribution1DVoigt_wrapper > > FTDistribution1DVoigt_exposer_t;
-        FTDistribution1DVoigt_exposer_t FTDistribution1DVoigt_exposer = FTDistribution1DVoigt_exposer_t( "FTDistribution1DVoigt", bp::init< double, double >(( bp::arg("omega"), bp::arg("eta") )) );
+        FTDistribution1DVoigt_exposer_t FTDistribution1DVoigt_exposer = FTDistribution1DVoigt_exposer_t( "FTDistribution1DVoigt", "", bp::init< double, double >(( bp::arg("omega"), bp::arg("eta") ), "") );
         bp::scope FTDistribution1DVoigt_scope( FTDistribution1DVoigt_exposer );
         { //::FTDistribution1DVoigt::clone
         
@@ -268,7 +268,8 @@ void register_FTDistribution1DVoigt_class(){
             FTDistribution1DVoigt_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution1DVoigt_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp b/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
index 7c14fa88504..941d62189d2 100644
--- a/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
@@ -179,7 +179,7 @@ void register_FTDistribution2DCauchy_class(){
 
     { //::FTDistribution2DCauchy
         typedef bp::class_< FTDistribution2DCauchy_wrapper, bp::bases< IFTDistribution2D >, std::auto_ptr< FTDistribution2DCauchy_wrapper > > 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("coherence_length_x"), bp::arg("coherence_length_y") ), "") );
         bp::scope FTDistribution2DCauchy_scope( FTDistribution2DCauchy_exposer );
         { //::FTDistribution2DCauchy::clone
         
@@ -269,7 +269,8 @@ void register_FTDistribution2DCauchy_class(){
             FTDistribution2DCauchy_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution2DCauchy_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution2DCone.pypp.cpp b/Core/PythonAPI/src/FTDistribution2DCone.pypp.cpp
index 66f80def38f..e1f15cea11a 100644
--- a/Core/PythonAPI/src/FTDistribution2DCone.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution2DCone.pypp.cpp
@@ -179,7 +179,7 @@ void register_FTDistribution2DCone_class(){
 
     { //::FTDistribution2DCone
         typedef bp::class_< FTDistribution2DCone_wrapper, bp::bases< IFTDistribution2D >, std::auto_ptr< FTDistribution2DCone_wrapper > > FTDistribution2DCone_exposer_t;
-        FTDistribution2DCone_exposer_t FTDistribution2DCone_exposer = FTDistribution2DCone_exposer_t( "FTDistribution2DCone", bp::init< double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y") )) );
+        FTDistribution2DCone_exposer_t FTDistribution2DCone_exposer = FTDistribution2DCone_exposer_t( "FTDistribution2DCone", "", bp::init< double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y") ), "") );
         bp::scope FTDistribution2DCone_scope( FTDistribution2DCone_exposer );
         { //::FTDistribution2DCone::clone
         
@@ -269,7 +269,8 @@ void register_FTDistribution2DCone_class(){
             FTDistribution2DCone_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution2DCone_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution2DGate.pypp.cpp b/Core/PythonAPI/src/FTDistribution2DGate.pypp.cpp
index ef70021fafd..d7f7a0a7493 100644
--- a/Core/PythonAPI/src/FTDistribution2DGate.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution2DGate.pypp.cpp
@@ -179,7 +179,7 @@ void register_FTDistribution2DGate_class(){
 
     { //::FTDistribution2DGate
         typedef bp::class_< FTDistribution2DGate_wrapper, bp::bases< IFTDistribution2D >, std::auto_ptr< FTDistribution2DGate_wrapper > > FTDistribution2DGate_exposer_t;
-        FTDistribution2DGate_exposer_t FTDistribution2DGate_exposer = FTDistribution2DGate_exposer_t( "FTDistribution2DGate", bp::init< double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y") )) );
+        FTDistribution2DGate_exposer_t FTDistribution2DGate_exposer = FTDistribution2DGate_exposer_t( "FTDistribution2DGate", "", bp::init< double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y") ), "") );
         bp::scope FTDistribution2DGate_scope( FTDistribution2DGate_exposer );
         { //::FTDistribution2DGate::clone
         
@@ -269,7 +269,8 @@ void register_FTDistribution2DGate_class(){
             FTDistribution2DGate_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution2DGate_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution2DGauss.pypp.cpp b/Core/PythonAPI/src/FTDistribution2DGauss.pypp.cpp
index ae69f48926e..3be7478c81d 100644
--- a/Core/PythonAPI/src/FTDistribution2DGauss.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution2DGauss.pypp.cpp
@@ -179,7 +179,7 @@ void register_FTDistribution2DGauss_class(){
 
     { //::FTDistribution2DGauss
         typedef bp::class_< FTDistribution2DGauss_wrapper, bp::bases< IFTDistribution2D >, std::auto_ptr< FTDistribution2DGauss_wrapper > > FTDistribution2DGauss_exposer_t;
-        FTDistribution2DGauss_exposer_t FTDistribution2DGauss_exposer = FTDistribution2DGauss_exposer_t( "FTDistribution2DGauss", bp::init< double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y") )) );
+        FTDistribution2DGauss_exposer_t FTDistribution2DGauss_exposer = FTDistribution2DGauss_exposer_t( "FTDistribution2DGauss", "", bp::init< double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y") ), "") );
         bp::scope FTDistribution2DGauss_scope( FTDistribution2DGauss_exposer );
         { //::FTDistribution2DGauss::clone
         
@@ -269,7 +269,8 @@ void register_FTDistribution2DGauss_class(){
             FTDistribution2DGauss_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution2DGauss_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FTDistribution2DVoigt.pypp.cpp b/Core/PythonAPI/src/FTDistribution2DVoigt.pypp.cpp
index 95c634f4e6f..eee281217bd 100644
--- a/Core/PythonAPI/src/FTDistribution2DVoigt.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution2DVoigt.pypp.cpp
@@ -191,7 +191,7 @@ void register_FTDistribution2DVoigt_class(){
 
     { //::FTDistribution2DVoigt
         typedef bp::class_< FTDistribution2DVoigt_wrapper, bp::bases< IFTDistribution2D >, std::auto_ptr< FTDistribution2DVoigt_wrapper > > FTDistribution2DVoigt_exposer_t;
-        FTDistribution2DVoigt_exposer_t FTDistribution2DVoigt_exposer = FTDistribution2DVoigt_exposer_t( "FTDistribution2DVoigt", bp::init< double, double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y"), bp::arg("eta") )) );
+        FTDistribution2DVoigt_exposer_t FTDistribution2DVoigt_exposer = FTDistribution2DVoigt_exposer_t( "FTDistribution2DVoigt", "", bp::init< double, double, double >(( bp::arg("coherence_length_x"), bp::arg("coherence_length_y"), bp::arg("eta") ), "") );
         bp::scope FTDistribution2DVoigt_scope( FTDistribution2DVoigt_exposer );
         { //::FTDistribution2DVoigt::clone
         
@@ -292,7 +292,8 @@ void register_FTDistribution2DVoigt_class(){
             FTDistribution2DVoigt_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FTDistribution2DVoigt_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FixedBinAxis.pypp.cpp b/Core/PythonAPI/src/FixedBinAxis.pypp.cpp
index 02275ca84c4..114df4fe78e 100644
--- a/Core/PythonAPI/src/FixedBinAxis.pypp.cpp
+++ b/Core/PythonAPI/src/FixedBinAxis.pypp.cpp
@@ -187,7 +187,7 @@ void register_FixedBinAxis_class(){
 
     { //::FixedBinAxis
         typedef bp::class_< FixedBinAxis_wrapper, bp::bases< IAxis >, std::auto_ptr< FixedBinAxis_wrapper >, boost::noncopyable > FixedBinAxis_exposer_t;
-        FixedBinAxis_exposer_t FixedBinAxis_exposer = FixedBinAxis_exposer_t( "FixedBinAxis", bp::init< std::string const &, std::size_t, double, double >(( bp::arg("name"), bp::arg("nbins"), bp::arg("start"), bp::arg("end") )) );
+        FixedBinAxis_exposer_t FixedBinAxis_exposer = FixedBinAxis_exposer_t( "FixedBinAxis", "", bp::init< std::string const &, std::size_t, double, double >(( bp::arg("name"), bp::arg("nbins"), bp::arg("start"), bp::arg("end") ), "    //! @brief FixedBinAxis constructor\n    //! @param name Axis name\n    //! @param nbins number of bins\n    //! @param start low edge of first bin\n    //! @param end upper edge of last bin") );
         bp::scope FixedBinAxis_scope( FixedBinAxis_exposer );
         { //::FixedBinAxis::clone
         
diff --git a/Core/PythonAPI/src/FormFactorAnisoPyramid.pypp.cpp b/Core/PythonAPI/src/FormFactorAnisoPyramid.pypp.cpp
index a2805fa3b1b..5617197730d 100644
--- a/Core/PythonAPI/src/FormFactorAnisoPyramid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorAnisoPyramid.pypp.cpp
@@ -412,7 +412,7 @@ void register_FormFactorAnisoPyramid_class(){
 
     { //::FormFactorAnisoPyramid
         typedef bp::class_< FormFactorAnisoPyramid_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorAnisoPyramid_wrapper >, boost::noncopyable > FormFactorAnisoPyramid_exposer_t;
-        FormFactorAnisoPyramid_exposer_t FormFactorAnisoPyramid_exposer = FormFactorAnisoPyramid_exposer_t( "FormFactorAnisoPyramid", bp::init< double, double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height"), bp::arg("alpha") )) );
+        FormFactorAnisoPyramid_exposer_t FormFactorAnisoPyramid_exposer = FormFactorAnisoPyramid_exposer_t( "FormFactorAnisoPyramid", "", bp::init< double, double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height"), bp::arg("alpha") ), "    //! @brief Anisotropic Pyramid constructor\n    //! @param length of Anisotropic Pyramid's base\n    //! @param width of Anisotropic Pyramid's base\n    //! @param height of Anisotropic Pyramid\n    //! @param alpha angle in radians between base and facet") );
         bp::scope FormFactorAnisoPyramid_scope( FormFactorAnisoPyramid_exposer );
         { //::FormFactorAnisoPyramid::clone
         
@@ -696,7 +696,8 @@ void register_FormFactorAnisoPyramid_class(){
             FormFactorAnisoPyramid_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorAnisoPyramid_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorBox.pypp.cpp b/Core/PythonAPI/src/FormFactorBox.pypp.cpp
index 4ec94d907a4..19c401f42fe 100644
--- a/Core/PythonAPI/src/FormFactorBox.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorBox.pypp.cpp
@@ -328,7 +328,7 @@ void register_FormFactorBox_class(){
 
     { //::FormFactorBox
         typedef bp::class_< FormFactorBox_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorBox_wrapper >, boost::noncopyable > FormFactorBox_exposer_t;
-        FormFactorBox_exposer_t FormFactorBox_exposer = FormFactorBox_exposer_t( "FormFactorBox", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") )) );
+        FormFactorBox_exposer_t FormFactorBox_exposer = FormFactorBox_exposer_t( "FormFactorBox", "", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") ), "    //! @brief Box constructor\n    //! @param length of Box's base\n    //! @param width of Box's base\n    //! @param height of Box") );
         bp::scope FormFactorBox_scope( FormFactorBox_exposer );
         { //::FormFactorBox::clone
         
@@ -371,7 +371,8 @@ void register_FormFactorBox_class(){
             
             FormFactorBox_exposer.def( 
                 "getLength"
-                , getLength_function_type( &::FormFactorBox::getLength ) );
+                , getLength_function_type( &::FormFactorBox::getLength )
+                , "    //! Returns length of Box" );
         
         }
         { //::FormFactorBox::getNumberOfStochasticParameters
@@ -402,7 +403,8 @@ void register_FormFactorBox_class(){
             
             FormFactorBox_exposer.def( 
                 "getWidth"
-                , getWidth_function_type( &::FormFactorBox::getWidth ) );
+                , getWidth_function_type( &::FormFactorBox::getWidth )
+                , "    //! Returns width of Box" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -549,7 +551,8 @@ void register_FormFactorBox_class(){
             FormFactorBox_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorBox_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorCone.pypp.cpp b/Core/PythonAPI/src/FormFactorCone.pypp.cpp
index 41cab387fa0..dffda2f2876 100644
--- a/Core/PythonAPI/src/FormFactorCone.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCone.pypp.cpp
@@ -376,7 +376,7 @@ void register_FormFactorCone_class(){
 
     { //::FormFactorCone
         typedef bp::class_< FormFactorCone_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorCone_wrapper >, boost::noncopyable > FormFactorCone_exposer_t;
-        FormFactorCone_exposer_t FormFactorCone_exposer = FormFactorCone_exposer_t( "FormFactorCone", bp::init< double, double, double >(( bp::arg("radius"), bp::arg("height"), bp::arg("alpha") )) );
+        FormFactorCone_exposer_t FormFactorCone_exposer = FormFactorCone_exposer_t( "FormFactorCone", "", bp::init< double, double, double >(( bp::arg("radius"), bp::arg("height"), bp::arg("alpha") ), "    //! @brief Cone constructor\n    //! @param radius of Cone's base\n    //! @param height of Cone\n    //! @param angle in radians between base and facet") );
         bp::scope FormFactorCone_scope( FormFactorCone_exposer );
         { //::FormFactorCone::clone
         
@@ -626,7 +626,8 @@ void register_FormFactorCone_class(){
             FormFactorCone_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorCone_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorCone6.pypp.cpp b/Core/PythonAPI/src/FormFactorCone6.pypp.cpp
index ce2e5804269..ea2a77b3fef 100644
--- a/Core/PythonAPI/src/FormFactorCone6.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCone6.pypp.cpp
@@ -376,7 +376,7 @@ void register_FormFactorCone6_class(){
 
     { //::FormFactorCone6
         typedef bp::class_< FormFactorCone6_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorCone6_wrapper >, boost::noncopyable > FormFactorCone6_exposer_t;
-        FormFactorCone6_exposer_t FormFactorCone6_exposer = FormFactorCone6_exposer_t( "FormFactorCone6", bp::init< double, double, double >(( bp::arg("radius"), bp::arg("height"), bp::arg("alpha") )) );
+        FormFactorCone6_exposer_t FormFactorCone6_exposer = FormFactorCone6_exposer_t( "FormFactorCone6", "", bp::init< double, double, double >(( bp::arg("radius"), bp::arg("height"), bp::arg("alpha") ), "    //! @brief Cone6 constructor\n    //! @param radius of hexagonal base (different from R in IsGisaxs)\n    //! @param height of Cone6\n    //! @param angle in radians between base and facet") );
         bp::scope FormFactorCone6_scope( FormFactorCone6_exposer );
         { //::FormFactorCone6::clone
         
@@ -626,7 +626,8 @@ void register_FormFactorCone6_class(){
             FormFactorCone6_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorCone6_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
index 9988fc04d89..01620485a01 100644
--- a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
@@ -328,7 +328,7 @@ void register_FormFactorCrystal_class(){
 
     { //::FormFactorCrystal
         typedef bp::class_< FormFactorCrystal_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorCrystal_wrapper >, boost::noncopyable > FormFactorCrystal_exposer_t;
-        FormFactorCrystal_exposer_t FormFactorCrystal_exposer = FormFactorCrystal_exposer_t( "FormFactorCrystal", bp::init< Crystal const &, IFormFactor const &, IMaterial const &, complex_t >(( bp::arg("p_crystal"), bp::arg("meso_crystal_form_factor"), bp::arg("p_material"), bp::arg("wavevector_scattering_factor") )) );
+        FormFactorCrystal_exposer_t FormFactorCrystal_exposer = FormFactorCrystal_exposer_t( "FormFactorCrystal", "", bp::init< Crystal const &, IFormFactor const &, IMaterial const &, complex_t >(( bp::arg("p_crystal"), bp::arg("meso_crystal_form_factor"), bp::arg("p_material"), bp::arg("wavevector_scattering_factor") ), "") );
         bp::scope FormFactorCrystal_scope( FormFactorCrystal_exposer );
         { //::FormFactorCrystal::clone
         
@@ -543,7 +543,8 @@ void register_FormFactorCrystal_class(){
             FormFactorCrystal_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorCrystal_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/FormFactorCuboctahedron.pypp.cpp b/Core/PythonAPI/src/FormFactorCuboctahedron.pypp.cpp
index 8134322dc46..accee3d6e0d 100644
--- a/Core/PythonAPI/src/FormFactorCuboctahedron.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCuboctahedron.pypp.cpp
@@ -412,7 +412,7 @@ void register_FormFactorCuboctahedron_class(){
 
     { //::FormFactorCuboctahedron
         typedef bp::class_< FormFactorCuboctahedron_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorCuboctahedron_wrapper >, boost::noncopyable > FormFactorCuboctahedron_exposer_t;
-        FormFactorCuboctahedron_exposer_t FormFactorCuboctahedron_exposer = FormFactorCuboctahedron_exposer_t( "FormFactorCuboctahedron", bp::init< double, double, double, double >(( bp::arg("length"), bp::arg("height"), bp::arg("height_ratio"), bp::arg("alpha") )) );
+        FormFactorCuboctahedron_exposer_t FormFactorCuboctahedron_exposer = FormFactorCuboctahedron_exposer_t( "FormFactorCuboctahedron", "", bp::init< double, double, double, double >(( bp::arg("length"), bp::arg("height"), bp::arg("height_ratio"), bp::arg("alpha") ), "") );
         bp::scope FormFactorCuboctahedron_scope( FormFactorCuboctahedron_exposer );
         { //::FormFactorCuboctahedron::clone
         
@@ -696,7 +696,8 @@ void register_FormFactorCuboctahedron_class(){
             FormFactorCuboctahedron_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorCuboctahedron_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
index 69fffbf5d27..200c489c5c1 100644
--- a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
@@ -352,7 +352,7 @@ void register_FormFactorCylinder_class(){
 
     { //::FormFactorCylinder
         typedef bp::class_< FormFactorCylinder_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorCylinder_wrapper >, boost::noncopyable > FormFactorCylinder_exposer_t;
-        FormFactorCylinder_exposer_t FormFactorCylinder_exposer = FormFactorCylinder_exposer_t( "FormFactorCylinder", bp::init< double, double >(( bp::arg("radius"), bp::arg("height") )) );
+        FormFactorCylinder_exposer_t FormFactorCylinder_exposer = FormFactorCylinder_exposer_t( "FormFactorCylinder", "", bp::init< double, double >(( bp::arg("radius"), bp::arg("height") ), "    //! @brief Cylinder constructor\n    //! @param radius of Cylinder's base\n    //! @param height of Cylinder") );
         bp::scope FormFactorCylinder_scope( FormFactorCylinder_exposer );
         { //::FormFactorCylinder::clone
         
@@ -579,7 +579,8 @@ void register_FormFactorCylinder_class(){
             FormFactorCylinder_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorCylinder_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
index 0e5bff40574..f28b045e35f 100644
--- a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
@@ -316,7 +316,7 @@ void register_FormFactorDecoratorDebyeWaller_class(){
 
     { //::FormFactorDecoratorDebyeWaller
         typedef bp::class_< FormFactorDecoratorDebyeWaller_wrapper, bp::bases< IFormFactorDecorator >, std::auto_ptr< FormFactorDecoratorDebyeWaller_wrapper >, boost::noncopyable > FormFactorDecoratorDebyeWaller_exposer_t;
-        FormFactorDecoratorDebyeWaller_exposer_t FormFactorDecoratorDebyeWaller_exposer = FormFactorDecoratorDebyeWaller_exposer_t( "FormFactorDecoratorDebyeWaller", bp::init< IFormFactor const &, double, double >(( bp::arg("p_form_factor"), bp::arg("dw_h_factor"), bp::arg("dw_r_factor") )) );
+        FormFactorDecoratorDebyeWaller_exposer_t FormFactorDecoratorDebyeWaller_exposer = FormFactorDecoratorDebyeWaller_exposer_t( "FormFactorDecoratorDebyeWaller", "", bp::init< IFormFactor const &, double, double >(( bp::arg("p_form_factor"), bp::arg("dw_h_factor"), bp::arg("dw_r_factor") ), "") );
         bp::scope FormFactorDecoratorDebyeWaller_scope( FormFactorDecoratorDebyeWaller_exposer );
         { //::FormFactorDecoratorDebyeWaller::clone
         
@@ -507,7 +507,8 @@ void register_FormFactorDecoratorDebyeWaller_class(){
             FormFactorDecoratorDebyeWaller_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorDecoratorDebyeWaller_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactorDecorator::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorEllipsoidalCylinder.pypp.cpp b/Core/PythonAPI/src/FormFactorEllipsoidalCylinder.pypp.cpp
index d13de63cc0f..1978afa8735 100644
--- a/Core/PythonAPI/src/FormFactorEllipsoidalCylinder.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorEllipsoidalCylinder.pypp.cpp
@@ -376,7 +376,7 @@ void register_FormFactorEllipsoidalCylinder_class(){
 
     { //::FormFactorEllipsoidalCylinder
         typedef bp::class_< FormFactorEllipsoidalCylinder_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorEllipsoidalCylinder_wrapper >, boost::noncopyable > FormFactorEllipsoidalCylinder_exposer_t;
-        FormFactorEllipsoidalCylinder_exposer_t FormFactorEllipsoidalCylinder_exposer = FormFactorEllipsoidalCylinder_exposer_t( "FormFactorEllipsoidalCylinder", bp::init< double, double, double >(( bp::arg("radius_a"), bp::arg("radius_b"), bp::arg("height") )) );
+        FormFactorEllipsoidalCylinder_exposer_t FormFactorEllipsoidalCylinder_exposer = FormFactorEllipsoidalCylinder_exposer_t( "FormFactorEllipsoidalCylinder", "", bp::init< double, double, double >(( bp::arg("radius_a"), bp::arg("radius_b"), bp::arg("height") ), "") );
         bp::scope FormFactorEllipsoidalCylinder_scope( FormFactorEllipsoidalCylinder_exposer );
         { //::FormFactorEllipsoidalCylinder::clone
         
@@ -430,7 +430,8 @@ void register_FormFactorEllipsoidalCylinder_class(){
             
             FormFactorEllipsoidalCylinder_exposer.def( 
                 "getRadiusA"
-                , getRadiusA_function_type( &::FormFactorEllipsoidalCylinder::getRadiusA ) );
+                , getRadiusA_function_type( &::FormFactorEllipsoidalCylinder::getRadiusA )
+                , "" );
         
         }
         { //::FormFactorEllipsoidalCylinder::getRadiusB
@@ -635,7 +636,8 @@ void register_FormFactorEllipsoidalCylinder_class(){
             FormFactorEllipsoidalCylinder_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorEllipsoidalCylinder_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
index dd2af219acc..8b0d5b082f7 100644
--- a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
@@ -340,7 +340,7 @@ void register_FormFactorFullSphere_class(){
 
     { //::FormFactorFullSphere
         typedef bp::class_< FormFactorFullSphere_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorFullSphere_wrapper >, boost::noncopyable > FormFactorFullSphere_exposer_t;
-        FormFactorFullSphere_exposer_t FormFactorFullSphere_exposer = FormFactorFullSphere_exposer_t( "FormFactorFullSphere", bp::init< double >(( bp::arg("radius") )) );
+        FormFactorFullSphere_exposer_t FormFactorFullSphere_exposer = FormFactorFullSphere_exposer_t( "FormFactorFullSphere", "", bp::init< double >(( bp::arg("radius") ), "    //! @brief Full Sphere constructor\n    //! @param radius of Sphere") );
         bp::scope FormFactorFullSphere_scope( FormFactorFullSphere_exposer );
         { //::FormFactorFullSphere::clone
         
@@ -555,7 +555,8 @@ void register_FormFactorFullSphere_class(){
             FormFactorFullSphere_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorFullSphere_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
index 5de8040d503..b27766bf6af 100644
--- a/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
@@ -328,7 +328,7 @@ void register_FormFactorFullSpheroid_class(){
 
     { //::FormFactorFullSpheroid
         typedef bp::class_< FormFactorFullSpheroid_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorFullSpheroid_wrapper >, boost::noncopyable > FormFactorFullSpheroid_exposer_t;
-        FormFactorFullSpheroid_exposer_t FormFactorFullSpheroid_exposer = FormFactorFullSpheroid_exposer_t( "FormFactorFullSpheroid", bp::init< double, double >(( bp::arg("radius"), bp::arg("height") )) );
+        FormFactorFullSpheroid_exposer_t FormFactorFullSpheroid_exposer = FormFactorFullSpheroid_exposer_t( "FormFactorFullSpheroid", "", bp::init< double, double >(( bp::arg("radius"), bp::arg("height") ), "") );
         bp::scope FormFactorFullSpheroid_scope( FormFactorFullSpheroid_exposer );
         { //::FormFactorFullSpheroid::clone
         
@@ -531,7 +531,8 @@ void register_FormFactorFullSpheroid_class(){
             FormFactorFullSpheroid_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorFullSpheroid_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
index 32506201f3f..86631b06780 100644
--- a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
@@ -335,9 +335,9 @@ void register_FormFactorGauss_class(){
 
     { //::FormFactorGauss
         typedef bp::class_< FormFactorGauss_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorGauss_wrapper >, boost::noncopyable > FormFactorGauss_exposer_t;
-        FormFactorGauss_exposer_t FormFactorGauss_exposer = FormFactorGauss_exposer_t( "FormFactorGauss", bp::init< double >(( bp::arg("volume") )) );
+        FormFactorGauss_exposer_t FormFactorGauss_exposer = FormFactorGauss_exposer_t( "FormFactorGauss", "", bp::init< double >(( bp::arg("volume") ), "") );
         bp::scope FormFactorGauss_scope( FormFactorGauss_exposer );
-        FormFactorGauss_exposer.def( bp::init< double, double >(( bp::arg("width"), bp::arg("height") )) );
+        FormFactorGauss_exposer.def( bp::init< double, double >(( bp::arg("width"), bp::arg("height") ), "") );
         { //::FormFactorGauss::clone
         
             typedef ::FormFactorGauss * ( ::FormFactorGauss::*clone_function_type)(  ) const;
@@ -539,7 +539,8 @@ void register_FormFactorGauss_class(){
             FormFactorGauss_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorGauss_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorHemiEllipsoid.pypp.cpp b/Core/PythonAPI/src/FormFactorHemiEllipsoid.pypp.cpp
index 29a4607ab87..3431b18ca94 100644
--- a/Core/PythonAPI/src/FormFactorHemiEllipsoid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorHemiEllipsoid.pypp.cpp
@@ -352,7 +352,7 @@ void register_FormFactorHemiEllipsoid_class(){
 
     { //::FormFactorHemiEllipsoid
         typedef bp::class_< FormFactorHemiEllipsoid_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorHemiEllipsoid_wrapper >, boost::noncopyable > FormFactorHemiEllipsoid_exposer_t;
-        FormFactorHemiEllipsoid_exposer_t FormFactorHemiEllipsoid_exposer = FormFactorHemiEllipsoid_exposer_t( "FormFactorHemiEllipsoid", bp::init< double, double, double >(( bp::arg("radius_a"), bp::arg("radius_b"), bp::arg("height") )) );
+        FormFactorHemiEllipsoid_exposer_t FormFactorHemiEllipsoid_exposer = FormFactorHemiEllipsoid_exposer_t( "FormFactorHemiEllipsoid", "", bp::init< double, double, double >(( bp::arg("radius_a"), bp::arg("radius_b"), bp::arg("height") ), "") );
         bp::scope FormFactorHemiEllipsoid_scope( FormFactorHemiEllipsoid_exposer );
         { //::FormFactorHemiEllipsoid::clone
         
@@ -577,7 +577,8 @@ void register_FormFactorHemiEllipsoid_class(){
             FormFactorHemiEllipsoid_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorHemiEllipsoid_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorInfLongBox.pypp.cpp b/Core/PythonAPI/src/FormFactorInfLongBox.pypp.cpp
index be9896d9def..1b84272ebbb 100644
--- a/Core/PythonAPI/src/FormFactorInfLongBox.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorInfLongBox.pypp.cpp
@@ -328,7 +328,7 @@ void register_FormFactorInfLongBox_class(){
 
     { //::FormFactorInfLongBox
         typedef bp::class_< FormFactorInfLongBox_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorInfLongBox_wrapper >, boost::noncopyable > FormFactorInfLongBox_exposer_t;
-        FormFactorInfLongBox_exposer_t FormFactorInfLongBox_exposer = FormFactorInfLongBox_exposer_t( "FormFactorInfLongBox", bp::init< double, double >(( bp::arg("width"), bp::arg("height") )) );
+        FormFactorInfLongBox_exposer_t FormFactorInfLongBox_exposer = FormFactorInfLongBox_exposer_t( "FormFactorInfLongBox", "", bp::init< double, double >(( bp::arg("width"), bp::arg("height") ), "") );
         bp::scope FormFactorInfLongBox_scope( FormFactorInfLongBox_exposer );
         { //::FormFactorInfLongBox::clone
         
@@ -416,7 +416,8 @@ void register_FormFactorInfLongBox_class(){
             
             FormFactorInfLongBox_exposer.def( 
                 "getWidth"
-                , getWidth_function_type( &::FormFactorInfLongBox::getWidth ) );
+                , getWidth_function_type( &::FormFactorInfLongBox::getWidth )
+                , "    //! Returns width of Box" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -540,7 +541,8 @@ void register_FormFactorInfLongBox_class(){
             FormFactorInfLongBox_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorInfLongBox_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorInfLongRipple1.pypp.cpp b/Core/PythonAPI/src/FormFactorInfLongRipple1.pypp.cpp
index 9d66ecb3daa..4b6fe34e45c 100644
--- a/Core/PythonAPI/src/FormFactorInfLongRipple1.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorInfLongRipple1.pypp.cpp
@@ -340,7 +340,7 @@ void register_FormFactorInfLongRipple1_class(){
 
     { //::FormFactorInfLongRipple1
         typedef bp::class_< FormFactorInfLongRipple1_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorInfLongRipple1_wrapper >, boost::noncopyable > FormFactorInfLongRipple1_exposer_t;
-        FormFactorInfLongRipple1_exposer_t FormFactorInfLongRipple1_exposer = FormFactorInfLongRipple1_exposer_t( "FormFactorInfLongRipple1", bp::init< double, double >(( bp::arg("width"), bp::arg("height") )) );
+        FormFactorInfLongRipple1_exposer_t FormFactorInfLongRipple1_exposer = FormFactorInfLongRipple1_exposer_t( "FormFactorInfLongRipple1", "", bp::init< double, double >(( bp::arg("width"), bp::arg("height") ), "    //! @brief InfLongRipple1 constructor\n    //! @param width of cosine cross section\n    //! @param height of cosine cross section") );
         bp::scope FormFactorInfLongRipple1_scope( FormFactorInfLongRipple1_exposer );
         { //::FormFactorInfLongRipple1::clone
         
@@ -554,7 +554,8 @@ void register_FormFactorInfLongRipple1_class(){
             FormFactorInfLongRipple1_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorInfLongRipple1_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorInfLongRipple2.pypp.cpp b/Core/PythonAPI/src/FormFactorInfLongRipple2.pypp.cpp
index 5903916a16c..fa1808e8bce 100644
--- a/Core/PythonAPI/src/FormFactorInfLongRipple2.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorInfLongRipple2.pypp.cpp
@@ -352,7 +352,7 @@ void register_FormFactorInfLongRipple2_class(){
 
     { //::FormFactorInfLongRipple2
         typedef bp::class_< FormFactorInfLongRipple2_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorInfLongRipple2_wrapper >, boost::noncopyable > FormFactorInfLongRipple2_exposer_t;
-        FormFactorInfLongRipple2_exposer_t FormFactorInfLongRipple2_exposer = FormFactorInfLongRipple2_exposer_t( "FormFactorInfLongRipple2", bp::init< double, double, double >(( bp::arg("width"), bp::arg("height"), bp::arg("asymetry") )) );
+        FormFactorInfLongRipple2_exposer_t FormFactorInfLongRipple2_exposer = FormFactorInfLongRipple2_exposer_t( "FormFactorInfLongRipple2", "", bp::init< double, double, double >(( bp::arg("width"), bp::arg("height"), bp::arg("asymetry") ), "    //! @brief InfLongRipple2 constructor\n    //! @param width of triangular cross section\n    //! @param height of triangular cross section\n    //! @param asymmetry length of triangular cross section") );
         bp::scope FormFactorInfLongRipple2_scope( FormFactorInfLongRipple2_exposer );
         { //::FormFactorInfLongRipple2::clone
         
@@ -577,7 +577,8 @@ void register_FormFactorInfLongRipple2_class(){
             FormFactorInfLongRipple2_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorInfLongRipple2_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
index 7eb81429638..08b929f8d95 100644
--- a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
@@ -335,9 +335,9 @@ void register_FormFactorLorentz_class(){
 
     { //::FormFactorLorentz
         typedef bp::class_< FormFactorLorentz_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorLorentz_wrapper >, boost::noncopyable > FormFactorLorentz_exposer_t;
-        FormFactorLorentz_exposer_t FormFactorLorentz_exposer = FormFactorLorentz_exposer_t( "FormFactorLorentz", bp::init< double >(( bp::arg("volume") )) );
+        FormFactorLorentz_exposer_t FormFactorLorentz_exposer = FormFactorLorentz_exposer_t( "FormFactorLorentz", "", bp::init< double >(( bp::arg("volume") ), "") );
         bp::scope FormFactorLorentz_scope( FormFactorLorentz_exposer );
-        FormFactorLorentz_exposer.def( bp::init< double, double >(( bp::arg("width"), bp::arg("height") )) );
+        FormFactorLorentz_exposer.def( bp::init< double, double >(( bp::arg("width"), bp::arg("height") ), "") );
         { //::FormFactorLorentz::clone
         
             typedef ::FormFactorLorentz * ( ::FormFactorLorentz::*clone_function_type)(  ) const;
@@ -539,7 +539,8 @@ void register_FormFactorLorentz_class(){
             FormFactorLorentz_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorLorentz_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
index 0e393d21bd5..84c38e23be9 100644
--- a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
@@ -364,7 +364,7 @@ void register_FormFactorPrism3_class(){
 
     { //::FormFactorPrism3
         typedef bp::class_< FormFactorPrism3_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorPrism3_wrapper >, boost::noncopyable > FormFactorPrism3_exposer_t;
-        FormFactorPrism3_exposer_t FormFactorPrism3_exposer = FormFactorPrism3_exposer_t( "FormFactorPrism3", bp::init< double, double >(( bp::arg("length"), bp::arg("height") )) );
+        FormFactorPrism3_exposer_t FormFactorPrism3_exposer = FormFactorPrism3_exposer_t( "FormFactorPrism3", "", bp::init< double, double >(( bp::arg("length"), bp::arg("height") ), "    //! @brief Prism3 constructor\n    //! @param length of a side of Prism3's base\n    //! @param height of Prism3") );
         bp::scope FormFactorPrism3_scope( FormFactorPrism3_exposer );
         { //::FormFactorPrism3::clone
         
@@ -602,7 +602,8 @@ void register_FormFactorPrism3_class(){
             FormFactorPrism3_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorPrism3_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
index 03ea9f80df7..ea27bfb148f 100644
--- a/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
@@ -352,7 +352,7 @@ void register_FormFactorPrism6_class(){
 
     { //::FormFactorPrism6
         typedef bp::class_< FormFactorPrism6_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorPrism6_wrapper >, boost::noncopyable > FormFactorPrism6_exposer_t;
-        FormFactorPrism6_exposer_t FormFactorPrism6_exposer = FormFactorPrism6_exposer_t( "FormFactorPrism6", bp::init< double, double >(( bp::arg("radius"), bp::arg("height") )) );
+        FormFactorPrism6_exposer_t FormFactorPrism6_exposer = FormFactorPrism6_exposer_t( "FormFactorPrism6", "", bp::init< double, double >(( bp::arg("radius"), bp::arg("height") ), "    //! @brief Prism6 constructor\n    //! @param radius of hexagonal base (different from R in IsGisaxs)\n    //! @param height of Prism6") );
         bp::scope FormFactorPrism6_scope( FormFactorPrism6_exposer );
         { //::FormFactorPrism6::clone
         
@@ -579,7 +579,8 @@ void register_FormFactorPrism6_class(){
             FormFactorPrism6_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorPrism6_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
index 180ca4a379a..ee1e8a6968b 100644
--- a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
@@ -388,7 +388,7 @@ void register_FormFactorPyramid_class(){
 
     { //::FormFactorPyramid
         typedef bp::class_< FormFactorPyramid_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorPyramid_wrapper >, boost::noncopyable > FormFactorPyramid_exposer_t;
-        FormFactorPyramid_exposer_t FormFactorPyramid_exposer = FormFactorPyramid_exposer_t( "FormFactorPyramid", bp::init< double, double, double >(( bp::arg("length"), bp::arg("height"), bp::arg("alpha") )) );
+        FormFactorPyramid_exposer_t FormFactorPyramid_exposer = FormFactorPyramid_exposer_t( "FormFactorPyramid", "", bp::init< double, double, double >(( bp::arg("length"), bp::arg("height"), bp::arg("alpha") ), "    //! @brief Pyramid constructor\n    //! @param length of one side of Pyramid's square base\n    //! @param height of Pyramid\n    //! @param angle in radians between base and facet") );
         bp::scope FormFactorPyramid_scope( FormFactorPyramid_exposer );
         { //::FormFactorPyramid::clone
         
@@ -649,7 +649,8 @@ void register_FormFactorPyramid_class(){
             FormFactorPyramid_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorPyramid_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorRipple1.pypp.cpp b/Core/PythonAPI/src/FormFactorRipple1.pypp.cpp
index e6a93eacfb4..357b35f58f0 100644
--- a/Core/PythonAPI/src/FormFactorRipple1.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorRipple1.pypp.cpp
@@ -352,7 +352,7 @@ void register_FormFactorRipple1_class(){
 
     { //::FormFactorRipple1
         typedef bp::class_< FormFactorRipple1_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorRipple1_wrapper >, boost::noncopyable > FormFactorRipple1_exposer_t;
-        FormFactorRipple1_exposer_t FormFactorRipple1_exposer = FormFactorRipple1_exposer_t( "FormFactorRipple1", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") )) );
+        FormFactorRipple1_exposer_t FormFactorRipple1_exposer = FormFactorRipple1_exposer_t( "FormFactorRipple1", "", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") ), "    //! @brief Ripple1 constructor\n    //! @param length of Ripple1\n    //! @param width of cosine cross section\n    //! @param height of cosine cross section") );
         bp::scope FormFactorRipple1_scope( FormFactorRipple1_exposer );
         { //::FormFactorRipple1::clone
         
@@ -577,7 +577,8 @@ void register_FormFactorRipple1_class(){
             FormFactorRipple1_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorRipple1_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorRipple2.pypp.cpp b/Core/PythonAPI/src/FormFactorRipple2.pypp.cpp
index a940c1f197e..b7136d8d1ad 100644
--- a/Core/PythonAPI/src/FormFactorRipple2.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorRipple2.pypp.cpp
@@ -364,7 +364,7 @@ void register_FormFactorRipple2_class(){
 
     { //::FormFactorRipple2
         typedef bp::class_< FormFactorRipple2_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorRipple2_wrapper >, boost::noncopyable > FormFactorRipple2_exposer_t;
-        FormFactorRipple2_exposer_t FormFactorRipple2_exposer = FormFactorRipple2_exposer_t( "FormFactorRipple2", bp::init< double, double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height"), bp::arg("asymetry") )) );
+        FormFactorRipple2_exposer_t FormFactorRipple2_exposer = FormFactorRipple2_exposer_t( "FormFactorRipple2", "", bp::init< double, double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height"), bp::arg("asymetry") ), "    //! @brief Ripple2 constructor\n    //! @param length of Ripple2\n    //! @param width of triangular cross section\n    //! @param height of triangular cross section\n    //! @param asymmetry length of triangular cross section") );
         bp::scope FormFactorRipple2_scope( FormFactorRipple2_exposer );
         { //::FormFactorRipple2::clone
         
@@ -600,7 +600,8 @@ void register_FormFactorRipple2_class(){
             FormFactorRipple2_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorRipple2_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
index a08c8b6f907..57bb3e69423 100644
--- a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
@@ -328,7 +328,7 @@ void register_FormFactorSphereGaussianRadius_class(){
 
     { //::FormFactorSphereGaussianRadius
         typedef bp::class_< FormFactorSphereGaussianRadius_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorSphereGaussianRadius_wrapper >, boost::noncopyable > FormFactorSphereGaussianRadius_exposer_t;
-        FormFactorSphereGaussianRadius_exposer_t FormFactorSphereGaussianRadius_exposer = FormFactorSphereGaussianRadius_exposer_t( "FormFactorSphereGaussianRadius", bp::init< double, double >(( bp::arg("mean"), bp::arg("sigma") )) );
+        FormFactorSphereGaussianRadius_exposer_t FormFactorSphereGaussianRadius_exposer = FormFactorSphereGaussianRadius_exposer_t( "FormFactorSphereGaussianRadius", "", bp::init< double, double >(( bp::arg("mean"), bp::arg("sigma") ), "") );
         bp::scope FormFactorSphereGaussianRadius_scope( FormFactorSphereGaussianRadius_exposer );
         { //::FormFactorSphereGaussianRadius::clone
         
@@ -531,7 +531,8 @@ void register_FormFactorSphereGaussianRadius_class(){
             FormFactorSphereGaussianRadius_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorSphereGaussianRadius_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorSphereLogNormalRadius.pypp.cpp b/Core/PythonAPI/src/FormFactorSphereLogNormalRadius.pypp.cpp
index b3585ff36cd..cb05178767b 100644
--- a/Core/PythonAPI/src/FormFactorSphereLogNormalRadius.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorSphereLogNormalRadius.pypp.cpp
@@ -328,7 +328,7 @@ void register_FormFactorSphereLogNormalRadius_class(){
 
     { //::FormFactorSphereLogNormalRadius
         typedef bp::class_< FormFactorSphereLogNormalRadius_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorSphereLogNormalRadius_wrapper >, boost::noncopyable > FormFactorSphereLogNormalRadius_exposer_t;
-        FormFactorSphereLogNormalRadius_exposer_t FormFactorSphereLogNormalRadius_exposer = FormFactorSphereLogNormalRadius_exposer_t( "FormFactorSphereLogNormalRadius", bp::init< double, double, std::size_t >(( bp::arg("mean"), bp::arg("scale_param"), bp::arg("n_samples") )) );
+        FormFactorSphereLogNormalRadius_exposer_t FormFactorSphereLogNormalRadius_exposer = FormFactorSphereLogNormalRadius_exposer_t( "FormFactorSphereLogNormalRadius", "", bp::init< double, double, std::size_t >(( bp::arg("mean"), bp::arg("scale_param"), bp::arg("n_samples") ), "") );
         bp::scope FormFactorSphereLogNormalRadius_scope( FormFactorSphereLogNormalRadius_exposer );
         { //::FormFactorSphereLogNormalRadius::clone
         
@@ -531,7 +531,8 @@ void register_FormFactorSphereLogNormalRadius_class(){
             FormFactorSphereLogNormalRadius_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorSphereLogNormalRadius_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorSphereUniformRadius.pypp.cpp b/Core/PythonAPI/src/FormFactorSphereUniformRadius.pypp.cpp
index 08958aa4530..b0b9ccd8f5d 100644
--- a/Core/PythonAPI/src/FormFactorSphereUniformRadius.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorSphereUniformRadius.pypp.cpp
@@ -328,7 +328,7 @@ void register_FormFactorSphereUniformRadius_class(){
 
     { //::FormFactorSphereUniformRadius
         typedef bp::class_< FormFactorSphereUniformRadius_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorSphereUniformRadius_wrapper >, boost::noncopyable > FormFactorSphereUniformRadius_exposer_t;
-        FormFactorSphereUniformRadius_exposer_t FormFactorSphereUniformRadius_exposer = FormFactorSphereUniformRadius_exposer_t( "FormFactorSphereUniformRadius", bp::init< double, double >(( bp::arg("mean"), bp::arg("full_width") )) );
+        FormFactorSphereUniformRadius_exposer_t FormFactorSphereUniformRadius_exposer = FormFactorSphereUniformRadius_exposer_t( "FormFactorSphereUniformRadius", "", bp::init< double, double >(( bp::arg("mean"), bp::arg("full_width") ), "") );
         bp::scope FormFactorSphereUniformRadius_scope( FormFactorSphereUniformRadius_exposer );
         { //::FormFactorSphereUniformRadius::clone
         
@@ -531,7 +531,8 @@ void register_FormFactorSphereUniformRadius_class(){
             FormFactorSphereUniformRadius_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorSphereUniformRadius_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorTetrahedron.pypp.cpp b/Core/PythonAPI/src/FormFactorTetrahedron.pypp.cpp
index c4a185ba054..c7422d29eae 100644
--- a/Core/PythonAPI/src/FormFactorTetrahedron.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorTetrahedron.pypp.cpp
@@ -388,7 +388,7 @@ void register_FormFactorTetrahedron_class(){
 
     { //::FormFactorTetrahedron
         typedef bp::class_< FormFactorTetrahedron_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorTetrahedron_wrapper >, boost::noncopyable > FormFactorTetrahedron_exposer_t;
-        FormFactorTetrahedron_exposer_t FormFactorTetrahedron_exposer = FormFactorTetrahedron_exposer_t( "FormFactorTetrahedron", bp::init< double, double, double >(( bp::arg("length"), bp::arg("height"), bp::arg("alpha") )) );
+        FormFactorTetrahedron_exposer_t FormFactorTetrahedron_exposer = FormFactorTetrahedron_exposer_t( "FormFactorTetrahedron", "", bp::init< double, double, double >(( bp::arg("length"), bp::arg("height"), bp::arg("alpha") ), "    //! @brief Tetrahedron constructor\n    //! @param length of a side of Tetrahedron's base\n    //! @param height of Tetrahedron\n    //! @param angle in radians between base and facet") );
         bp::scope FormFactorTetrahedron_scope( FormFactorTetrahedron_exposer );
         { //::FormFactorTetrahedron::clone
         
@@ -649,7 +649,8 @@ void register_FormFactorTetrahedron_class(){
             FormFactorTetrahedron_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorTetrahedron_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorTrivial.pypp.cpp b/Core/PythonAPI/src/FormFactorTrivial.pypp.cpp
index d7c45a1eaf5..e03d569e120 100644
--- a/Core/PythonAPI/src/FormFactorTrivial.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorTrivial.pypp.cpp
@@ -328,7 +328,7 @@ void register_FormFactorTrivial_class(){
 
     { //::FormFactorTrivial
         typedef bp::class_< FormFactorTrivial_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorTrivial_wrapper >, boost::noncopyable > FormFactorTrivial_exposer_t;
-        FormFactorTrivial_exposer_t FormFactorTrivial_exposer = FormFactorTrivial_exposer_t( "FormFactorTrivial", bp::init< >() );
+        FormFactorTrivial_exposer_t FormFactorTrivial_exposer = FormFactorTrivial_exposer_t( "FormFactorTrivial", "", bp::init< >("    //! @brief Cylinder constructor\n    //! @param radius of Cylinder's base\n    //! @param height of Cylinder") );
         bp::scope FormFactorTrivial_scope( FormFactorTrivial_exposer );
         { //::FormFactorTrivial::clone
         
@@ -531,7 +531,8 @@ void register_FormFactorTrivial_class(){
             FormFactorTrivial_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorTrivial_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorTruncatedCube.pypp.cpp b/Core/PythonAPI/src/FormFactorTruncatedCube.pypp.cpp
index c10aeb1d6f8..56fd2ad2635 100644
--- a/Core/PythonAPI/src/FormFactorTruncatedCube.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorTruncatedCube.pypp.cpp
@@ -364,7 +364,7 @@ void register_FormFactorTruncatedCube_class(){
 
     { //::FormFactorTruncatedCube
         typedef bp::class_< FormFactorTruncatedCube_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorTruncatedCube_wrapper >, boost::noncopyable > FormFactorTruncatedCube_exposer_t;
-        FormFactorTruncatedCube_exposer_t FormFactorTruncatedCube_exposer = FormFactorTruncatedCube_exposer_t( "FormFactorTruncatedCube", bp::init< double, double >(( bp::arg("length"), bp::arg("removed_length") )) );
+        FormFactorTruncatedCube_exposer_t FormFactorTruncatedCube_exposer = FormFactorTruncatedCube_exposer_t( "FormFactorTruncatedCube", "", bp::init< double, double >(( bp::arg("length"), bp::arg("removed_length") ), "    //! @brief Truncated cube constructor\n    //! @param side length of the full cube\n    //! @param side length of the trirectangular tetrahedron removed from each vertex of the cube") );
         bp::scope FormFactorTruncatedCube_scope( FormFactorTruncatedCube_exposer );
         { //::FormFactorTruncatedCube::clone
         
@@ -601,7 +601,8 @@ void register_FormFactorTruncatedCube_class(){
             FormFactorTruncatedCube_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorTruncatedCube_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorTruncatedSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorTruncatedSphere.pypp.cpp
index a8c27fa8a29..a54c94fc1ca 100644
--- a/Core/PythonAPI/src/FormFactorTruncatedSphere.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorTruncatedSphere.pypp.cpp
@@ -316,7 +316,7 @@ void register_FormFactorTruncatedSphere_class(){
 
     { //::FormFactorTruncatedSphere
         typedef bp::class_< FormFactorTruncatedSphere_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorTruncatedSphere_wrapper >, boost::noncopyable > FormFactorTruncatedSphere_exposer_t;
-        FormFactorTruncatedSphere_exposer_t FormFactorTruncatedSphere_exposer = FormFactorTruncatedSphere_exposer_t( "FormFactorTruncatedSphere", bp::init< double, double >(( bp::arg("radius"), bp::arg("height") )) );
+        FormFactorTruncatedSphere_exposer_t FormFactorTruncatedSphere_exposer = FormFactorTruncatedSphere_exposer_t( "FormFactorTruncatedSphere", "", bp::init< double, double >(( bp::arg("radius"), bp::arg("height") ), "    //! @brief TruncatedSphere constructor\n    //! @param radius of Truncated Sphere\n    //! @param height of Truncated Sphere") );
         bp::scope FormFactorTruncatedSphere_scope( FormFactorTruncatedSphere_exposer );
         { //::FormFactorTruncatedSphere::clone
         
@@ -507,7 +507,8 @@ void register_FormFactorTruncatedSphere_class(){
             FormFactorTruncatedSphere_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorTruncatedSphere_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorTruncatedSpheroid.pypp.cpp b/Core/PythonAPI/src/FormFactorTruncatedSpheroid.pypp.cpp
index e8d9876b9a6..612b753810b 100644
--- a/Core/PythonAPI/src/FormFactorTruncatedSpheroid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorTruncatedSpheroid.pypp.cpp
@@ -352,7 +352,7 @@ void register_FormFactorTruncatedSpheroid_class(){
 
     { //::FormFactorTruncatedSpheroid
         typedef bp::class_< FormFactorTruncatedSpheroid_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorTruncatedSpheroid_wrapper >, boost::noncopyable > FormFactorTruncatedSpheroid_exposer_t;
-        FormFactorTruncatedSpheroid_exposer_t FormFactorTruncatedSpheroid_exposer = FormFactorTruncatedSpheroid_exposer_t( "FormFactorTruncatedSpheroid", bp::init< double, double, double >(( bp::arg("radius"), bp::arg("height"), bp::arg("height_flattening") )) );
+        FormFactorTruncatedSpheroid_exposer_t FormFactorTruncatedSpheroid_exposer = FormFactorTruncatedSpheroid_exposer_t( "FormFactorTruncatedSpheroid", "", bp::init< double, double, double >(( bp::arg("radius"), bp::arg("height"), bp::arg("height_flattening") ), "") );
         bp::scope FormFactorTruncatedSpheroid_scope( FormFactorTruncatedSpheroid_exposer );
         { //::FormFactorTruncatedSpheroid::clone
         
@@ -577,7 +577,8 @@ void register_FormFactorTruncatedSpheroid_class(){
             FormFactorTruncatedSpheroid_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorTruncatedSpheroid_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/FormFactorWeighted.pypp.cpp b/Core/PythonAPI/src/FormFactorWeighted.pypp.cpp
index e8a4c26728e..bd3090bdf82 100644
--- a/Core/PythonAPI/src/FormFactorWeighted.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorWeighted.pypp.cpp
@@ -316,7 +316,7 @@ void register_FormFactorWeighted_class(){
 
     { //::FormFactorWeighted
         typedef bp::class_< FormFactorWeighted_wrapper, bp::bases< IFormFactor >, std::auto_ptr< FormFactorWeighted_wrapper >, boost::noncopyable > FormFactorWeighted_exposer_t;
-        FormFactorWeighted_exposer_t FormFactorWeighted_exposer = FormFactorWeighted_exposer_t( "FormFactorWeighted", bp::init< >() );
+        FormFactorWeighted_exposer_t FormFactorWeighted_exposer = FormFactorWeighted_exposer_t( "FormFactorWeighted", "", bp::init< >("") );
         bp::scope FormFactorWeighted_scope( FormFactorWeighted_exposer );
         { //::FormFactorWeighted::addFormFactor
         
@@ -325,7 +325,8 @@ void register_FormFactorWeighted_class(){
             FormFactorWeighted_exposer.def( 
                 "addFormFactor"
                 , addFormFactor_function_type( &::FormFactorWeighted::addFormFactor )
-                , ( bp::arg("form_factor"), bp::arg("weight")=1.0e+0 ) );
+                , ( bp::arg("form_factor"), bp::arg("weight")=1.0e+0 )
+                , "" );
         
         }
         { //::FormFactorWeighted::clone
@@ -529,7 +530,8 @@ void register_FormFactorWeighted_class(){
             FormFactorWeighted_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &FormFactorWeighted_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/HomogeneousMagneticMaterial.pypp.cpp b/Core/PythonAPI/src/HomogeneousMagneticMaterial.pypp.cpp
index f0c994415ec..22735709575 100644
--- a/Core/PythonAPI/src/HomogeneousMagneticMaterial.pypp.cpp
+++ b/Core/PythonAPI/src/HomogeneousMagneticMaterial.pypp.cpp
@@ -105,9 +105,9 @@ void register_HomogeneousMagneticMaterial_class(){
 
     { //::HomogeneousMagneticMaterial
         typedef bp::class_< HomogeneousMagneticMaterial_wrapper, bp::bases< HomogeneousMaterial >, std::auto_ptr< HomogeneousMagneticMaterial_wrapper > > HomogeneousMagneticMaterial_exposer_t;
-        HomogeneousMagneticMaterial_exposer_t HomogeneousMagneticMaterial_exposer = HomogeneousMagneticMaterial_exposer_t( "HomogeneousMagneticMaterial", bp::init< std::string const &, complex_t const &, kvector_t const & >(( bp::arg("name"), bp::arg("refractive_index"), bp::arg("magnetic_field") )) );
+        HomogeneousMagneticMaterial_exposer_t HomogeneousMagneticMaterial_exposer = HomogeneousMagneticMaterial_exposer_t( "HomogeneousMagneticMaterial", "", bp::init< std::string const &, complex_t const &, kvector_t const & >(( bp::arg("name"), bp::arg("refractive_index"), bp::arg("magnetic_field") ), "") );
         bp::scope HomogeneousMagneticMaterial_scope( HomogeneousMagneticMaterial_exposer );
-        HomogeneousMagneticMaterial_exposer.def( bp::init< std::string const &, double, double, kvector_t const & >(( bp::arg("name"), bp::arg("refractive_index_delta"), bp::arg("refractive_index_beta"), bp::arg("magnetic_field") )) );
+        HomogeneousMagneticMaterial_exposer.def( bp::init< std::string const &, double, double, kvector_t const & >(( bp::arg("name"), bp::arg("refractive_index_delta"), bp::arg("refractive_index_beta"), bp::arg("magnetic_field") ), "") );
         { //::HomogeneousMagneticMaterial::clone
         
             typedef ::HomogeneousMagneticMaterial * ( ::HomogeneousMagneticMaterial::*clone_function_type)(  ) const;
@@ -139,7 +139,8 @@ void register_HomogeneousMagneticMaterial_class(){
             
             HomogeneousMagneticMaterial_exposer.def( 
                 "getMagneticField"
-                , getMagneticField_function_type( &::HomogeneousMagneticMaterial::getMagneticField ) );
+                , getMagneticField_function_type( &::HomogeneousMagneticMaterial::getMagneticField )
+                , "    //! Get the magnetic field (in Tesla)" );
         
         }
         { //::HomogeneousMagneticMaterial::isScalarMaterial
@@ -160,7 +161,8 @@ void register_HomogeneousMagneticMaterial_class(){
             HomogeneousMagneticMaterial_exposer.def( 
                 "setMagneticField"
                 , setMagneticField_function_type( &::HomogeneousMagneticMaterial::setMagneticField )
-                , ( bp::arg("magnetic_field") ) );
+                , ( bp::arg("magnetic_field") )
+                , "    //! Set the magnetic field (in Tesla)" );
         
         }
         { //::HomogeneousMaterial::getRefractiveIndex
diff --git a/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp b/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp
index b4b164c0105..3659ee1afc1 100644
--- a/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp
+++ b/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp
@@ -105,9 +105,9 @@ void register_HomogeneousMaterial_class(){
 
     { //::HomogeneousMaterial
         typedef bp::class_< HomogeneousMaterial_wrapper, bp::bases< IMaterial >, std::auto_ptr< HomogeneousMaterial_wrapper > > HomogeneousMaterial_exposer_t;
-        HomogeneousMaterial_exposer_t HomogeneousMaterial_exposer = HomogeneousMaterial_exposer_t( "HomogeneousMaterial", bp::init< std::string const &, complex_t const & >(( bp::arg("name"), bp::arg("refractive_index") )) );
+        HomogeneousMaterial_exposer_t HomogeneousMaterial_exposer = HomogeneousMaterial_exposer_t( "HomogeneousMaterial", "", bp::init< std::string const &, complex_t const & >(( bp::arg("name"), bp::arg("refractive_index") ), "    //! Constructs a material with _name_ and _refractive_index_.") );
         bp::scope HomogeneousMaterial_scope( HomogeneousMaterial_exposer );
-        HomogeneousMaterial_exposer.def( bp::init< std::string const &, double, double >(( bp::arg("name"), bp::arg("refractive_index_delta"), bp::arg("refractive_index_beta") )) );
+        HomogeneousMaterial_exposer.def( bp::init< std::string const &, double, double >(( bp::arg("name"), bp::arg("refractive_index_delta"), bp::arg("refractive_index_beta") ), "") );
         { //::HomogeneousMaterial::clone
         
             typedef ::HomogeneousMaterial * ( ::HomogeneousMaterial::*clone_function_type)(  ) const;
@@ -151,7 +151,8 @@ void register_HomogeneousMaterial_class(){
             HomogeneousMaterial_exposer.def( 
                 "setRefractiveIndex"
                 , setRefractiveIndex_function_type( &::HomogeneousMaterial::setRefractiveIndex )
-                , ( bp::arg("refractive_index") ) );
+                , ( bp::arg("refractive_index") )
+                , "    //! Set refractive index." );
         
         }
         { //::IMaterial::isScalarMaterial
diff --git a/Core/PythonAPI/src/IAxis.pypp.cpp b/Core/PythonAPI/src/IAxis.pypp.cpp
index 4fbab38f537..17c4b62c7af 100644
--- a/Core/PythonAPI/src/IAxis.pypp.cpp
+++ b/Core/PythonAPI/src/IAxis.pypp.cpp
@@ -143,7 +143,7 @@ void register_IAxis_class(){
 
     { //::IAxis
         typedef bp::class_< IAxis_wrapper, std::auto_ptr< IAxis_wrapper >, boost::noncopyable > IAxis_exposer_t;
-        IAxis_exposer_t IAxis_exposer = IAxis_exposer_t( "IAxis", bp::init< std::string const & >(( bp::arg("name") )) );
+        IAxis_exposer_t IAxis_exposer = IAxis_exposer_t( "IAxis", "", bp::init< std::string const & >(( bp::arg("name") ), "    //! constructors") );
         bp::scope IAxis_scope( IAxis_exposer );
         { //::IAxis::clone
         
@@ -152,7 +152,8 @@ void register_IAxis_class(){
             IAxis_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IAxis::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! clone function" );
         
         }
         { //::IAxis::contains
@@ -199,7 +200,8 @@ void register_IAxis_class(){
             IAxis_exposer.def( 
                 "findClosestIndex"
                 , bp::pure_virtual( findClosestIndex_function_type(&::IAxis::findClosestIndex) )
-                , ( bp::arg("value") ) );
+                , ( bp::arg("value") )
+                , "    //! find bin index which is best match for given value" );
         
         }
         { //::IAxis::getBin
@@ -209,7 +211,8 @@ void register_IAxis_class(){
             IAxis_exposer.def( 
                 "getBin"
                 , bp::pure_virtual( getBin_function_type(&::IAxis::getBin) )
-                , ( bp::arg("index") ) );
+                , ( bp::arg("index") )
+                , "    //! retrieve a 1d bin for the given index" );
         
         }
         { //::IAxis::getBinBoundaries
@@ -240,7 +243,8 @@ void register_IAxis_class(){
             
             IAxis_exposer.def( 
                 "getMax"
-                , bp::pure_virtual( getMax_function_type(&::IAxis::getMax) ) );
+                , bp::pure_virtual( getMax_function_type(&::IAxis::getMax) )
+                , "    //! Returns value of last point of axis" );
         
         }
         { //::IAxis::getMin
@@ -249,7 +253,8 @@ void register_IAxis_class(){
             
             IAxis_exposer.def( 
                 "getMin"
-                , bp::pure_virtual( getMin_function_type(&::IAxis::getMin) ) );
+                , bp::pure_virtual( getMin_function_type(&::IAxis::getMin) )
+                , "    //! Returns value of first point of axis" );
         
         }
         { //::IAxis::getName
@@ -258,7 +263,8 @@ void register_IAxis_class(){
             
             IAxis_exposer.def( 
                 "getName"
-                , getName_function_type( &::IAxis::getName ) );
+                , getName_function_type( &::IAxis::getName )
+                , "    //! retrieve the label of the axis" );
         
         }
         { //::IAxis::getSize
@@ -267,7 +273,8 @@ void register_IAxis_class(){
             
             IAxis_exposer.def( 
                 "getSize"
-                , bp::pure_virtual( getSize_function_type(&::IAxis::getSize) ) );
+                , bp::pure_virtual( getSize_function_type(&::IAxis::getSize) )
+                , "    //! retrieve the number of bins" );
         
         }
         { //::IAxis::operator[]
@@ -277,7 +284,8 @@ void register_IAxis_class(){
             IAxis_exposer.def( 
                 "__getitem__"
                 , bp::pure_virtual( __getitem___function_type(&::IAxis::operator[]) )
-                , ( bp::arg("index") ) );
+                , ( bp::arg("index") )
+                , "    //! indexed accessor retrieves a sample" );
         
         }
         { //::IAxis::print
@@ -287,7 +295,8 @@ void register_IAxis_class(){
             IAxis_exposer.def( 
                 "print"
                 , print_function_type( &IAxis_wrapper::print )
-                , ( bp::arg("ostr") ) );
+                , ( bp::arg("ostr") )
+                , "" );
         
         }
         { //::IAxis::setName
@@ -297,7 +306,8 @@ void register_IAxis_class(){
             IAxis_exposer.def( 
                 "setName"
                 , setName_function_type( &::IAxis::setName )
-                , ( bp::arg("name") ) );
+                , ( bp::arg("name") )
+                , "    //! Sets the axis label" );
         
         }
         IAxis_exposer.def( bp::self != bp::self );
diff --git a/Core/PythonAPI/src/ICloneable.pypp.cpp b/Core/PythonAPI/src/ICloneable.pypp.cpp
index d8c0a8dcc12..d350c2fccc8 100644
--- a/Core/PythonAPI/src/ICloneable.pypp.cpp
+++ b/Core/PythonAPI/src/ICloneable.pypp.cpp
@@ -72,7 +72,7 @@ void register_ICloneable_class(){
 
     { //::ICloneable
         typedef bp::class_< ICloneable_wrapper, std::auto_ptr< ICloneable_wrapper >, boost::noncopyable > ICloneable_exposer_t;
-        ICloneable_exposer_t ICloneable_exposer = ICloneable_exposer_t( "ICloneable", bp::init< >() );
+        ICloneable_exposer_t ICloneable_exposer = ICloneable_exposer_t( "ICloneable", "", bp::init< >("") );
         bp::scope ICloneable_scope( ICloneable_exposer );
         { //::ICloneable::clone
         
@@ -81,7 +81,8 @@ void register_ICloneable_class(){
             ICloneable_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::ICloneable::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::ICloneable::transferToCPP
diff --git a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
index 6db7df53d01..946de3b4bc4 100644
--- a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
+++ b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
@@ -281,7 +281,7 @@ void register_IClusteredParticles_class(){
 
     { //::IClusteredParticles
         typedef bp::class_< IClusteredParticles_wrapper, bp::bases< ICompositeSample >, std::auto_ptr< IClusteredParticles_wrapper >, boost::noncopyable > IClusteredParticles_exposer_t;
-        IClusteredParticles_exposer_t IClusteredParticles_exposer = IClusteredParticles_exposer_t( "IClusteredParticles", bp::init< >() );
+        IClusteredParticles_exposer_t IClusteredParticles_exposer = IClusteredParticles_exposer_t( "IClusteredParticles", "", bp::init< >("") );
         bp::scope IClusteredParticles_scope( IClusteredParticles_exposer );
         { //::IClusteredParticles::accept
         
@@ -290,7 +290,8 @@ void register_IClusteredParticles_class(){
             IClusteredParticles_exposer.def( 
                 "accept"
                 , bp::pure_virtual( accept_function_type(&::IClusteredParticles::accept) )
-                , ( bp::arg("visitor") ) );
+                , ( bp::arg("visitor") )
+                , "    //! calls the ISampleVisitor's visit method" );
         
         }
         { //::IClusteredParticles::applyTransformation
@@ -312,7 +313,8 @@ void register_IClusteredParticles_class(){
             IClusteredParticles_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IClusteredParticles::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! clone method to allow for polymorphic copying" );
         
         }
         { //::IClusteredParticles::cloneInvertB
@@ -322,7 +324,8 @@ void register_IClusteredParticles_class(){
             IClusteredParticles_exposer.def( 
                 "cloneInvertB"
                 , bp::pure_virtual( cloneInvertB_function_type(&::IClusteredParticles::cloneInvertB) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns a clone with inverted magnetic fields" );
         
         }
         { //::IClusteredParticles::createTotalFormFactor
@@ -345,7 +348,8 @@ void register_IClusteredParticles_class(){
             IClusteredParticles_exposer.def( 
                 "getAmbientMaterial"
                 , bp::pure_virtual( getAmbientMaterial_function_type(&::IClusteredParticles::getAmbientMaterial) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::IClusteredParticles::setAmbientMaterial
@@ -355,7 +359,8 @@ void register_IClusteredParticles_class(){
             IClusteredParticles_exposer.def( 
                 "setAmbientMaterial"
                 , bp::pure_virtual( setAmbientMaterial_function_type(&::IClusteredParticles::setAmbientMaterial) )
-                , ( bp::arg("material") ) );
+                , ( bp::arg("material") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -467,7 +472,8 @@ void register_IClusteredParticles_class(){
             IClusteredParticles_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IClusteredParticles_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ICompositeSample.pypp.cpp b/Core/PythonAPI/src/ICompositeSample.pypp.cpp
index 4a277307973..b4078a44afc 100644
--- a/Core/PythonAPI/src/ICompositeSample.pypp.cpp
+++ b/Core/PythonAPI/src/ICompositeSample.pypp.cpp
@@ -249,7 +249,7 @@ void register_ICompositeSample_class(){
 
     { //::ICompositeSample
         typedef bp::class_< ICompositeSample_wrapper, bp::bases< ISample >, std::auto_ptr< ICompositeSample_wrapper >, boost::noncopyable > ICompositeSample_exposer_t;
-        ICompositeSample_exposer_t ICompositeSample_exposer = ICompositeSample_exposer_t( "ICompositeSample", bp::init< >() );
+        ICompositeSample_exposer_t ICompositeSample_exposer = ICompositeSample_exposer_t( "ICompositeSample", "", bp::init< >("") );
         bp::scope ICompositeSample_scope( ICompositeSample_exposer );
         { //::ICompositeSample::clone
         
@@ -258,7 +258,8 @@ void register_ICompositeSample_class(){
             ICompositeSample_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::ICompositeSample::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::ICompositeSample::getCompositeSample
@@ -393,7 +394,8 @@ void register_ICompositeSample_class(){
             ICompositeSample_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ICompositeSample_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IDetectorResolution.pypp.cpp b/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
index e94ec2c02a6..d5e755d039f 100644
--- a/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
+++ b/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
@@ -170,7 +170,7 @@ void register_IDetectorResolution_class(){
 
     { //::IDetectorResolution
         typedef bp::class_< IDetectorResolution_wrapper, bp::bases< ICloneable, IParameterized >, std::auto_ptr< IDetectorResolution_wrapper >, boost::noncopyable > IDetectorResolution_exposer_t;
-        IDetectorResolution_exposer_t IDetectorResolution_exposer = IDetectorResolution_exposer_t( "IDetectorResolution" );
+        IDetectorResolution_exposer_t IDetectorResolution_exposer = IDetectorResolution_exposer_t( "IDetectorResolution", "" );
         bp::scope IDetectorResolution_scope( IDetectorResolution_exposer );
         { //::IDetectorResolution::applyDetectorResolution
         
@@ -179,7 +179,8 @@ void register_IDetectorResolution_class(){
             IDetectorResolution_exposer.def( 
                 "applyDetectorResolution"
                 , bp::pure_virtual( applyDetectorResolution_function_type(&::IDetectorResolution::applyDetectorResolution) )
-                , ( bp::arg("p_intensity_map") ) );
+                , ( bp::arg("p_intensity_map") )
+                , "    //! Apply the resolution function to the intensity data" );
         
         }
         { //::IDetectorResolution::clone
@@ -189,7 +190,8 @@ void register_IDetectorResolution_class(){
             IDetectorResolution_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IDetectorResolution::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -244,7 +246,8 @@ void register_IDetectorResolution_class(){
             IDetectorResolution_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IDetectorResolution_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IDistribution1D.pypp.cpp b/Core/PythonAPI/src/IDistribution1D.pypp.cpp
index 20f8fc80262..424de4e97fd 100644
--- a/Core/PythonAPI/src/IDistribution1D.pypp.cpp
+++ b/Core/PythonAPI/src/IDistribution1D.pypp.cpp
@@ -175,7 +175,7 @@ void register_IDistribution1D_class(){
 
     { //::IDistribution1D
         typedef bp::class_< IDistribution1D_wrapper, bp::bases< IParameterized >, std::auto_ptr< IDistribution1D_wrapper >, boost::noncopyable > IDistribution1D_exposer_t;
-        IDistribution1D_exposer_t IDistribution1D_exposer = IDistribution1D_exposer_t( "IDistribution1D", bp::init< >() );
+        IDistribution1D_exposer_t IDistribution1D_exposer = IDistribution1D_exposer_t( "IDistribution1D", "", bp::init< >("") );
         bp::scope IDistribution1D_scope( IDistribution1D_exposer );
         { //::IDistribution1D::clone
         
@@ -196,7 +196,8 @@ void register_IDistribution1D_class(){
             IDistribution1D_exposer.def( 
                 "generateValueList"
                 , bp::pure_virtual( generateValueList_function_type(&::IDistribution1D::generateValueList) )
-                , ( bp::arg("nbr_samples"), bp::arg("sigma_factor"), bp::arg("limits")=::AttLimits( ) ) );
+                , ( bp::arg("nbr_samples"), bp::arg("sigma_factor"), bp::arg("limits")=::AttLimits( ) )
+                , "" );
         
         }
         { //::IDistribution1D::generateValues
@@ -217,7 +218,8 @@ void register_IDistribution1D_class(){
             
             IDistribution1D_exposer.def( 
                 "getMean"
-                , bp::pure_virtual( getMean_function_type(&::IDistribution1D::getMean) ) );
+                , bp::pure_virtual( getMean_function_type(&::IDistribution1D::getMean) )
+                , "    //! get the mean of the distribution" );
         
         }
         { //::IDistribution1D::probabilityDensity
@@ -227,7 +229,8 @@ void register_IDistribution1D_class(){
             IDistribution1D_exposer.def( 
                 "probabilityDensity"
                 , bp::pure_virtual( probabilityDensity_function_type(&::IDistribution1D::probabilityDensity) )
-                , ( bp::arg("x") ) );
+                , ( bp::arg("x") )
+                , "    //! get the probability density for value x" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -282,7 +285,8 @@ void register_IDistribution1D_class(){
             IDistribution1D_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IDistribution1D_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IFTDistribution1D.pypp.cpp b/Core/PythonAPI/src/IFTDistribution1D.pypp.cpp
index bd866fb3d41..bceb8ac21a4 100644
--- a/Core/PythonAPI/src/IFTDistribution1D.pypp.cpp
+++ b/Core/PythonAPI/src/IFTDistribution1D.pypp.cpp
@@ -146,7 +146,7 @@ void register_IFTDistribution1D_class(){
 
     { //::IFTDistribution1D
         typedef bp::class_< IFTDistribution1D_wrapper, bp::bases< IParameterized >, std::auto_ptr< IFTDistribution1D_wrapper >, boost::noncopyable > IFTDistribution1D_exposer_t;
-        IFTDistribution1D_exposer_t IFTDistribution1D_exposer = IFTDistribution1D_exposer_t( "IFTDistribution1D", bp::init< double >(( bp::arg("omega") )) );
+        IFTDistribution1D_exposer_t IFTDistribution1D_exposer = IFTDistribution1D_exposer_t( "IFTDistribution1D", "", bp::init< double >(( bp::arg("omega") ), "") );
         bp::scope IFTDistribution1D_scope( IFTDistribution1D_exposer );
         { //::IFTDistribution1D::clone
         
@@ -155,7 +155,8 @@ void register_IFTDistribution1D_class(){
             IFTDistribution1D_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IFTDistribution1D::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IFTDistribution1D::evaluate
@@ -165,7 +166,8 @@ void register_IFTDistribution1D_class(){
             IFTDistribution1D_exposer.def( 
                 "evaluate"
                 , bp::pure_virtual( evaluate_function_type(&::IFTDistribution1D::evaluate) )
-                , ( bp::arg("q") ) );
+                , ( bp::arg("q") )
+                , "" );
         
         }
         { //::IFTDistribution1D::getOmega
@@ -174,7 +176,8 @@ void register_IFTDistribution1D_class(){
             
             IFTDistribution1D_exposer.def( 
                 "getOmega"
-                , getOmega_function_type( &::IFTDistribution1D::getOmega ) );
+                , getOmega_function_type( &::IFTDistribution1D::getOmega )
+                , "" );
         
         }
         { //::IFTDistribution1D::setOmega
@@ -184,7 +187,8 @@ void register_IFTDistribution1D_class(){
             IFTDistribution1D_exposer.def( 
                 "setOmega"
                 , setOmega_function_type( &::IFTDistribution1D::setOmega )
-                , ( bp::arg("omega") ) );
+                , ( bp::arg("omega") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -239,7 +243,8 @@ void register_IFTDistribution1D_class(){
             IFTDistribution1D_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IFTDistribution1D_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp b/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
index 9b5d4ed7030..8493ccf7950 100644
--- a/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
+++ b/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
@@ -158,7 +158,7 @@ void register_IFTDistribution2D_class(){
 
     { //::IFTDistribution2D
         typedef bp::class_< IFTDistribution2D_wrapper, bp::bases< IParameterized >, std::auto_ptr< IFTDistribution2D_wrapper >, 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("coherence_length_x"), bp::arg("coherence_length_y") ), "") );
         bp::scope IFTDistribution2D_scope( IFTDistribution2D_exposer );
         { //::IFTDistribution2D::clone
         
@@ -167,7 +167,8 @@ void register_IFTDistribution2D_class(){
             IFTDistribution2D_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IFTDistribution2D::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IFTDistribution2D::evaluate
@@ -177,7 +178,8 @@ void register_IFTDistribution2D_class(){
             IFTDistribution2D_exposer.def( 
                 "evaluate"
                 , bp::pure_virtual( evaluate_function_type(&::IFTDistribution2D::evaluate) )
-                , ( bp::arg("qx"), bp::arg("qy") ) );
+                , ( bp::arg("qx"), bp::arg("qy") )
+                , "    //! evaluate Fourier transformed distribution for q in X,Y coordinates\n    //! the original distribution (in real space) is assumed to be normalized:\n    //! total integral is equal to 1" );
         
         }
         { //::IFTDistribution2D::evaluateLattice
@@ -198,7 +200,8 @@ void register_IFTDistribution2D_class(){
             
             IFTDistribution2D_exposer.def( 
                 "getCoherenceLengthX"
-                , getCoherenceLengthX_function_type( &::IFTDistribution2D::getCoherenceLengthX ) );
+                , getCoherenceLengthX_function_type( &::IFTDistribution2D::getCoherenceLengthX )
+                , "" );
         
         }
         { //::IFTDistribution2D::getCoherenceLengthY
@@ -207,7 +210,8 @@ void register_IFTDistribution2D_class(){
             
             IFTDistribution2D_exposer.def( 
                 "getCoherenceLengthY"
-                , getCoherenceLengthY_function_type( &::IFTDistribution2D::getCoherenceLengthY ) );
+                , getCoherenceLengthY_function_type( &::IFTDistribution2D::getCoherenceLengthY )
+                , "" );
         
         }
         { //::IFTDistribution2D::getDelta
@@ -216,7 +220,8 @@ void register_IFTDistribution2D_class(){
             
             IFTDistribution2D_exposer.def( 
                 "getDelta"
-                , getDelta_function_type( &::IFTDistribution2D::getDelta ) );
+                , getDelta_function_type( &::IFTDistribution2D::getDelta )
+                , "" );
         
         }
         { //::IFTDistribution2D::getGamma
@@ -225,7 +230,8 @@ void register_IFTDistribution2D_class(){
             
             IFTDistribution2D_exposer.def( 
                 "getGamma"
-                , getGamma_function_type( &::IFTDistribution2D::getGamma ) );
+                , getGamma_function_type( &::IFTDistribution2D::getGamma )
+                , "" );
         
         }
         { //::IFTDistribution2D::setGamma
@@ -235,7 +241,8 @@ void register_IFTDistribution2D_class(){
             IFTDistribution2D_exposer.def( 
                 "setGamma"
                 , setGamma_function_type( &::IFTDistribution2D::setGamma )
-                , ( bp::arg("gamma") ) );
+                , ( bp::arg("gamma") )
+                , "" );
         
         }
         { //::IFTDistribution2D::transformToStarBasis
@@ -245,7 +252,8 @@ void register_IFTDistribution2D_class(){
             IFTDistribution2D_exposer.def( 
                 "transformToStarBasis"
                 , 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") ) );
+                , ( bp::arg("qX"), bp::arg("qY"), bp::arg("alpha"), bp::arg("a"), bp::arg("b"), bp::arg("qa"), bp::arg("qb") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -300,7 +308,8 @@ void register_IFTDistribution2D_class(){
             IFTDistribution2D_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IFTDistribution2D_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IFormFactor.pypp.cpp b/Core/PythonAPI/src/IFormFactor.pypp.cpp
index 788299acf0a..0abfa21b11f 100644
--- a/Core/PythonAPI/src/IFormFactor.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactor.pypp.cpp
@@ -302,7 +302,7 @@ void register_IFormFactor_class(){
 
     { //::IFormFactor
         typedef bp::class_< IFormFactor_wrapper, bp::bases< ISample >, std::auto_ptr< IFormFactor_wrapper >, boost::noncopyable > IFormFactor_exposer_t;
-        IFormFactor_exposer_t IFormFactor_exposer = IFormFactor_exposer_t( "IFormFactor", bp::init< >() );
+        IFormFactor_exposer_t IFormFactor_exposer = IFormFactor_exposer_t( "IFormFactor", "", bp::init< >("") );
         bp::scope IFormFactor_scope( IFormFactor_exposer );
         { //::IFormFactor::clone
         
@@ -311,7 +311,8 @@ void register_IFormFactor_class(){
             IFormFactor_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IFormFactor::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IFormFactor::evaluate
@@ -321,7 +322,8 @@ void register_IFormFactor_class(){
             IFormFactor_exposer.def( 
                 "evaluate"
                 , bp::pure_virtual( evaluate_function_type(&::IFormFactor::evaluate) )
-                , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
+                , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") )
+                , "" );
         
         }
         { //::IFormFactor::getHeight
@@ -501,7 +503,8 @@ void register_IFormFactor_class(){
             IFormFactor_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IFormFactor_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
index a454abd8174..a9454ff92a6 100644
--- a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
@@ -314,7 +314,7 @@ void register_IFormFactorBorn_class(){
 
     { //::IFormFactorBorn
         typedef bp::class_< IFormFactorBorn_wrapper, bp::bases< IFormFactor >, std::auto_ptr< IFormFactorBorn_wrapper >, boost::noncopyable > IFormFactorBorn_exposer_t;
-        IFormFactorBorn_exposer_t IFormFactorBorn_exposer = IFormFactorBorn_exposer_t( "IFormFactorBorn", bp::init< >() );
+        IFormFactorBorn_exposer_t IFormFactorBorn_exposer = IFormFactorBorn_exposer_t( "IFormFactorBorn", "", bp::init< >("") );
         bp::scope IFormFactorBorn_scope( IFormFactorBorn_exposer );
         { //::IFormFactorBorn::clone
         
@@ -323,7 +323,8 @@ void register_IFormFactorBorn_class(){
             IFormFactorBorn_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IFormFactorBorn::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IFormFactorBorn::evaluate
@@ -345,7 +346,8 @@ void register_IFormFactorBorn_class(){
             IFormFactorBorn_exposer.def( 
                 "evaluate_for_q"
                 , bp::pure_virtual( evaluate_for_q_function_type(&::IFormFactorBorn::evaluate_for_q) )
-                , ( bp::arg("q") ) );
+                , ( bp::arg("q") )
+                , "    //! evaluate scattering amplitude for complex wavevector\n    //! @param q  wavevector transfer \f$q\equiv k_i-k_f\f$" );
         
         }
         { //::IFormFactorBorn::getVolume
@@ -513,7 +515,8 @@ void register_IFormFactorBorn_class(){
             IFormFactorBorn_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IFormFactorBorn_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IFormFactor::setAmbientMaterial
diff --git a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
index 730e7a726cb..efd43992ce0 100644
--- a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
@@ -300,7 +300,7 @@ void register_IFormFactorDecorator_class(){
 
     { //::IFormFactorDecorator
         typedef bp::class_< IFormFactorDecorator_wrapper, bp::bases< IFormFactor >, std::auto_ptr< IFormFactorDecorator_wrapper >, boost::noncopyable > IFormFactorDecorator_exposer_t;
-        IFormFactorDecorator_exposer_t IFormFactorDecorator_exposer = IFormFactorDecorator_exposer_t( "IFormFactorDecorator", bp::no_init );
+        IFormFactorDecorator_exposer_t IFormFactorDecorator_exposer = IFormFactorDecorator_exposer_t( "IFormFactorDecorator", "", bp::no_init );
         bp::scope IFormFactorDecorator_scope( IFormFactorDecorator_exposer );
         { //::IFormFactorDecorator::accept
         
@@ -309,7 +309,8 @@ void register_IFormFactorDecorator_class(){
             IFormFactorDecorator_exposer.def( 
                 "accept"
                 , bp::pure_virtual( accept_function_type(&::IFormFactorDecorator::accept) )
-                , ( bp::arg("visitor") ) );
+                , ( bp::arg("visitor") )
+                , "" );
         
         }
         { //::IFormFactorDecorator::clone
@@ -319,7 +320,8 @@ void register_IFormFactorDecorator_class(){
             IFormFactorDecorator_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IFormFactorDecorator::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IFormFactorDecorator::getHeight
@@ -431,7 +433,8 @@ void register_IFormFactorDecorator_class(){
             IFormFactorDecorator_exposer.def( 
                 "evaluate"
                 , bp::pure_virtual( evaluate_function_type(&::IFormFactor::evaluate) )
-                , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") ) );
+                , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_f_bin") )
+                , "" );
         
         }
         { //::ISample::getCompositeSample
@@ -509,7 +512,8 @@ void register_IFormFactorDecorator_class(){
             IFormFactorDecorator_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IFormFactorDecorator_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
index 382ab3bd611..37311b5bd9d 100644
--- a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
+++ b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
@@ -254,7 +254,7 @@ void register_IInterferenceFunction_class(){
 
     { //::IInterferenceFunction
         typedef bp::class_< IInterferenceFunction_wrapper, bp::bases< ISample >, std::auto_ptr< IInterferenceFunction_wrapper >, boost::noncopyable > IInterferenceFunction_exposer_t;
-        IInterferenceFunction_exposer_t IInterferenceFunction_exposer = IInterferenceFunction_exposer_t( "IInterferenceFunction" );
+        IInterferenceFunction_exposer_t IInterferenceFunction_exposer = IInterferenceFunction_exposer_t( "IInterferenceFunction", "" );
         bp::scope IInterferenceFunction_scope( IInterferenceFunction_exposer );
         { //::IInterferenceFunction::clone
         
@@ -263,7 +263,8 @@ void register_IInterferenceFunction_class(){
             IInterferenceFunction_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IInterferenceFunction::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IInterferenceFunction::evaluate
@@ -273,7 +274,8 @@ void register_IInterferenceFunction_class(){
             IInterferenceFunction_exposer.def( 
                 "evaluate"
                 , bp::pure_virtual( evaluate_function_type(&::IInterferenceFunction::evaluate) )
-                , ( bp::arg("q") ) );
+                , ( bp::arg("q") )
+                , "    //! Evaluates the interference function for a given wavevector transfer" );
         
         }
         { //::IInterferenceFunction::getKappa
@@ -408,7 +410,8 @@ void register_IInterferenceFunction_class(){
             IInterferenceFunction_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IInterferenceFunction_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ILayout.pypp.cpp b/Core/PythonAPI/src/ILayout.pypp.cpp
index 07c2d568a3e..2958eaaacc2 100644
--- a/Core/PythonAPI/src/ILayout.pypp.cpp
+++ b/Core/PythonAPI/src/ILayout.pypp.cpp
@@ -279,7 +279,7 @@ void register_ILayout_class(){
 
     { //::ILayout
         typedef bp::class_< ILayout_wrapper, bp::bases< ICompositeSample >, std::auto_ptr< ILayout_wrapper >, boost::noncopyable > ILayout_exposer_t;
-        ILayout_exposer_t ILayout_exposer = ILayout_exposer_t( "ILayout", bp::init< >() );
+        ILayout_exposer_t ILayout_exposer = ILayout_exposer_t( "ILayout", "", bp::init< >("") );
         bp::scope ILayout_scope( ILayout_exposer );
         bp::enum_< ILayout::EInterferenceApproximation>("EInterferenceApproximation")
             .value("DA", ILayout::DA)
@@ -294,7 +294,8 @@ void register_ILayout_class(){
             ILayout_exposer.def( 
                 "accept"
                 , bp::pure_virtual( accept_function_type(&::ILayout::accept) )
-                , ( bp::arg("visitor") ) );
+                , ( bp::arg("visitor") )
+                , "    //! calls the ISampleVisitor's visit method" );
         
         }
         { //::ILayout::clone
@@ -304,7 +305,8 @@ void register_ILayout_class(){
             ILayout_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::ILayout::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::ILayout::cloneInvertB
@@ -314,7 +316,8 @@ void register_ILayout_class(){
             ILayout_exposer.def( 
                 "cloneInvertB"
                 , bp::pure_virtual( cloneInvertB_function_type(&::ILayout::cloneInvertB) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns a clone with inverted magnetic fields" );
         
         }
         { //::ILayout::getAbundanceOfParticle
@@ -324,7 +327,8 @@ void register_ILayout_class(){
             ILayout_exposer.def( 
                 "getAbundanceOfParticle"
                 , bp::pure_virtual( getAbundanceOfParticle_function_type(&::ILayout::getAbundanceOfParticle) )
-                , ( bp::arg("index") ) );
+                , ( bp::arg("index") )
+                , "" );
         
         }
         { //::ILayout::getApproximation
@@ -333,7 +337,8 @@ void register_ILayout_class(){
             
             ILayout_exposer.def( 
                 "getApproximation"
-                , getApproximation_function_type( &::ILayout::getApproximation ) );
+                , getApproximation_function_type( &::ILayout::getApproximation )
+                , "    //! Gets the used approximation for particles and interference functions" );
         
         }
         { //::ILayout::getInterferenceFunctions
@@ -342,7 +347,8 @@ void register_ILayout_class(){
             
             ILayout_exposer.def( 
                 "getInterferenceFunctions"
-                , bp::pure_virtual( getInterferenceFunctions_function_type(&::ILayout::getInterferenceFunctions) ) );
+                , bp::pure_virtual( getInterferenceFunctions_function_type(&::ILayout::getInterferenceFunctions) )
+                , "" );
         
         }
         { //::ILayout::getNumberOfInterferenceFunctions
@@ -362,7 +368,8 @@ void register_ILayout_class(){
             
             ILayout_exposer.def( 
                 "getNumberOfParticles"
-                , bp::pure_virtual( getNumberOfParticles_function_type(&::ILayout::getNumberOfParticles) ) );
+                , bp::pure_virtual( getNumberOfParticles_function_type(&::ILayout::getNumberOfParticles) )
+                , "    //! Returns number of particles" );
         
         }
         { //::ILayout::getParticleInfo
@@ -373,7 +380,8 @@ void register_ILayout_class(){
                 "getParticleInfo"
                 , bp::pure_virtual( getParticleInfo_function_type(&::ILayout::getParticleInfo) )
                 , ( bp::arg("index") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns information about particle with index" );
         
         }
         { //::ILayout::getTotalAbundance
@@ -382,7 +390,8 @@ void register_ILayout_class(){
             
             ILayout_exposer.def( 
                 "getTotalAbundance"
-                , getTotalAbundance_function_type( &::ILayout::getTotalAbundance ) );
+                , getTotalAbundance_function_type( &::ILayout::getTotalAbundance )
+                , "" );
         
         }
         { //::ILayout::getTotalParticleSurfaceDensity
@@ -391,7 +400,8 @@ void register_ILayout_class(){
             
             ILayout_exposer.def( 
                 "getTotalParticleSurfaceDensity"
-                , getTotalParticleSurfaceDensity_function_type( &::ILayout::getTotalParticleSurfaceDensity ) );
+                , getTotalParticleSurfaceDensity_function_type( &::ILayout::getTotalParticleSurfaceDensity )
+                , "    //! Returns surface density of all particles" );
         
         }
         { //::ILayout::setApproximation
@@ -401,7 +411,8 @@ void register_ILayout_class(){
             ILayout_exposer.def( 
                 "setApproximation"
                 , setApproximation_function_type( &::ILayout::setApproximation )
-                , ( bp::arg("approximation") ) );
+                , ( bp::arg("approximation") )
+                , "    //! Sets the used approximation for particles and interference functions" );
         
         }
         { //::ILayout::setTotalParticleSurfaceDensity
@@ -411,7 +422,8 @@ void register_ILayout_class(){
             ILayout_exposer.def( 
                 "setTotalParticleSurfaceDensity"
                 , setTotalParticleSurfaceDensity_function_type( &::ILayout::setTotalParticleSurfaceDensity )
-                , ( bp::arg("surface_density") ) );
+                , ( bp::arg("surface_density") )
+                , "    //! Sets surface density of all particles" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -523,7 +535,8 @@ void register_ILayout_class(){
             ILayout_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ILayout_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IMaterial.pypp.cpp b/Core/PythonAPI/src/IMaterial.pypp.cpp
index 33fe41a1692..acd4146af97 100644
--- a/Core/PythonAPI/src/IMaterial.pypp.cpp
+++ b/Core/PythonAPI/src/IMaterial.pypp.cpp
@@ -98,7 +98,7 @@ void register_IMaterial_class(){
 
     { //::IMaterial
         typedef bp::class_< IMaterial_wrapper, std::auto_ptr< IMaterial_wrapper > > IMaterial_exposer_t;
-        IMaterial_exposer_t IMaterial_exposer = IMaterial_exposer_t( "IMaterial", bp::init< std::string const & >(( bp::arg("name") )) );
+        IMaterial_exposer_t IMaterial_exposer = IMaterial_exposer_t( "IMaterial", "", bp::init< std::string const & >(( bp::arg("name") ), "    //! Constructor that sets _name_.") );
         bp::scope IMaterial_scope( IMaterial_exposer );
         { //::IMaterial::clone
         
diff --git a/Core/PythonAPI/src/IObservable.pypp.cpp b/Core/PythonAPI/src/IObservable.pypp.cpp
index bbf33d1bd51..1b6b8d78d07 100644
--- a/Core/PythonAPI/src/IObservable.pypp.cpp
+++ b/Core/PythonAPI/src/IObservable.pypp.cpp
@@ -72,7 +72,7 @@ void register_IObservable_class(){
 
     { //::IObservable
         typedef bp::class_< IObservable_wrapper > IObservable_exposer_t;
-        IObservable_exposer_t IObservable_exposer = IObservable_exposer_t( "IObservable" );
+        IObservable_exposer_t IObservable_exposer = IObservable_exposer_t( "IObservable", "" );
         bp::scope IObservable_scope( IObservable_exposer );
         { //::IObservable::attachObserver
         
diff --git a/Core/PythonAPI/src/IObserver.pypp.cpp b/Core/PythonAPI/src/IObserver.pypp.cpp
index d6f6bce3f0f..4797bef48a7 100644
--- a/Core/PythonAPI/src/IObserver.pypp.cpp
+++ b/Core/PythonAPI/src/IObserver.pypp.cpp
@@ -60,7 +60,7 @@ void register_IObserver_class(){
 
     { //::IObserver
         typedef bp::class_< IObserver_wrapper > IObserver_exposer_t;
-        IObserver_exposer_t IObserver_exposer = IObserver_exposer_t( "IObserver" );
+        IObserver_exposer_t IObserver_exposer = IObserver_exposer_t( "IObserver", "" );
         bp::scope IObserver_scope( IObserver_exposer );
         { //::IObserver::update
         
diff --git a/Core/PythonAPI/src/IParameterized.pypp.cpp b/Core/PythonAPI/src/IParameterized.pypp.cpp
index 42191a3806c..1ac8cd7a7b6 100644
--- a/Core/PythonAPI/src/IParameterized.pypp.cpp
+++ b/Core/PythonAPI/src/IParameterized.pypp.cpp
@@ -148,10 +148,10 @@ void register_IParameterized_class(){
 
     { //::IParameterized
         typedef bp::class_< IParameterized_wrapper > IParameterized_exposer_t;
-        IParameterized_exposer_t IParameterized_exposer = IParameterized_exposer_t( "IParameterized", bp::init< >() );
+        IParameterized_exposer_t IParameterized_exposer = IParameterized_exposer_t( "IParameterized", "", bp::init< >("") );
         bp::scope IParameterized_scope( IParameterized_exposer );
-        IParameterized_exposer.def( bp::init< std::string const & >(( bp::arg("name") )) );
-        IParameterized_exposer.def( bp::init< IParameterized const & >(( bp::arg("other") )) );
+        IParameterized_exposer.def( bp::init< std::string const & >(( bp::arg("name") ), "") );
+        IParameterized_exposer.def( bp::init< IParameterized const & >(( bp::arg("other") ), "") );
         { //::IParameterized::areParametersChanged
         
             typedef bool ( ::IParameterized::*areParametersChanged_function_type)(  ) ;
@@ -193,7 +193,8 @@ void register_IParameterized_class(){
             IParameterized_exposer.def( 
                 "getParameterPool"
                 , getParameterPool_function_type( &::IParameterized::getParameterPool )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns pointer to the parameter pool." );
         
         }
         { //::IParameterized::operator=
@@ -204,7 +205,8 @@ void register_IParameterized_class(){
                 "assign"
                 , assign_function_type( &::IParameterized::operator= )
                 , ( bp::arg("other") )
-                , bp::return_self< >() );
+                , bp::return_self< >()
+                , "" );
         
         }
         { //::IParameterized::printParameters
@@ -225,7 +227,8 @@ void register_IParameterized_class(){
             IParameterized_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IParameterized_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IParticle.pypp.cpp b/Core/PythonAPI/src/IParticle.pypp.cpp
index 98b75db8886..0bf37d67a1d 100644
--- a/Core/PythonAPI/src/IParticle.pypp.cpp
+++ b/Core/PythonAPI/src/IParticle.pypp.cpp
@@ -262,7 +262,7 @@ void register_IParticle_class(){
 
     { //::IParticle
         typedef bp::class_< IParticle_wrapper, bp::bases< ICompositeSample >, std::auto_ptr< IParticle_wrapper >, boost::noncopyable > IParticle_exposer_t;
-        IParticle_exposer_t IParticle_exposer = IParticle_exposer_t( "IParticle", bp::no_init );
+        IParticle_exposer_t IParticle_exposer = IParticle_exposer_t( "IParticle", "", bp::no_init );
         bp::scope IParticle_scope( IParticle_exposer );
         { //::IParticle::applyTransformation
         
@@ -271,7 +271,8 @@ void register_IParticle_class(){
             IParticle_exposer.def( 
                 "applyTransformation"
                 , applyTransformation_function_type( &::IParticle::applyTransformation )
-                , ( bp::arg("rotation") ) );
+                , ( bp::arg("rotation") )
+                , "" );
         
         }
         { //::IParticle::applyTransformationToSubParticles
@@ -281,7 +282,8 @@ void register_IParticle_class(){
             IParticle_exposer.def( 
                 "applyTransformationToSubParticles"
                 , applyTransformationToSubParticles_function_type( &IParticle_wrapper::applyTransformationToSubParticles )
-                , ( bp::arg("rotation") ) );
+                , ( bp::arg("rotation") )
+                , "" );
         
         }
         { //::IParticle::clone
@@ -291,7 +293,8 @@ void register_IParticle_class(){
             IParticle_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IParticle::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IParticle::cloneInvertB
@@ -301,7 +304,8 @@ void register_IParticle_class(){
             IParticle_exposer.def( 
                 "cloneInvertB"
                 , bp::pure_virtual( cloneInvertB_function_type(&::IParticle::cloneInvertB) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns a clone with inverted magnetic fields" );
         
         }
         { //::IParticle::createFormFactor
@@ -312,7 +316,8 @@ void register_IParticle_class(){
                 "createFormFactor"
                 , bp::pure_virtual( createFormFactor_function_type(&::IParticle::createFormFactor) )
                 , ( bp::arg("wavevector_scattering_factor") )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Create a form factor which includes the particle's shape,\n    //! material, ambient material, an optional transformation and an extra\n    //! scattering factor" );
         
         }
         { //::IParticle::getAmbientMaterial
@@ -322,7 +327,8 @@ void register_IParticle_class(){
             IParticle_exposer.def( 
                 "getAmbientMaterial"
                 , bp::pure_virtual( getAmbientMaterial_function_type(&::IParticle::getAmbientMaterial) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns particle's material." );
         
         }
         { //::IParticle::getRotation
@@ -332,7 +338,8 @@ void register_IParticle_class(){
             IParticle_exposer.def( 
                 "getRotation"
                 , getRotation_function_type( &::IParticle::getRotation )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns rotation object" );
         
         }
         { //::IParticle::setAmbientMaterial
@@ -354,7 +361,8 @@ void register_IParticle_class(){
             IParticle_exposer.def( 
                 "setTransformation"
                 , setTransformation_function_type( &::IParticle::setTransformation )
-                , ( bp::arg("rotation") ) );
+                , ( bp::arg("rotation") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -466,7 +474,8 @@ void register_IParticle_class(){
             IParticle_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IParticle_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp b/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
index 1ee0ebcd7b1..278653c43d1 100644
--- a/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
+++ b/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
@@ -146,7 +146,7 @@ void register_IResolutionFunction2D_class(){
 
     { //::IResolutionFunction2D
         typedef bp::class_< IResolutionFunction2D_wrapper, bp::bases< IParameterized >, std::auto_ptr< IResolutionFunction2D_wrapper >, boost::noncopyable > IResolutionFunction2D_exposer_t;
-        IResolutionFunction2D_exposer_t IResolutionFunction2D_exposer = IResolutionFunction2D_exposer_t( "IResolutionFunction2D" );
+        IResolutionFunction2D_exposer_t IResolutionFunction2D_exposer = IResolutionFunction2D_exposer_t( "IResolutionFunction2D", "" );
         bp::scope IResolutionFunction2D_scope( IResolutionFunction2D_exposer );
         { //::IResolutionFunction2D::clone
         
@@ -155,7 +155,8 @@ void register_IResolutionFunction2D_class(){
             IResolutionFunction2D_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IResolutionFunction2D::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IResolutionFunction2D::evaluateCDF
@@ -165,7 +166,8 @@ void register_IResolutionFunction2D_class(){
             IResolutionFunction2D_exposer.def( 
                 "evaluateCDF"
                 , bp::pure_virtual( evaluateCDF_function_type(&::IResolutionFunction2D::evaluateCDF) )
-                , ( bp::arg("x"), bp::arg("y") ) );
+                , ( bp::arg("x"), bp::arg("y") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -220,7 +222,8 @@ void register_IResolutionFunction2D_class(){
             IResolutionFunction2D_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IResolutionFunction2D_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IRotation.pypp.cpp b/Core/PythonAPI/src/IRotation.pypp.cpp
index aa53ea2446b..54a0c4adbbe 100644
--- a/Core/PythonAPI/src/IRotation.pypp.cpp
+++ b/Core/PythonAPI/src/IRotation.pypp.cpp
@@ -240,7 +240,7 @@ void register_IRotation_class(){
 
     { //::IRotation
         typedef bp::class_< IRotation_wrapper, bp::bases< ISample >, std::auto_ptr< IRotation_wrapper >, boost::noncopyable > IRotation_exposer_t;
-        IRotation_exposer_t IRotation_exposer = IRotation_exposer_t( "IRotation" );
+        IRotation_exposer_t IRotation_exposer = IRotation_exposer_t( "IRotation", "" );
         bp::scope IRotation_scope( IRotation_exposer );
         { //::IRotation::clone
         
@@ -249,7 +249,8 @@ void register_IRotation_class(){
             IRotation_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IRotation::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Returns a clone" );
         
         }
         { //::IRotation::cloneInvertB
@@ -259,7 +260,8 @@ void register_IRotation_class(){
             IRotation_exposer.def( 
                 "cloneInvertB"
                 , bp::pure_virtual( cloneInvertB_function_type(&::IRotation::cloneInvertB) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns a clone with inverted magnetic fields" );
         
         }
         { //::IRotation::createInverse
@@ -269,7 +271,8 @@ void register_IRotation_class(){
             IRotation_exposer.def( 
                 "createInverse"
                 , bp::pure_virtual( createInverse_function_type(&::IRotation::createInverse) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Returns a new IRotation object that is the current object's inverse" );
         
         }
         { //::IRotation::createRotation
@@ -280,7 +283,8 @@ void register_IRotation_class(){
                 "createRotation"
                 , createRotation_function_type( &::IRotation::createRotation )
                 , ( bp::arg("transform") )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IRotation::getTransform3D
@@ -289,7 +293,8 @@ void register_IRotation_class(){
             
             IRotation_exposer.def( 
                 "getTransform3D"
-                , bp::pure_virtual( getTransform3D_function_type(&::IRotation::getTransform3D) ) );
+                , bp::pure_virtual( getTransform3D_function_type(&::IRotation::getTransform3D) )
+                , "    //! Returns transformation." );
         
         }
         { //::IParameterized::areParametersChanged
@@ -401,7 +406,8 @@ void register_IRotation_class(){
             IRotation_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &IRotation_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ISample.pypp.cpp b/Core/PythonAPI/src/ISample.pypp.cpp
index 8c199dbeb9c..135346ad7b0 100644
--- a/Core/PythonAPI/src/ISample.pypp.cpp
+++ b/Core/PythonAPI/src/ISample.pypp.cpp
@@ -242,7 +242,7 @@ void register_ISample_class(){
 
     { //::ISample
         typedef bp::class_< ISample_wrapper, bp::bases< ICloneable, IParameterized >, std::auto_ptr< ISample_wrapper >, boost::noncopyable > ISample_exposer_t;
-        ISample_exposer_t ISample_exposer = ISample_exposer_t( "ISample", bp::init< >() );
+        ISample_exposer_t ISample_exposer = ISample_exposer_t( "ISample", "", bp::init< >("") );
         bp::scope ISample_scope( ISample_exposer );
         { //::ISample::accept
         
@@ -251,7 +251,8 @@ void register_ISample_class(){
             ISample_exposer.def( 
                 "accept"
                 , bp::pure_virtual( accept_function_type(&::ISample::accept) )
-                , ( bp::arg("p_visitor") ) );
+                , ( bp::arg("p_visitor") )
+                , "    //! \internal Calls the ISampleVisitor's visit method" );
         
         }
         { //::ISample::clone
@@ -261,7 +262,8 @@ void register_ISample_class(){
             ISample_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::ISample::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::ISample::cloneInvertB
@@ -385,7 +387,8 @@ void register_ISample_class(){
             ISample_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ISample_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ISampleBuilder.pypp.cpp b/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
index b2d6e4f5279..6c5037b7ecb 100644
--- a/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
+++ b/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
@@ -153,7 +153,7 @@ void register_ISampleBuilder_class(){
 
     { //::ISampleBuilder
         typedef bp::class_< ISampleBuilder_wrapper, bp::bases< IParameterized > > ISampleBuilder_exposer_t;
-        ISampleBuilder_exposer_t ISampleBuilder_exposer = ISampleBuilder_exposer_t( "ISampleBuilder", bp::init< >() );
+        ISampleBuilder_exposer_t ISampleBuilder_exposer = ISampleBuilder_exposer_t( "ISampleBuilder", "", bp::init< >("") );
         bp::scope ISampleBuilder_scope( ISampleBuilder_exposer );
         { //::ISampleBuilder::buildSample
         
@@ -219,7 +219,8 @@ void register_ISampleBuilder_class(){
             ISampleBuilder_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ISampleBuilder_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ISelectionRule.pypp.cpp b/Core/PythonAPI/src/ISelectionRule.pypp.cpp
index d7036fd01a3..432f84363d5 100644
--- a/Core/PythonAPI/src/ISelectionRule.pypp.cpp
+++ b/Core/PythonAPI/src/ISelectionRule.pypp.cpp
@@ -53,7 +53,7 @@ void register_ISelectionRule_class(){
 
     { //::ISelectionRule
         typedef bp::class_< ISelectionRule_wrapper, std::auto_ptr< ISelectionRule_wrapper >, boost::noncopyable > ISelectionRule_exposer_t;
-        ISelectionRule_exposer_t ISelectionRule_exposer = ISelectionRule_exposer_t( "ISelectionRule" );
+        ISelectionRule_exposer_t ISelectionRule_exposer = ISelectionRule_exposer_t( "ISelectionRule", "" );
         bp::scope ISelectionRule_scope( ISelectionRule_exposer );
         { //::ISelectionRule::clone
         
@@ -62,7 +62,8 @@ void register_ISelectionRule_class(){
             ISelectionRule_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::ISelectionRule::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::ISelectionRule::coordinateSelected
@@ -72,7 +73,8 @@ void register_ISelectionRule_class(){
             ISelectionRule_exposer.def( 
                 "coordinateSelected"
                 , bp::pure_virtual( coordinateSelected_function_type(&::ISelectionRule::coordinateSelected) )
-                , ( bp::arg("coordinate") ) );
+                , ( bp::arg("coordinate") )
+                , "" );
         
         }
     }
diff --git a/Core/PythonAPI/src/Instrument.pypp.cpp b/Core/PythonAPI/src/Instrument.pypp.cpp
index 64e7c3ab64e..364e8545c15 100644
--- a/Core/PythonAPI/src/Instrument.pypp.cpp
+++ b/Core/PythonAPI/src/Instrument.pypp.cpp
@@ -141,16 +141,17 @@ void register_Instrument_class(){
 
     { //::Instrument
         typedef bp::class_< Instrument_wrapper, bp::bases< IParameterized > > Instrument_exposer_t;
-        Instrument_exposer_t Instrument_exposer = Instrument_exposer_t( "Instrument", bp::init< >() );
+        Instrument_exposer_t Instrument_exposer = Instrument_exposer_t( "Instrument", "", bp::init< >("") );
         bp::scope Instrument_scope( Instrument_exposer );
-        Instrument_exposer.def( bp::init< Instrument const & >(( bp::arg("other") )) );
+        Instrument_exposer.def( bp::init< Instrument const & >(( bp::arg("other") ), "") );
         { //::Instrument::getBeam
         
             typedef ::Beam ( ::Instrument::*getBeam_function_type)(  ) const;
             
             Instrument_exposer.def( 
                 "getBeam"
-                , getBeam_function_type( &::Instrument::getBeam ) );
+                , getBeam_function_type( &::Instrument::getBeam )
+                , "" );
         
         }
         { //::Instrument::getDetector
@@ -159,7 +160,8 @@ void register_Instrument_class(){
             
             Instrument_exposer.def( 
                 "getDetector"
-                , getDetector_function_type( &::Instrument::getDetector ) );
+                , getDetector_function_type( &::Instrument::getDetector )
+                , "" );
         
         }
         { //::Instrument::getDetectorAxis
@@ -170,7 +172,8 @@ void register_Instrument_class(){
                 "getDetectorAxis"
                 , getDetectorAxis_function_type( &::Instrument::getDetectorAxis )
                 , ( bp::arg("index") )
-                , bp::return_value_policy< bp::copy_const_reference >() );
+                , bp::return_value_policy< bp::copy_const_reference >()
+                , "" );
         
         }
         { //::Instrument::getDetectorDimension
@@ -179,7 +182,8 @@ void register_Instrument_class(){
             
             Instrument_exposer.def( 
                 "getDetectorDimension"
-                , getDetectorDimension_function_type( &::Instrument::getDetectorDimension ) );
+                , getDetectorDimension_function_type( &::Instrument::getDetectorDimension )
+                , "    //! Returns the detector's dimension" );
         
         }
         { //::Instrument::getIntensity
@@ -188,7 +192,8 @@ void register_Instrument_class(){
             
             Instrument_exposer.def( 
                 "getIntensity"
-                , getIntensity_function_type( &::Instrument::getIntensity ) );
+                , getIntensity_function_type( &::Instrument::getIntensity )
+                , "    //! Returns the beam's intensity" );
         
         }
         { //::Instrument::matchDetectorParameters
@@ -198,7 +203,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "matchDetectorParameters"
                 , matchDetectorParameters_function_type( &::Instrument::matchDetectorParameters )
-                , ( bp::arg("output_data") ) );
+                , ( bp::arg("output_data") )
+                , "    //! Sets detector parameters using axes of output data" );
         
         }
         { //::Instrument::setBeam
@@ -208,7 +214,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "setBeam"
                 , setBeam_function_type( &::Instrument::setBeam )
-                , ( bp::arg("beam") ) );
+                , ( bp::arg("beam") )
+                , "" );
         
         }
         { //::Instrument::setBeamIntensity
@@ -218,7 +225,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "setBeamIntensity"
                 , setBeamIntensity_function_type( &::Instrument::setBeamIntensity )
-                , ( bp::arg("intensity") ) );
+                , ( bp::arg("intensity") )
+                , "    //! Sets the beam's intensity" );
         
         }
         { //::Instrument::setBeamParameters
@@ -228,7 +236,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "setBeamParameters"
                 , setBeamParameters_function_type( &::Instrument::setBeamParameters )
-                , ( bp::arg("wavelength"), bp::arg("alpha_i"), bp::arg("phi_i") ) );
+                , ( bp::arg("wavelength"), bp::arg("alpha_i"), bp::arg("phi_i") )
+                , "" );
         
         }
         { //::Instrument::setDetectorAxes
@@ -238,7 +247,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "setDetectorAxes"
                 , setDetectorAxes_function_type( &::Instrument::setDetectorAxes )
-                , ( bp::arg("axis0"), bp::arg("axis1") ) );
+                , ( bp::arg("axis0"), bp::arg("axis1") )
+                , "    //! Sets detector parameters using axes" );
         
         }
         { //::Instrument::setDetectorParameters
@@ -248,7 +258,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "setDetectorParameters"
                 , setDetectorParameters_function_type( &::Instrument::setDetectorParameters )
-                , ( bp::arg("n_phi"), bp::arg("phi_f_min"), bp::arg("phi_f_max"), bp::arg("n_alpha"), bp::arg("alpha_f_min"), bp::arg("alpha_f_max"), bp::arg("isgisaxs_style")=(bool)(false) ) );
+                , ( bp::arg("n_phi"), bp::arg("phi_f_min"), bp::arg("phi_f_max"), bp::arg("n_alpha"), bp::arg("alpha_f_min"), bp::arg("alpha_f_max"), bp::arg("isgisaxs_style")=(bool)(false) )
+                , "" );
         
         }
         { //::Instrument::setDetectorParameters
@@ -258,7 +269,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "setDetectorParameters"
                 , setDetectorParameters_function_type( &::Instrument::setDetectorParameters )
-                , ( bp::arg("params") ) );
+                , ( bp::arg("params") )
+                , "    //! Sets detector parameters using parameter object" );
         
         }
         { //::Instrument::setDetectorResolutionFunction
@@ -268,7 +280,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "setDetectorResolutionFunction"
                 , setDetectorResolutionFunction_function_type( &::Instrument::setDetectorResolutionFunction )
-                , ( bp::arg("p_resolution_function") ) );
+                , ( bp::arg("p_resolution_function") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -323,7 +336,8 @@ void register_Instrument_class(){
             Instrument_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &Instrument_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/IntensityData.pypp.cpp b/Core/PythonAPI/src/IntensityData.pypp.cpp
index 19692fbae8e..9bb6a227aea 100644
--- a/Core/PythonAPI/src/IntensityData.pypp.cpp
+++ b/Core/PythonAPI/src/IntensityData.pypp.cpp
@@ -43,7 +43,7 @@ void register_IntensityData_class(){
 
     { //::OutputData< double >
         typedef bp::class_< OutputData_less__double__greater__wrapper, std::auto_ptr< OutputData_less__double__greater__wrapper >, boost::noncopyable > IntensityData_exposer_t;
-        IntensityData_exposer_t IntensityData_exposer = IntensityData_exposer_t( "IntensityData", bp::init< >() );
+        IntensityData_exposer_t IntensityData_exposer = IntensityData_exposer_t( "IntensityData", "", bp::init< >("") );
         bp::scope IntensityData_scope( IntensityData_exposer );
         { //::OutputData< double >::addAxis
         
@@ -53,7 +53,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "addAxis"
                 , addAxis_function_type( &::OutputData< double >::addAxis )
-                , ( bp::arg("new_axis") ) );
+                , ( bp::arg("new_axis") )
+                , "" );
         
         }
         { //::OutputData< double >::addAxis
@@ -64,7 +65,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "addAxis"
                 , addAxis_function_type( &::OutputData< double >::addAxis )
-                , ( bp::arg("name"), bp::arg("size"), bp::arg("start"), bp::arg("end") ) );
+                , ( bp::arg("name"), bp::arg("size"), bp::arg("start"), bp::arg("end") )
+                , "" );
         
         }
         { //::OutputData< double >::clear
@@ -74,7 +76,8 @@ void register_IntensityData_class(){
             
             IntensityData_exposer.def( 
                 "clear"
-                , clear_function_type( &::OutputData< double >::clear ) );
+                , clear_function_type( &::OutputData< double >::clear )
+                , "" );
         
         }
         { //::OutputData< double >::clone
@@ -85,7 +88,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "clone"
                 , clone_function_type( &::OutputData< double >::clone )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::OutputData< double >::copyFrom
@@ -96,7 +100,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "copyFrom"
                 , copyFrom_function_type( &::OutputData< double >::copyFrom )
-                , ( bp::arg("other") ) );
+                , ( bp::arg("other") )
+                , "" );
         
         }
         { //::OutputData< double >::getAllSizes
@@ -106,7 +111,8 @@ void register_IntensityData_class(){
             
             IntensityData_exposer.def( 
                 "getAllSizes"
-                , getAllSizes_function_type( &::OutputData< double >::getAllSizes ) );
+                , getAllSizes_function_type( &::OutputData< double >::getAllSizes )
+                , "" );
         
         }
         { //::OutputData< double >::getAllocatedSize
@@ -116,7 +122,8 @@ void register_IntensityData_class(){
             
             IntensityData_exposer.def( 
                 "getAllocatedSize"
-                , getAllocatedSize_function_type( &::OutputData< double >::getAllocatedSize ) );
+                , getAllocatedSize_function_type( &::OutputData< double >::getAllocatedSize )
+                , "   //! Returns total size of data buffer (product of bin number in every dimension)." );
         
         }
         { //::OutputData< double >::getArray
@@ -126,7 +133,8 @@ void register_IntensityData_class(){
             
             IntensityData_exposer.def( 
                 "getArray"
-                , getArray_function_type( &::OutputData< double >::getArray ) );
+                , getArray_function_type( &::OutputData< double >::getArray )
+                , "" );
         
         }
         { //::OutputData< double >::getAxis
@@ -138,7 +146,8 @@ void register_IntensityData_class(){
                 "getAxis"
                 , getAxis_function_type( &::OutputData< double >::getAxis )
                 , ( bp::arg("index") )
-                , bp::return_internal_reference< >() );
+                , bp::return_internal_reference< >()
+                , "" );
         
         }
         { //::OutputData< double >::getAxis
@@ -150,7 +159,8 @@ void register_IntensityData_class(){
                 "getAxis"
                 , getAxis_function_type( &::OutputData< double >::getAxis )
                 , ( bp::arg("label") )
-                , bp::return_internal_reference< >() );
+                , bp::return_internal_reference< >()
+                , "" );
         
         }
         { //::OutputData< double >::getAxisIndex
@@ -161,7 +171,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "getAxisIndex"
                 , getAxisIndex_function_type( &::OutputData< double >::getAxisIndex )
-                , ( bp::arg("label") ) );
+                , ( bp::arg("label") )
+                , "" );
         
         }
         { //::OutputData< double >::getIndexOfAxis
@@ -172,7 +183,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "getIndexOfAxis"
                 , getIndexOfAxis_function_type( &::OutputData< double >::getIndexOfAxis )
-                , ( bp::arg("axis_name"), bp::arg("total_index") ) );
+                , ( bp::arg("axis_name"), bp::arg("total_index") )
+                , "" );
         
         }
         { //::OutputData< double >::getRank
@@ -182,7 +194,8 @@ void register_IntensityData_class(){
             
             IntensityData_exposer.def( 
                 "getRank"
-                , getRank_function_type( &::OutputData< double >::getRank ) );
+                , getRank_function_type( &::OutputData< double >::getRank )
+                , "    //! Returns number of dimensions." );
         
         }
         { //::OutputData< double >::getRawDataVector
@@ -192,7 +205,8 @@ void register_IntensityData_class(){
             
             IntensityData_exposer.def( 
                 "getRawDataVector"
-                , getRawDataVector_function_type( &::OutputData< double >::getRawDataVector ) );
+                , getRawDataVector_function_type( &::OutputData< double >::getRawDataVector )
+                , "" );
         
         }
         { //::OutputData< double >::getValueOfAxis
@@ -203,7 +217,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "getValueOfAxis"
                 , getValueOfAxis_function_type( &::OutputData< double >::getValueOfAxis )
-                , ( bp::arg("axis_name"), bp::arg("index") ) );
+                , ( bp::arg("axis_name"), bp::arg("index") )
+                , "" );
         
         }
         { //::OutputData< double >::getValueOfAxis
@@ -214,7 +229,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "getValueOfAxis"
                 , getValueOfAxis_function_type( &::OutputData< double >::getValueOfAxis )
-                , ( bp::arg("axis_number"), bp::arg("index") ) );
+                , ( bp::arg("axis_number"), bp::arg("index") )
+                , "" );
         
         }
         { //::OutputData< double >::hasSameDimensions
@@ -225,7 +241,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "hasSameDimensions"
                 , hasSameDimensions_function_type( &::OutputData< double >::hasSameDimensions )
-                , ( bp::arg("right") ) );
+                , ( bp::arg("right") )
+                , "" );
         
         }
         { //::OutputData< double >::hasSameShape
@@ -236,7 +253,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "hasSameShape"
                 , hasSameShape_function_type( &::OutputData< double >::hasSameShape )
-                , ( bp::arg("right") ) );
+                , ( bp::arg("right") )
+                , "" );
         
         }
         IntensityData_exposer.def( bp::self *= bp::self );
@@ -252,7 +270,8 @@ void register_IntensityData_class(){
                 "__getitem__"
                 , __getitem___function_type( &::OutputData< double >::operator[] )
                 , ( bp::arg("index") )
-                , bp::return_value_policy< bp::copy_non_const_reference >() );
+                , bp::return_value_policy< bp::copy_non_const_reference >()
+                , "    //! indexed accessor" );
         
         }
         { //::OutputData< double >::operator[]
@@ -264,7 +283,8 @@ void register_IntensityData_class(){
                 "__getitem__"
                 , __getitem___function_type( &::OutputData< double >::operator[] )
                 , ( bp::arg("index") )
-                , bp::return_value_policy< bp::copy_const_reference >() );
+                , bp::return_value_policy< bp::copy_const_reference >()
+                , "    //! indexed accessor (const)" );
         
         }
         { //::OutputData< double >::removeAllMasks
@@ -274,7 +294,8 @@ void register_IntensityData_class(){
             
             IntensityData_exposer.def( 
                 "removeAllMasks"
-                , removeAllMasks_function_type( &::OutputData< double >::removeAllMasks ) );
+                , removeAllMasks_function_type( &::OutputData< double >::removeAllMasks )
+                , "" );
         
         }
         { //::OutputData< double >::scaleAll
@@ -285,7 +306,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "scaleAll"
                 , scaleAll_function_type( &::OutputData< double >::scaleAll )
-                , ( bp::arg("factor") ) );
+                , ( bp::arg("factor") )
+                , "" );
         
         }
         { //::OutputData< double >::setAllTo
@@ -296,7 +318,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "setAllTo"
                 , setAllTo_function_type( &::OutputData< double >::setAllTo )
-                , ( bp::arg("value") ) );
+                , ( bp::arg("value") )
+                , "" );
         
         }
         { //::OutputData< double >::setRawDataVector
@@ -307,7 +330,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "setRawDataVector"
                 , setRawDataVector_function_type( &::OutputData< double >::setRawDataVector )
-                , ( bp::arg("data_vector") ) );
+                , ( bp::arg("data_vector") )
+                , "" );
         
         }
         { //::OutputData< double >::toCoordinate
@@ -318,7 +342,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "toCoordinate"
                 , toCoordinate_function_type( &::OutputData< double >::toCoordinate )
-                , ( bp::arg("index"), bp::arg("i_selected_axis") ) );
+                , ( bp::arg("index"), bp::arg("i_selected_axis") )
+                , "" );
         
         }
         { //::OutputData< double >::toCoordinates
@@ -329,7 +354,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "toCoordinates"
                 , toCoordinates_function_type( &::OutputData< double >::toCoordinates )
-                , ( bp::arg("index") ) );
+                , ( bp::arg("index") )
+                , "" );
         
         }
         { //::OutputData< double >::toIndex
@@ -340,7 +366,8 @@ void register_IntensityData_class(){
             IntensityData_exposer.def( 
                 "toIndex"
                 , toIndex_function_type( &::OutputData< double >::toIndex )
-                , ( bp::arg("coordinates") ) );
+                , ( bp::arg("coordinates") )
+                , "" );
         
         }
         { //::OutputData< double >::totalSum
@@ -350,7 +377,8 @@ void register_IntensityData_class(){
             
             IntensityData_exposer.def( 
                 "totalSum"
-                , totalSum_function_type( &::OutputData< double >::totalSum ) );
+                , totalSum_function_type( &::OutputData< double >::totalSum )
+                , "" );
         
         }
         IntensityData_exposer.def("__setitem__", &pyplusplus_setitem<OutputData<double >,int,double> );
diff --git a/Core/PythonAPI/src/IntensityDataFunctions.pypp.cpp b/Core/PythonAPI/src/IntensityDataFunctions.pypp.cpp
index c8f63d67a3d..16b618affa7 100644
--- a/Core/PythonAPI/src/IntensityDataFunctions.pypp.cpp
+++ b/Core/PythonAPI/src/IntensityDataFunctions.pypp.cpp
@@ -30,7 +30,7 @@ void register_IntensityDataFunctions_class(){
 
     { //::IntensityDataFunctions
         typedef bp::class_< IntensityDataFunctions > IntensityDataFunctions_exposer_t;
-        IntensityDataFunctions_exposer_t IntensityDataFunctions_exposer = IntensityDataFunctions_exposer_t( "IntensityDataFunctions" );
+        IntensityDataFunctions_exposer_t IntensityDataFunctions_exposer = IntensityDataFunctions_exposer_t( "IntensityDataFunctions", "" );
         bp::scope IntensityDataFunctions_scope( IntensityDataFunctions_exposer );
         { //::IntensityDataFunctions::addEllipticMask
         
@@ -39,7 +39,8 @@ void register_IntensityDataFunctions_class(){
             IntensityDataFunctions_exposer.def( 
                 "addEllipticMask"
                 , addEllipticMask_function_type( &::IntensityDataFunctions::addEllipticMask )
-                , ( bp::arg("data"), bp::arg("xc"), bp::arg("yc"), bp::arg("rx"), bp::arg("ry"), bp::arg("invert_flag")=(bool)(false) ) );
+                , ( bp::arg("data"), bp::arg("xc"), bp::arg("yc"), bp::arg("rx"), bp::arg("ry"), bp::arg("invert_flag")=(bool)(false) )
+                , "" );
         
         }
         { //::IntensityDataFunctions::addRectangularMask
@@ -49,7 +50,8 @@ void register_IntensityDataFunctions_class(){
             IntensityDataFunctions_exposer.def( 
                 "addRectangularMask"
                 , addRectangularMask_function_type( &::IntensityDataFunctions::addRectangularMask )
-                , ( bp::arg("data"), bp::arg("x1"), bp::arg("y1"), bp::arg("x2"), bp::arg("y2"), bp::arg("invert_flag")=(bool)(false) ) );
+                , ( bp::arg("data"), bp::arg("x1"), bp::arg("y1"), bp::arg("x2"), bp::arg("y2"), bp::arg("invert_flag")=(bool)(false) )
+                , "" );
         
         }
         { //::IntensityDataFunctions::applyDetectorResolution
@@ -60,7 +62,8 @@ void register_IntensityDataFunctions_class(){
                 "applyDetectorResolution"
                 , applyDetectorResolution_function_type( &::IntensityDataFunctions::applyDetectorResolution )
                 , ( bp::arg("origin"), bp::arg("resolution_function") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Applies detector resolution function and returns new IntensityData object" );
         
         }
         { //::IntensityDataFunctions::createClippedDataSet
@@ -71,7 +74,8 @@ void register_IntensityDataFunctions_class(){
                 "createClippedDataSet"
                 , createClippedDataSet_function_type( &::IntensityDataFunctions::createClippedDataSet )
                 , ( bp::arg("origin"), bp::arg("x1"), bp::arg("y1"), bp::arg("x2"), bp::arg("y2") )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Returns new IntensityData objects which axes clipped to represent the specified rectangle" );
         
         }
         { //::IntensityDataFunctions::getRelativeDifference
@@ -81,7 +85,8 @@ void register_IntensityDataFunctions_class(){
             IntensityDataFunctions_exposer.def( 
                 "getRelativeDifference"
                 , getRelativeDifference_function_type( &::IntensityDataFunctions::getRelativeDifference )
-                , ( bp::arg("result"), bp::arg("reference") ) );
+                , ( bp::arg("result"), bp::arg("reference") )
+                , "" );
         
         }
         { //::IntensityDataFunctions::setEllipticMask
@@ -91,7 +96,8 @@ void register_IntensityDataFunctions_class(){
             IntensityDataFunctions_exposer.def( 
                 "setEllipticMask"
                 , setEllipticMask_function_type( &::IntensityDataFunctions::setEllipticMask )
-                , ( bp::arg("data"), bp::arg("xc"), bp::arg("yc"), bp::arg("rx"), bp::arg("ry"), bp::arg("invert_flag")=(bool)(false) ) );
+                , ( bp::arg("data"), bp::arg("xc"), bp::arg("yc"), bp::arg("rx"), bp::arg("ry"), bp::arg("invert_flag")=(bool)(false) )
+                , "" );
         
         }
         { //::IntensityDataFunctions::setRectangularMask
@@ -101,7 +107,8 @@ void register_IntensityDataFunctions_class(){
             IntensityDataFunctions_exposer.def( 
                 "setRectangularMask"
                 , setRectangularMask_function_type( &::IntensityDataFunctions::setRectangularMask )
-                , ( bp::arg("data"), bp::arg("x1"), bp::arg("y1"), bp::arg("x2"), bp::arg("y2"), bp::arg("invert_flag")=(bool)(false) ) );
+                , ( bp::arg("data"), bp::arg("x1"), bp::arg("y1"), bp::arg("x2"), bp::arg("y2"), bp::arg("invert_flag")=(bool)(false) )
+                , "" );
         
         }
         IntensityDataFunctions_exposer.staticmethod( "addEllipticMask" );
diff --git a/Core/PythonAPI/src/IntensityDataIOFactory.pypp.cpp b/Core/PythonAPI/src/IntensityDataIOFactory.pypp.cpp
index f11cedf83f9..08c3a5949f8 100644
--- a/Core/PythonAPI/src/IntensityDataIOFactory.pypp.cpp
+++ b/Core/PythonAPI/src/IntensityDataIOFactory.pypp.cpp
@@ -30,7 +30,7 @@ void register_IntensityDataIOFactory_class(){
 
     { //::IntensityDataIOFactory
         typedef bp::class_< IntensityDataIOFactory > IntensityDataIOFactory_exposer_t;
-        IntensityDataIOFactory_exposer_t IntensityDataIOFactory_exposer = IntensityDataIOFactory_exposer_t( "IntensityDataIOFactory" );
+        IntensityDataIOFactory_exposer_t IntensityDataIOFactory_exposer = IntensityDataIOFactory_exposer_t( "IntensityDataIOFactory", "" );
         bp::scope IntensityDataIOFactory_scope( IntensityDataIOFactory_exposer );
         { //::IntensityDataIOFactory::getReader
         
@@ -39,7 +39,8 @@ void register_IntensityDataIOFactory_class(){
             IntensityDataIOFactory_exposer.def( 
                 "getReader"
                 , getReader_function_type( &::IntensityDataIOFactory::getReader )
-                , ( bp::arg("file_name") ) );
+                , ( bp::arg("file_name") )
+                , "" );
         
         }
         { //::IntensityDataIOFactory::getWriter
@@ -49,7 +50,8 @@ void register_IntensityDataIOFactory_class(){
             IntensityDataIOFactory_exposer.def( 
                 "getWriter"
                 , getWriter_function_type( &::IntensityDataIOFactory::getWriter )
-                , ( bp::arg("file_name") ) );
+                , ( bp::arg("file_name") )
+                , "" );
         
         }
         { //::IntensityDataIOFactory::readIntensityData
@@ -60,7 +62,8 @@ void register_IntensityDataIOFactory_class(){
                 "readIntensityData"
                 , readIntensityData_function_type( &::IntensityDataIOFactory::readIntensityData )
                 , ( bp::arg("file_name") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::IntensityDataIOFactory::writeIntensityData
@@ -70,7 +73,8 @@ void register_IntensityDataIOFactory_class(){
             IntensityDataIOFactory_exposer.def( 
                 "writeIntensityData"
                 , writeIntensityData_function_type( &::IntensityDataIOFactory::writeIntensityData )
-                , ( bp::arg("data"), bp::arg("file_name") ) );
+                , ( bp::arg("data"), bp::arg("file_name") )
+                , "" );
         
         }
         IntensityDataIOFactory_exposer.staticmethod( "getReader" );
diff --git a/Core/PythonAPI/src/InterferenceFunction1DLattice.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction1DLattice.pypp.cpp
index c9ecb833145..e2b338a9e2b 100644
--- a/Core/PythonAPI/src/InterferenceFunction1DLattice.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction1DLattice.pypp.cpp
@@ -268,7 +268,7 @@ void register_InterferenceFunction1DLattice_class(){
 
     { //::InterferenceFunction1DLattice
         typedef bp::class_< InterferenceFunction1DLattice_wrapper, bp::bases< IInterferenceFunction >, std::auto_ptr< InterferenceFunction1DLattice_wrapper >, boost::noncopyable > InterferenceFunction1DLattice_exposer_t;
-        InterferenceFunction1DLattice_exposer_t InterferenceFunction1DLattice_exposer = InterferenceFunction1DLattice_exposer_t( "InterferenceFunction1DLattice", bp::init< double, double >(( bp::arg("length"), bp::arg("xi") )) );
+        InterferenceFunction1DLattice_exposer_t InterferenceFunction1DLattice_exposer = InterferenceFunction1DLattice_exposer_t( "InterferenceFunction1DLattice", "", bp::init< double, double >(( bp::arg("length"), bp::arg("xi") ), "    //! @brief constructor\n    //! @param lattice_params Lattice parameters\n    //! @param length Lattice length\n    //! @param xi rotation of lattice with respect to x-axis") );
         bp::scope InterferenceFunction1DLattice_scope( InterferenceFunction1DLattice_exposer );
         { //::InterferenceFunction1DLattice::clone
         
@@ -300,7 +300,8 @@ void register_InterferenceFunction1DLattice_class(){
             
             InterferenceFunction1DLattice_exposer.def( 
                 "getLatticeParameters"
-                , getLatticeParameters_function_type( &::InterferenceFunction1DLattice::getLatticeParameters ) );
+                , getLatticeParameters_function_type( &::InterferenceFunction1DLattice::getLatticeParameters )
+                , "" );
         
         }
         { //::InterferenceFunction1DLattice::getProbabilityDistribution
@@ -310,7 +311,8 @@ void register_InterferenceFunction1DLattice_class(){
             InterferenceFunction1DLattice_exposer.def( 
                 "getProbabilityDistribution"
                 , getProbabilityDistribution_function_type( &::InterferenceFunction1DLattice::getProbabilityDistribution )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::InterferenceFunction1DLattice::setProbabilityDistribution
@@ -320,7 +322,8 @@ void register_InterferenceFunction1DLattice_class(){
             InterferenceFunction1DLattice_exposer.def( 
                 "setProbabilityDistribution"
                 , setProbabilityDistribution_function_type( &::InterferenceFunction1DLattice::setProbabilityDistribution )
-                , ( bp::arg("pdf") ) );
+                , ( bp::arg("pdf") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -455,7 +458,8 @@ void register_InterferenceFunction1DLattice_class(){
             InterferenceFunction1DLattice_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &InterferenceFunction1DLattice_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
index 1a08216e28b..3cd2696aa81 100644
--- a/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
@@ -268,7 +268,7 @@ void register_InterferenceFunction2DLattice_class(){
 
     { //::InterferenceFunction2DLattice
         typedef bp::class_< InterferenceFunction2DLattice_wrapper, bp::bases< IInterferenceFunction >, std::auto_ptr< InterferenceFunction2DLattice_wrapper >, boost::noncopyable > InterferenceFunction2DLattice_exposer_t;
-        InterferenceFunction2DLattice_exposer_t InterferenceFunction2DLattice_exposer = InterferenceFunction2DLattice_exposer_t( "InterferenceFunction2DLattice", bp::init< double, double, double, bp::optional< double > >(( bp::arg("length_1"), bp::arg("length_2"), bp::arg("angle"), bp::arg("xi")=0.0 )) );
+        InterferenceFunction2DLattice_exposer_t InterferenceFunction2DLattice_exposer = InterferenceFunction2DLattice_exposer_t( "InterferenceFunction2DLattice", "", bp::init< double, double, double, bp::optional< double > >(( bp::arg("length_1"), bp::arg("length_2"), bp::arg("angle"), bp::arg("xi")=0.0 ), "") );
         bp::scope InterferenceFunction2DLattice_scope( InterferenceFunction2DLattice_exposer );
         { //::InterferenceFunction2DLattice::clone
         
@@ -290,7 +290,8 @@ void register_InterferenceFunction2DLattice_class(){
                 "createHexagonal"
                 , createHexagonal_function_type( &::InterferenceFunction2DLattice::createHexagonal )
                 , ( bp::arg("lattice_length"), bp::arg("xi")=0.0 )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::InterferenceFunction2DLattice::createSquare
@@ -301,7 +302,8 @@ void register_InterferenceFunction2DLattice_class(){
                 "createSquare"
                 , createSquare_function_type( &::InterferenceFunction2DLattice::createSquare )
                 , ( bp::arg("lattice_length"), bp::arg("xi")=0.0 )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::InterferenceFunction2DLattice::evaluate
@@ -322,7 +324,8 @@ void register_InterferenceFunction2DLattice_class(){
             
             InterferenceFunction2DLattice_exposer.def( 
                 "getLatticeParameters"
-                , getLatticeParameters_function_type( &::InterferenceFunction2DLattice::getLatticeParameters ) );
+                , getLatticeParameters_function_type( &::InterferenceFunction2DLattice::getLatticeParameters )
+                , "" );
         
         }
         { //::InterferenceFunction2DLattice::getProbabilityDistribution
@@ -332,7 +335,8 @@ void register_InterferenceFunction2DLattice_class(){
             InterferenceFunction2DLattice_exposer.def( 
                 "getProbabilityDistribution"
                 , getProbabilityDistribution_function_type( &::InterferenceFunction2DLattice::getProbabilityDistribution )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::InterferenceFunction2DLattice::setProbabilityDistribution
@@ -342,7 +346,8 @@ void register_InterferenceFunction2DLattice_class(){
             InterferenceFunction2DLattice_exposer.def( 
                 "setProbabilityDistribution"
                 , setProbabilityDistribution_function_type( &::InterferenceFunction2DLattice::setProbabilityDistribution )
-                , ( bp::arg("pdf") ) );
+                , ( bp::arg("pdf") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -477,7 +482,8 @@ void register_InterferenceFunction2DLattice_class(){
             InterferenceFunction2DLattice_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &InterferenceFunction2DLattice_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
index d602b072a60..5fc7e1918d6 100644
--- a/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
@@ -268,7 +268,7 @@ void register_InterferenceFunction2DParaCrystal_class(){
 
     { //::InterferenceFunction2DParaCrystal
         typedef bp::class_< InterferenceFunction2DParaCrystal_wrapper, bp::bases< IInterferenceFunction >, std::auto_ptr< InterferenceFunction2DParaCrystal_wrapper >, boost::noncopyable > InterferenceFunction2DParaCrystal_exposer_t;
-        InterferenceFunction2DParaCrystal_exposer_t InterferenceFunction2DParaCrystal_exposer = InterferenceFunction2DParaCrystal_exposer_t( "InterferenceFunction2DParaCrystal", bp::init< double, double, double, bp::optional< double, double > >(( bp::arg("length_1"), bp::arg("length_2"), bp::arg("alpha_lattice"), bp::arg("xi")=0.0, bp::arg("damping_length")=0.0 )) );
+        InterferenceFunction2DParaCrystal_exposer_t InterferenceFunction2DParaCrystal_exposer = InterferenceFunction2DParaCrystal_exposer_t( "InterferenceFunction2DParaCrystal", "", bp::init< double, double, double, bp::optional< double, double > >(( bp::arg("length_1"), bp::arg("length_2"), bp::arg("alpha_lattice"), bp::arg("xi")=0.0, bp::arg("damping_length")=0.0 ), "") );
         bp::scope InterferenceFunction2DParaCrystal_scope( InterferenceFunction2DParaCrystal_exposer );
         { //::InterferenceFunction2DParaCrystal::clone
         
@@ -290,7 +290,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
                 "createHexagonal"
                 , createHexagonal_function_type( &::InterferenceFunction2DParaCrystal::createHexagonal )
                 , ( bp::arg("peak_distance"), bp::arg("corr_length")=0.0, bp::arg("domain_size_1")=0.0, bp::arg("domain_size_2")=0.0 )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::createSquare
@@ -301,7 +302,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
                 "createSquare"
                 , createSquare_function_type( &::InterferenceFunction2DParaCrystal::createSquare )
                 , ( bp::arg("peak_distance"), bp::arg("corr_length")=0.0, bp::arg("domain_size_1")=0.0, bp::arg("domain_size_2")=0.0 )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::evaluate
@@ -322,7 +324,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "getAlphaLattice"
-                , getAlphaLattice_function_type( &::InterferenceFunction2DParaCrystal::getAlphaLattice ) );
+                , getAlphaLattice_function_type( &::InterferenceFunction2DParaCrystal::getAlphaLattice )
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::getDampingLength
@@ -331,7 +334,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "getDampingLength"
-                , getDampingLength_function_type( &::InterferenceFunction2DParaCrystal::getDampingLength ) );
+                , getDampingLength_function_type( &::InterferenceFunction2DParaCrystal::getDampingLength )
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::getDomainSizes
@@ -340,7 +344,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "getDomainSizes"
-                , getDomainSizes_function_type( &::InterferenceFunction2DParaCrystal::getDomainSizes ) );
+                , getDomainSizes_function_type( &::InterferenceFunction2DParaCrystal::getDomainSizes )
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::getIntegrationOverXi
@@ -349,7 +354,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "getIntegrationOverXi"
-                , getIntegrationOverXi_function_type( &::InterferenceFunction2DParaCrystal::getIntegrationOverXi ) );
+                , getIntegrationOverXi_function_type( &::InterferenceFunction2DParaCrystal::getIntegrationOverXi )
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::getLatticeLengths
@@ -358,7 +364,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "getLatticeLengths"
-                , getLatticeLengths_function_type( &::InterferenceFunction2DParaCrystal::getLatticeLengths ) );
+                , getLatticeLengths_function_type( &::InterferenceFunction2DParaCrystal::getLatticeLengths )
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::getLatticeOrientation
@@ -367,7 +374,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "getLatticeOrientation"
-                , getLatticeOrientation_function_type( &::InterferenceFunction2DParaCrystal::getLatticeOrientation ) );
+                , getLatticeOrientation_function_type( &::InterferenceFunction2DParaCrystal::getLatticeOrientation )
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::setDomainSizes
@@ -377,7 +385,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "setDomainSizes"
                 , setDomainSizes_function_type( &::InterferenceFunction2DParaCrystal::setDomainSizes )
-                , ( bp::arg("size_1"), bp::arg("size_2") ) );
+                , ( bp::arg("size_1"), bp::arg("size_2") )
+                , "    //! @brief Sets sizes of coherence domain\n    //! @param size_1: size in first lattice direction\n    //! @param size_2: size in second lattice direction" );
         
         }
         { //::InterferenceFunction2DParaCrystal::setIntegrationOverXi
@@ -387,7 +396,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "setIntegrationOverXi"
                 , setIntegrationOverXi_function_type( &::InterferenceFunction2DParaCrystal::setIntegrationOverXi )
-                , ( bp::arg("integrate_xi") ) );
+                , ( bp::arg("integrate_xi") )
+                , "" );
         
         }
         { //::InterferenceFunction2DParaCrystal::setProbabilityDistributions
@@ -397,7 +407,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "setProbabilityDistributions"
                 , setProbabilityDistributions_function_type( &::InterferenceFunction2DParaCrystal::setProbabilityDistributions )
-                , ( bp::arg("pdf_1"), bp::arg("pdf_2") ) );
+                , ( bp::arg("pdf_1"), bp::arg("pdf_2") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -532,7 +543,8 @@ void register_InterferenceFunction2DParaCrystal_class(){
             InterferenceFunction2DParaCrystal_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &InterferenceFunction2DParaCrystal_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
index 0766c6be631..9d940d0ef4c 100644
--- a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
@@ -268,7 +268,7 @@ void register_InterferenceFunctionNone_class(){
 
     { //::InterferenceFunctionNone
         typedef bp::class_< InterferenceFunctionNone_wrapper, bp::bases< IInterferenceFunction >, std::auto_ptr< InterferenceFunctionNone_wrapper >, boost::noncopyable > InterferenceFunctionNone_exposer_t;
-        InterferenceFunctionNone_exposer_t InterferenceFunctionNone_exposer = InterferenceFunctionNone_exposer_t( "InterferenceFunctionNone", bp::init< >() );
+        InterferenceFunctionNone_exposer_t InterferenceFunctionNone_exposer = InterferenceFunctionNone_exposer_t( "InterferenceFunctionNone", "", bp::init< >("") );
         bp::scope InterferenceFunctionNone_scope( InterferenceFunctionNone_exposer );
         { //::InterferenceFunctionNone::clone
         
@@ -426,7 +426,8 @@ void register_InterferenceFunctionNone_class(){
             InterferenceFunctionNone_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &InterferenceFunctionNone_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/InterferenceFunctionRadialParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunctionRadialParaCrystal.pypp.cpp
index 99b4566661b..054ee47b1ed 100644
--- a/Core/PythonAPI/src/InterferenceFunctionRadialParaCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunctionRadialParaCrystal.pypp.cpp
@@ -268,7 +268,7 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
 
     { //::InterferenceFunctionRadialParaCrystal
         typedef bp::class_< InterferenceFunctionRadialParaCrystal_wrapper, bp::bases< IInterferenceFunction >, std::auto_ptr< InterferenceFunctionRadialParaCrystal_wrapper >, boost::noncopyable > InterferenceFunctionRadialParaCrystal_exposer_t;
-        InterferenceFunctionRadialParaCrystal_exposer_t InterferenceFunctionRadialParaCrystal_exposer = InterferenceFunctionRadialParaCrystal_exposer_t( "InterferenceFunctionRadialParaCrystal", bp::init< double, bp::optional< double > >(( bp::arg("peak_distance"), bp::arg("damping_length")=0.0 )) );
+        InterferenceFunctionRadialParaCrystal_exposer_t InterferenceFunctionRadialParaCrystal_exposer = InterferenceFunctionRadialParaCrystal_exposer_t( "InterferenceFunctionRadialParaCrystal", "", bp::init< double, bp::optional< double > >(( bp::arg("peak_distance"), bp::arg("damping_length")=0.0 ), "") );
         bp::scope InterferenceFunctionRadialParaCrystal_scope( InterferenceFunctionRadialParaCrystal_exposer );
         { //::InterferenceFunctionRadialParaCrystal::FTPDF
         
@@ -277,7 +277,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "FTPDF"
                 , FTPDF_function_type( &::InterferenceFunctionRadialParaCrystal::FTPDF )
-                , ( bp::arg("qpar") ) );
+                , ( bp::arg("qpar") )
+                , "" );
         
         }
         { //::InterferenceFunctionRadialParaCrystal::clone
@@ -310,7 +311,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "getDampingLength"
-                , getDampingLength_function_type( &::InterferenceFunctionRadialParaCrystal::getDampingLength ) );
+                , getDampingLength_function_type( &::InterferenceFunctionRadialParaCrystal::getDampingLength )
+                , "" );
         
         }
         { //::InterferenceFunctionRadialParaCrystal::getDomainSize
@@ -319,7 +321,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "getDomainSize"
-                , getDomainSize_function_type( &::InterferenceFunctionRadialParaCrystal::getDomainSize ) );
+                , getDomainSize_function_type( &::InterferenceFunctionRadialParaCrystal::getDomainSize )
+                , "    //! @brief Gets size of coherence domain\n    //! @param size: size in lattice direction" );
         
         }
         { //::InterferenceFunctionRadialParaCrystal::getKappa
@@ -339,7 +342,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "getPeakDistance"
-                , getPeakDistance_function_type( &::InterferenceFunctionRadialParaCrystal::getPeakDistance ) );
+                , getPeakDistance_function_type( &::InterferenceFunctionRadialParaCrystal::getPeakDistance )
+                , "" );
         
         }
         { //::InterferenceFunctionRadialParaCrystal::getPropabilityDistribution
@@ -349,7 +353,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "getPropabilityDistribution"
                 , getPropabilityDistribution_function_type( &::InterferenceFunctionRadialParaCrystal::getPropabilityDistribution )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Gets the Fourier transformed probability distribution of the\n    //! nearest particle" );
         
         }
         { //::InterferenceFunctionRadialParaCrystal::setDomainSize
@@ -359,7 +364,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "setDomainSize"
                 , setDomainSize_function_type( &::InterferenceFunctionRadialParaCrystal::setDomainSize )
-                , ( bp::arg("size") ) );
+                , ( bp::arg("size") )
+                , "    //! @brief Sets size of coherence domain\n    //! @param size: size in lattice direction" );
         
         }
         { //::InterferenceFunctionRadialParaCrystal::setKappa
@@ -369,7 +375,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "setKappa"
                 , setKappa_function_type( &::InterferenceFunctionRadialParaCrystal::setKappa )
-                , ( bp::arg("kappa") ) );
+                , ( bp::arg("kappa") )
+                , "    //! @brief Sets size-spacing coupling parameter\n    //! @param kappa: size-spacing coupling parameter" );
         
         }
         { //::InterferenceFunctionRadialParaCrystal::setProbabilityDistribution
@@ -379,7 +386,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "setProbabilityDistribution"
                 , setProbabilityDistribution_function_type( &::InterferenceFunctionRadialParaCrystal::setProbabilityDistribution )
-                , ( bp::arg("pdf") ) );
+                , ( bp::arg("pdf") )
+                , "    //! Sets the Fourier transformed probability distribution of the\n    //! nearest particle" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -503,7 +511,8 @@ void register_InterferenceFunctionRadialParaCrystal_class(){
             InterferenceFunctionRadialParaCrystal_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &InterferenceFunctionRadialParaCrystal_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/Lattice.pypp.cpp b/Core/PythonAPI/src/Lattice.pypp.cpp
index 51766a728a8..880de486d6e 100644
--- a/Core/PythonAPI/src/Lattice.pypp.cpp
+++ b/Core/PythonAPI/src/Lattice.pypp.cpp
@@ -30,10 +30,10 @@ void register_Lattice_class(){
 
     { //::Lattice
         typedef bp::class_< Lattice > Lattice_exposer_t;
-        Lattice_exposer_t Lattice_exposer = Lattice_exposer_t( "Lattice", bp::init< >() );
+        Lattice_exposer_t Lattice_exposer = Lattice_exposer_t( "Lattice", "", bp::init< >("") );
         bp::scope Lattice_scope( Lattice_exposer );
-        Lattice_exposer.def( bp::init< kvector_t const &, kvector_t const &, kvector_t const & >(( bp::arg("a1"), bp::arg("a2"), bp::arg("a3") )) );
-        Lattice_exposer.def( bp::init< Lattice const & >(( bp::arg("lattice") )) );
+        Lattice_exposer.def( bp::init< kvector_t const &, kvector_t const &, kvector_t const & >(( bp::arg("a1"), bp::arg("a2"), bp::arg("a3") ), "") );
+        Lattice_exposer.def( bp::init< Lattice const & >(( bp::arg("lattice") ), "") );
         { //::Lattice::createTrigonalLattice
         
             typedef ::Lattice ( *createTrigonalLattice_function_type )( double,double );
@@ -42,7 +42,8 @@ void register_Lattice_class(){
                 "createTrigonalLattice"
                 , createTrigonalLattice_function_type( &::Lattice::createTrigonalLattice )
                 , ( bp::arg("a"), bp::arg("c") )
-                , bp::return_value_policy< bp::return_by_value >() );
+                , bp::return_value_policy< bp::return_by_value >()
+                , "" );
         
         }
         { //::Lattice::getBasisVectorA
@@ -51,7 +52,8 @@ void register_Lattice_class(){
             
             Lattice_exposer.def( 
                 "getBasisVectorA"
-                , getBasisVectorA_function_type( &::Lattice::getBasisVectorA ) );
+                , getBasisVectorA_function_type( &::Lattice::getBasisVectorA )
+                , "    //! Returns basis vector a" );
         
         }
         { //::Lattice::getBasisVectorB
@@ -60,7 +62,8 @@ void register_Lattice_class(){
             
             Lattice_exposer.def( 
                 "getBasisVectorB"
-                , getBasisVectorB_function_type( &::Lattice::getBasisVectorB ) );
+                , getBasisVectorB_function_type( &::Lattice::getBasisVectorB )
+                , "    //! Returns basis vector b" );
         
         }
         { //::Lattice::getBasisVectorC
@@ -69,7 +72,8 @@ void register_Lattice_class(){
             
             Lattice_exposer.def( 
                 "getBasisVectorC"
-                , getBasisVectorC_function_type( &::Lattice::getBasisVectorC ) );
+                , getBasisVectorC_function_type( &::Lattice::getBasisVectorC )
+                , "    //! Returns basis vector c" );
         
         }
         { //::Lattice::setSelectionRule
@@ -79,7 +83,8 @@ void register_Lattice_class(){
             Lattice_exposer.def( 
                 "setSelectionRule"
                 , setSelectionRule_function_type( &::Lattice::setSelectionRule )
-                , ( bp::arg("p_selection_rule") ) );
+                , ( bp::arg("p_selection_rule") )
+                , "    //! Sets a selection rule for the reciprocal vectors" );
         
         }
         Lattice_exposer.staticmethod( "createTrigonalLattice" );
diff --git a/Core/PythonAPI/src/Lattice1DIFParameters.pypp.cpp b/Core/PythonAPI/src/Lattice1DIFParameters.pypp.cpp
index 7ffbf0a636d..cadd2947cc2 100644
--- a/Core/PythonAPI/src/Lattice1DIFParameters.pypp.cpp
+++ b/Core/PythonAPI/src/Lattice1DIFParameters.pypp.cpp
@@ -30,10 +30,10 @@ void register_Lattice1DIFParameters_class(){
 
     { //::Lattice1DIFParameters
         typedef bp::class_< Lattice1DIFParameters > Lattice1DIFParameters_exposer_t;
-        Lattice1DIFParameters_exposer_t Lattice1DIFParameters_exposer = Lattice1DIFParameters_exposer_t( "Lattice1DIFParameters", bp::init< >() );
+        Lattice1DIFParameters_exposer_t Lattice1DIFParameters_exposer = Lattice1DIFParameters_exposer_t( "Lattice1DIFParameters", "", bp::init< >("") );
         bp::scope Lattice1DIFParameters_scope( Lattice1DIFParameters_exposer );
-        Lattice1DIFParameters_exposer.def_readwrite( "m_length", &Lattice1DIFParameters::m_length );
-        Lattice1DIFParameters_exposer.def_readwrite( "m_xi", &Lattice1DIFParameters::m_xi );
+        Lattice1DIFParameters_exposer.def_readwrite( "m_length", &Lattice1DIFParameters::m_length, "" );
+        Lattice1DIFParameters_exposer.def_readwrite( "m_xi", &Lattice1DIFParameters::m_xi, "" );
     }
 
 }
diff --git a/Core/PythonAPI/src/Lattice2DIFParameters.pypp.cpp b/Core/PythonAPI/src/Lattice2DIFParameters.pypp.cpp
index 1227b9b7e75..e184b06ce49 100644
--- a/Core/PythonAPI/src/Lattice2DIFParameters.pypp.cpp
+++ b/Core/PythonAPI/src/Lattice2DIFParameters.pypp.cpp
@@ -30,12 +30,12 @@ void register_Lattice2DIFParameters_class(){
 
     { //::Lattice2DIFParameters
         typedef bp::class_< Lattice2DIFParameters > Lattice2DIFParameters_exposer_t;
-        Lattice2DIFParameters_exposer_t Lattice2DIFParameters_exposer = Lattice2DIFParameters_exposer_t( "Lattice2DIFParameters", bp::init< >() );
+        Lattice2DIFParameters_exposer_t Lattice2DIFParameters_exposer = Lattice2DIFParameters_exposer_t( "Lattice2DIFParameters", "", bp::init< >("") );
         bp::scope Lattice2DIFParameters_scope( Lattice2DIFParameters_exposer );
-        Lattice2DIFParameters_exposer.def_readwrite( "m_angle", &Lattice2DIFParameters::m_angle );
-        Lattice2DIFParameters_exposer.def_readwrite( "m_length_1", &Lattice2DIFParameters::m_length_1 );
-        Lattice2DIFParameters_exposer.def_readwrite( "m_length_2", &Lattice2DIFParameters::m_length_2 );
-        Lattice2DIFParameters_exposer.def_readwrite( "m_xi", &Lattice2DIFParameters::m_xi );
+        Lattice2DIFParameters_exposer.def_readwrite( "m_angle", &Lattice2DIFParameters::m_angle, "" );
+        Lattice2DIFParameters_exposer.def_readwrite( "m_length_1", &Lattice2DIFParameters::m_length_1, "" );
+        Lattice2DIFParameters_exposer.def_readwrite( "m_length_2", &Lattice2DIFParameters::m_length_2, "" );
+        Lattice2DIFParameters_exposer.def_readwrite( "m_xi", &Lattice2DIFParameters::m_xi, "" );
     }
 
 }
diff --git a/Core/PythonAPI/src/Layer.pypp.cpp b/Core/PythonAPI/src/Layer.pypp.cpp
index 55a27b2ec70..006159f94a0 100644
--- a/Core/PythonAPI/src/Layer.pypp.cpp
+++ b/Core/PythonAPI/src/Layer.pypp.cpp
@@ -366,10 +366,10 @@ void register_Layer_class(){
 
     { //::Layer
         typedef bp::class_< Layer_wrapper, bp::bases< ICompositeSample >, std::auto_ptr< Layer_wrapper >, boost::noncopyable > Layer_exposer_t;
-        Layer_exposer_t Layer_exposer = Layer_exposer_t( "Layer", bp::init< >() );
+        Layer_exposer_t Layer_exposer = Layer_exposer_t( "Layer", "", bp::init< >("    //! Constructs empty layer.") );
         bp::scope Layer_scope( Layer_exposer );
-        Layer_exposer.def( bp::init< IMaterial const &, bp::optional< double > >(( bp::arg("material"), bp::arg("thickness")=0 )) );
-        Layer_exposer.def( bp::init< Layer const & >(( bp::arg("other") )) );
+        Layer_exposer.def( bp::init< IMaterial const &, bp::optional< double > >(( bp::arg("material"), bp::arg("thickness")=0 ), "") );
+        Layer_exposer.def( bp::init< Layer const & >(( bp::arg("other") ), "") );
         { //::Layer::addLayout
         
             typedef void ( ::Layer::*addLayout_function_type)( ::ILayout const & ) ;
@@ -414,7 +414,8 @@ void register_Layer_class(){
                 "createLayoutSimulation"
                 , createLayoutSimulation_function_type( &::Layer::createLayoutSimulation )
                 , ( bp::arg("layout_index") )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! creates and returns a LayerDWBASimulation for the given layout" );
         
         }
         { //::Layer::getLayout
@@ -448,7 +449,8 @@ void register_Layer_class(){
             
             Layer_exposer.def( 
                 "getNumberOfLayers"
-                , getNumberOfLayers_function_type( &::Layer::getNumberOfLayers ) );
+                , getNumberOfLayers_function_type( &::Layer::getNumberOfLayers )
+                , "" );
         
         }
         { //::Layer::getNumberOfLayouts
@@ -457,7 +459,8 @@ void register_Layer_class(){
             
             Layer_exposer.def( 
                 "getNumberOfLayouts"
-                , getNumberOfLayouts_function_type( &::Layer::getNumberOfLayouts ) );
+                , getNumberOfLayouts_function_type( &::Layer::getNumberOfLayouts )
+                , "    //! gets number of layouts present" );
         
         }
         { //::Layer::getRefractiveIndex
@@ -488,7 +491,8 @@ void register_Layer_class(){
             
             Layer_exposer.def( 
                 "getTotalAbundance"
-                , getTotalAbundance_function_type( &::Layer::getTotalAbundance ) );
+                , getTotalAbundance_function_type( &::Layer::getTotalAbundance )
+                , "" );
         
         }
         { //::Layer::getTotalParticleSurfaceDensity
@@ -498,7 +502,8 @@ void register_Layer_class(){
             Layer_exposer.def( 
                 "getTotalParticleSurfaceDensity"
                 , getTotalParticleSurfaceDensity_function_type( &::Layer::getTotalParticleSurfaceDensity )
-                , ( bp::arg("layout_index") ) );
+                , ( bp::arg("layout_index") )
+                , "" );
         
         }
         { //::Layer::setMaterial
@@ -532,7 +537,8 @@ void register_Layer_class(){
             Layer_exposer.def( 
                 "setNumberOfLayers"
                 , setNumberOfLayers_function_type( &::Layer::setNumberOfLayers )
-                , ( bp::arg("n_layers") ) );
+                , ( bp::arg("n_layers") )
+                , "" );
         
         }
         { //::Layer::setThickness
@@ -656,7 +662,8 @@ void register_Layer_class(){
             Layer_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &Layer_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/LayerInterface.pypp.cpp b/Core/PythonAPI/src/LayerInterface.pypp.cpp
index 1f3675b5329..d7bab6bbad0 100644
--- a/Core/PythonAPI/src/LayerInterface.pypp.cpp
+++ b/Core/PythonAPI/src/LayerInterface.pypp.cpp
@@ -249,7 +249,7 @@ void register_LayerInterface_class(){
 
     { //::LayerInterface
         typedef bp::class_< LayerInterface_wrapper, bp::bases< ICompositeSample >, std::auto_ptr< LayerInterface_wrapper >, boost::noncopyable > LayerInterface_exposer_t;
-        LayerInterface_exposer_t LayerInterface_exposer = LayerInterface_exposer_t( "LayerInterface", bp::no_init );
+        LayerInterface_exposer_t LayerInterface_exposer = LayerInterface_exposer_t( "LayerInterface", "", bp::no_init );
         bp::scope LayerInterface_scope( LayerInterface_exposer );
         { //::LayerInterface::clone
         
@@ -270,7 +270,8 @@ void register_LayerInterface_class(){
             LayerInterface_exposer.def( 
                 "getLayerBottom"
                 , getLayerBottom_function_type( &::LayerInterface::getLayerBottom )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns bottom layer." );
         
         }
         { //::LayerInterface::getLayerTop
@@ -280,7 +281,8 @@ void register_LayerInterface_class(){
             LayerInterface_exposer.def( 
                 "getLayerTop"
                 , getLayerTop_function_type( &::LayerInterface::getLayerTop )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns top layer." );
         
         }
         { //::LayerInterface::getRoughness
@@ -290,7 +292,8 @@ void register_LayerInterface_class(){
             LayerInterface_exposer.def( 
                 "getRoughness"
                 , getRoughness_function_type( &::LayerInterface::getRoughness )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns roughness of the interface." );
         
         }
         { //::LayerInterface::setRoughness
@@ -300,7 +303,8 @@ void register_LayerInterface_class(){
             LayerInterface_exposer.def( 
                 "setRoughness"
                 , setRoughness_function_type( &::LayerInterface::setRoughness )
-                , ( bp::arg("roughness") ) );
+                , ( bp::arg("roughness") )
+                , "    //! Sets roughness of the interface." );
         
         }
         { //::IParameterized::areParametersChanged
@@ -424,7 +428,8 @@ void register_LayerInterface_class(){
             LayerInterface_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &LayerInterface_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/LayerRoughness.pypp.cpp b/Core/PythonAPI/src/LayerRoughness.pypp.cpp
index e2713900de6..8b0d4ca3fc8 100644
--- a/Core/PythonAPI/src/LayerRoughness.pypp.cpp
+++ b/Core/PythonAPI/src/LayerRoughness.pypp.cpp
@@ -251,9 +251,9 @@ void register_LayerRoughness_class(){
 
     { //::LayerRoughness
         typedef bp::class_< LayerRoughness_wrapper, std::auto_ptr< LayerRoughness_wrapper >, boost::noncopyable > LayerRoughness_exposer_t;
-        LayerRoughness_exposer_t LayerRoughness_exposer = LayerRoughness_exposer_t( "LayerRoughness", bp::init< >() );
+        LayerRoughness_exposer_t LayerRoughness_exposer = LayerRoughness_exposer_t( "LayerRoughness", "", bp::init< >("") );
         bp::scope LayerRoughness_scope( LayerRoughness_exposer );
-        LayerRoughness_exposer.def( bp::init< double, double, double >(( bp::arg("sigma"), bp::arg("hurstParameter"), bp::arg("latteralCorrLength") )) );
+        LayerRoughness_exposer.def( bp::init< double, double, double >(( bp::arg("sigma"), bp::arg("hurstParameter"), bp::arg("latteralCorrLength") ), "") );
         { //::LayerRoughness::clone
         
             typedef ::LayerRoughness * ( ::LayerRoughness::*clone_function_type)(  ) const;
@@ -273,7 +273,8 @@ void register_LayerRoughness_class(){
             LayerRoughness_exposer.def( 
                 "getCorrFun"
                 , getCorrFun_function_type( &::LayerRoughness::getCorrFun )
-                , ( bp::arg("k") ) );
+                , ( bp::arg("k") )
+                , "" );
         
         }
         { //::LayerRoughness::getHurstParameter
@@ -282,7 +283,8 @@ void register_LayerRoughness_class(){
             
             LayerRoughness_exposer.def( 
                 "getHurstParameter"
-                , getHurstParameter_function_type( &::LayerRoughness::getHurstParameter ) );
+                , getHurstParameter_function_type( &::LayerRoughness::getHurstParameter )
+                , "    //! Returns hurst parameter" );
         
         }
         { //::LayerRoughness::getLatteralCorrLength
@@ -291,7 +293,8 @@ void register_LayerRoughness_class(){
             
             LayerRoughness_exposer.def( 
                 "getLatteralCorrLength"
-                , getLatteralCorrLength_function_type( &::LayerRoughness::getLatteralCorrLength ) );
+                , getLatteralCorrLength_function_type( &::LayerRoughness::getLatteralCorrLength )
+                , "    //! Returns latteral correlation length" );
         
         }
         { //::LayerRoughness::getSigma
@@ -300,7 +303,8 @@ void register_LayerRoughness_class(){
             
             LayerRoughness_exposer.def( 
                 "getSigma"
-                , getSigma_function_type( &::LayerRoughness::getSigma ) );
+                , getSigma_function_type( &::LayerRoughness::getSigma )
+                , "    //! Returns rms of roughness" );
         
         }
         { //::LayerRoughness::getSpectralFun
@@ -310,7 +314,8 @@ void register_LayerRoughness_class(){
             LayerRoughness_exposer.def( 
                 "getSpectralFun"
                 , getSpectralFun_function_type( &::LayerRoughness::getSpectralFun )
-                , ( bp::arg("kvec") ) );
+                , ( bp::arg("kvec") )
+                , "    //! Returns power spectral density of the surface roughness" );
         
         }
         { //::LayerRoughness::setHurstParameter
@@ -320,7 +325,8 @@ void register_LayerRoughness_class(){
             LayerRoughness_exposer.def( 
                 "setHurstParameter"
                 , setHurstParameter_function_type( &::LayerRoughness::setHurstParameter )
-                , ( bp::arg("hurstParameter") ) );
+                , ( bp::arg("hurstParameter") )
+                , "    //! Sets hurst parameter. It describes how jagged the surface is." );
         
         }
         { //::LayerRoughness::setLatteralCorrLength
@@ -330,7 +336,8 @@ void register_LayerRoughness_class(){
             LayerRoughness_exposer.def( 
                 "setLatteralCorrLength"
                 , setLatteralCorrLength_function_type( &::LayerRoughness::setLatteralCorrLength )
-                , ( bp::arg("latteralCorrLength") ) );
+                , ( bp::arg("latteralCorrLength") )
+                , "    //! Sets lateral correlation length" );
         
         }
         { //::LayerRoughness::setSigma
@@ -340,7 +347,8 @@ void register_LayerRoughness_class(){
             LayerRoughness_exposer.def( 
                 "setSigma"
                 , setSigma_function_type( &::LayerRoughness::setSigma )
-                , ( bp::arg("sigma") ) );
+                , ( bp::arg("sigma") )
+                , "    //! Sets rms of roughness" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -464,7 +472,8 @@ void register_LayerRoughness_class(){
             LayerRoughness_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &LayerRoughness_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/MesoCrystal.pypp.cpp b/Core/PythonAPI/src/MesoCrystal.pypp.cpp
index 9fafdb7d777..f91f695eb5b 100644
--- a/Core/PythonAPI/src/MesoCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/MesoCrystal.pypp.cpp
@@ -232,7 +232,7 @@ void register_MesoCrystal_class(){
 
     { //::MesoCrystal
         typedef bp::class_< MesoCrystal_wrapper, bp::bases< IParticle >, std::auto_ptr< MesoCrystal_wrapper >, boost::noncopyable > MesoCrystal_exposer_t;
-        MesoCrystal_exposer_t MesoCrystal_exposer = MesoCrystal_exposer_t( "MesoCrystal", bp::init< IClusteredParticles const &, IFormFactor & >(( bp::arg("particle_structure"), bp::arg("form_factor") )) );
+        MesoCrystal_exposer_t MesoCrystal_exposer = MesoCrystal_exposer_t( "MesoCrystal", "", bp::init< IClusteredParticles const &, IFormFactor & >(( bp::arg("particle_structure"), bp::arg("form_factor") ), "") );
         bp::scope MesoCrystal_scope( MesoCrystal_exposer );
         { //::IParameterized::areParametersChanged
         
@@ -343,7 +343,8 @@ void register_MesoCrystal_class(){
             MesoCrystal_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &MesoCrystal_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/MultiLayer.pypp.cpp b/Core/PythonAPI/src/MultiLayer.pypp.cpp
index b01ac2c7d9a..998301be18c 100644
--- a/Core/PythonAPI/src/MultiLayer.pypp.cpp
+++ b/Core/PythonAPI/src/MultiLayer.pypp.cpp
@@ -256,7 +256,7 @@ void register_MultiLayer_class(){
 
     { //::MultiLayer
         typedef bp::class_< MultiLayer_wrapper, bp::bases< ICompositeSample >, std::auto_ptr< MultiLayer_wrapper >, boost::noncopyable > MultiLayer_exposer_t;
-        MultiLayer_exposer_t MultiLayer_exposer = MultiLayer_exposer_t( "MultiLayer", bp::init< >() );
+        MultiLayer_exposer_t MultiLayer_exposer = MultiLayer_exposer_t( "MultiLayer", "", bp::init< >("") );
         bp::scope MultiLayer_scope( MultiLayer_exposer );
         { //::MultiLayer::addLayer
         
@@ -265,7 +265,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "addLayer"
                 , addLayer_function_type( &::MultiLayer::addLayer )
-                , ( bp::arg("p_child") ) );
+                , ( bp::arg("p_child") )
+                , "    //! Adds object to multilayer, overrides from ISample" );
         
         }
         { //::MultiLayer::addLayerWithTopRoughness
@@ -275,7 +276,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "addLayerWithTopRoughness"
                 , addLayerWithTopRoughness_function_type( &::MultiLayer::addLayerWithTopRoughness )
-                , ( bp::arg("layer"), bp::arg("roughness") ) );
+                , ( bp::arg("layer"), bp::arg("roughness") )
+                , "" );
         
         }
         { //::MultiLayer::clear
@@ -284,7 +286,8 @@ void register_MultiLayer_class(){
             
             MultiLayer_exposer.def( 
                 "clear"
-                , clear_function_type( &::MultiLayer::clear ) );
+                , clear_function_type( &::MultiLayer::clear )
+                , "    //! Destructs allocated objects" );
         
         }
         { //::MultiLayer::clone
@@ -317,7 +320,8 @@ void register_MultiLayer_class(){
             
             MultiLayer_exposer.def( 
                 "getCrossCorrLength"
-                , getCrossCorrLength_function_type( &::MultiLayer::getCrossCorrLength ) );
+                , getCrossCorrLength_function_type( &::MultiLayer::getCrossCorrLength )
+                , "    //! Returns cross correlation length of roughnesses between interfaces" );
         
         }
         { //::MultiLayer::getCrossCorrSpectralFun
@@ -327,7 +331,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "getCrossCorrSpectralFun"
                 , getCrossCorrSpectralFun_function_type( &::MultiLayer::getCrossCorrSpectralFun )
-                , ( bp::arg("kvec"), bp::arg("j"), bp::arg("k") ) );
+                , ( bp::arg("kvec"), bp::arg("j"), bp::arg("k") )
+                , "" );
         
         }
         { //::MultiLayer::getLayer
@@ -338,7 +343,8 @@ void register_MultiLayer_class(){
                 "getLayer"
                 , getLayer_function_type( &::MultiLayer::getLayer )
                 , ( bp::arg("i_layer") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns layer with given index" );
         
         }
         { //::MultiLayer::getLayerBottomInterface
@@ -349,7 +355,8 @@ void register_MultiLayer_class(){
                 "getLayerBottomInterface"
                 , getLayerBottomInterface_function_type( &::MultiLayer::getLayerBottomInterface )
                 , ( bp::arg("i_layer") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns bottom interface of layer" );
         
         }
         { //::MultiLayer::getLayerBottomZ
@@ -359,7 +366,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "getLayerBottomZ"
                 , getLayerBottomZ_function_type( &::MultiLayer::getLayerBottomZ )
-                , ( bp::arg("i_layer") ) );
+                , ( bp::arg("i_layer") )
+                , "    //! Returns z-coordinate of the layer's bottom" );
         
         }
         { //::MultiLayer::getLayerInterface
@@ -370,7 +378,8 @@ void register_MultiLayer_class(){
                 "getLayerInterface"
                 , getLayerInterface_function_type( &::MultiLayer::getLayerInterface )
                 , ( bp::arg("i_interface") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns layer with given index" );
         
         }
         { //::MultiLayer::getLayerThickness
@@ -380,7 +389,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "getLayerThickness"
                 , getLayerThickness_function_type( &::MultiLayer::getLayerThickness )
-                , ( bp::arg("i_layer") ) );
+                , ( bp::arg("i_layer") )
+                , "    //! Returns thickness of layer" );
         
         }
         { //::MultiLayer::getLayerTopInterface
@@ -391,7 +401,8 @@ void register_MultiLayer_class(){
                 "getLayerTopInterface"
                 , getLayerTopInterface_function_type( &::MultiLayer::getLayerTopInterface )
                 , ( bp::arg("i_layer") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns top interface of layer" );
         
         }
         { //::MultiLayer::getNumberOfInterfaces
@@ -400,7 +411,8 @@ void register_MultiLayer_class(){
             
             MultiLayer_exposer.def( 
                 "getNumberOfInterfaces"
-                , getNumberOfInterfaces_function_type( &::MultiLayer::getNumberOfInterfaces ) );
+                , getNumberOfInterfaces_function_type( &::MultiLayer::getNumberOfInterfaces )
+                , "    //! Returns number of interfaces in multilayer" );
         
         }
         { //::MultiLayer::getNumberOfLayers
@@ -409,7 +421,8 @@ void register_MultiLayer_class(){
             
             MultiLayer_exposer.def( 
                 "getNumberOfLayers"
-                , getNumberOfLayers_function_type( &::MultiLayer::getNumberOfLayers ) );
+                , getNumberOfLayers_function_type( &::MultiLayer::getNumberOfLayers )
+                , "    //! Returns number of layers in multilayer" );
         
         }
         { //::MultiLayer::requiresMatrixRTCoefficients
@@ -418,7 +431,8 @@ void register_MultiLayer_class(){
             
             MultiLayer_exposer.def( 
                 "requiresMatrixRTCoefficients"
-                , requiresMatrixRTCoefficients_function_type( &::MultiLayer::requiresMatrixRTCoefficients ) );
+                , requiresMatrixRTCoefficients_function_type( &::MultiLayer::requiresMatrixRTCoefficients )
+                , "    //! returns true if contains magnetic materials and matrix calculations are required" );
         
         }
         { //::MultiLayer::setCrossCorrLength
@@ -428,7 +442,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "setCrossCorrLength"
                 , setCrossCorrLength_function_type( &::MultiLayer::setCrossCorrLength )
-                , ( bp::arg("crossCorrLength") ) );
+                , ( bp::arg("crossCorrLength") )
+                , "    //! Sets cross correlation length of roughnesses between interfaces" );
         
         }
         { //::MultiLayer::setLayerThickness
@@ -438,7 +453,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "setLayerThickness"
                 , setLayerThickness_function_type( &::MultiLayer::setLayerThickness )
-                , ( bp::arg("i_layer"), bp::arg("thickness") ) );
+                , ( bp::arg("i_layer"), bp::arg("thickness") )
+                , "    //! Sets thickness of layer." );
         
         }
         { //::MultiLayer::zToLayerIndex
@@ -448,7 +464,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "zToLayerIndex"
                 , zToLayerIndex_function_type( &::MultiLayer::zToLayerIndex )
-                , ( bp::arg("z_value") ) );
+                , ( bp::arg("z_value") )
+                , "    //! returns layer index corresponding to given global z coordinate" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -560,7 +577,8 @@ void register_MultiLayer_class(){
             MultiLayer_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &MultiLayer_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/OffSpecSimulation.pypp.cpp b/Core/PythonAPI/src/OffSpecSimulation.pypp.cpp
index c55b3fa95fa..6271e5aecd9 100644
--- a/Core/PythonAPI/src/OffSpecSimulation.pypp.cpp
+++ b/Core/PythonAPI/src/OffSpecSimulation.pypp.cpp
@@ -172,7 +172,7 @@ void register_OffSpecSimulation_class(){
 
     { //::OffSpecSimulation
         typedef bp::class_< OffSpecSimulation_wrapper, bp::bases< ICloneable, IParameterized >, std::auto_ptr< OffSpecSimulation_wrapper >, boost::noncopyable > OffSpecSimulation_exposer_t;
-        OffSpecSimulation_exposer_t OffSpecSimulation_exposer = OffSpecSimulation_exposer_t( "OffSpecSimulation", bp::init< >() );
+        OffSpecSimulation_exposer_t OffSpecSimulation_exposer = OffSpecSimulation_exposer_t( "OffSpecSimulation", "", bp::init< >("") );
         bp::scope OffSpecSimulation_scope( OffSpecSimulation_exposer );
         { //::OffSpecSimulation::clone
         
@@ -193,7 +193,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "getInstrument"
                 , getInstrument_function_type( &::OffSpecSimulation::getInstrument )
-                , bp::return_value_policy< bp::copy_const_reference >() );
+                , bp::return_value_policy< bp::copy_const_reference >()
+                , "    //! Returns the instrument containing beam and detector information" );
         
         }
         { //::OffSpecSimulation::getIntensityData
@@ -203,7 +204,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "getIntensityData"
                 , getIntensityData_function_type( &::OffSpecSimulation::getIntensityData )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Clone detector intensity map for all scan parameters." );
         
         }
         { //::OffSpecSimulation::getPolarizedIntensityData
@@ -214,7 +216,8 @@ void register_OffSpecSimulation_class(){
                 "getPolarizedIntensityData"
                 , getPolarizedIntensityData_function_type( &::OffSpecSimulation::getPolarizedIntensityData )
                 , ( bp::arg("row"), bp::arg("column") )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! returns component of polarized intensity map" );
         
         }
         { //::OffSpecSimulation::getSample
@@ -224,7 +227,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "getSample"
                 , getSample_function_type( &::OffSpecSimulation::getSample )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns the sample" );
         
         }
         { //::OffSpecSimulation::getSampleBuilder
@@ -233,7 +237,8 @@ void register_OffSpecSimulation_class(){
             
             OffSpecSimulation_exposer.def( 
                 "getSampleBuilder"
-                , getSampleBuilder_function_type( &::OffSpecSimulation::getSampleBuilder ) );
+                , getSampleBuilder_function_type( &::OffSpecSimulation::getSampleBuilder )
+                , "    //! return sample builder" );
         
         }
         { //::OffSpecSimulation::getSimulationParameters
@@ -242,7 +247,8 @@ void register_OffSpecSimulation_class(){
             
             OffSpecSimulation_exposer.def( 
                 "getSimulationParameters"
-                , getSimulationParameters_function_type( &::OffSpecSimulation::getSimulationParameters ) );
+                , getSimulationParameters_function_type( &::OffSpecSimulation::getSimulationParameters )
+                , "    //! Returns simulation parameters" );
         
         }
         { //::OffSpecSimulation::prepareSimulation
@@ -251,7 +257,8 @@ void register_OffSpecSimulation_class(){
             
             OffSpecSimulation_exposer.def( 
                 "prepareSimulation"
-                , prepareSimulation_function_type( &::OffSpecSimulation::prepareSimulation ) );
+                , prepareSimulation_function_type( &::OffSpecSimulation::prepareSimulation )
+                , "    //! Put into a clean state for running a simulation" );
         
         }
         { //::OffSpecSimulation::runSimulation
@@ -260,7 +267,8 @@ void register_OffSpecSimulation_class(){
             
             OffSpecSimulation_exposer.def( 
                 "runSimulation"
-                , runSimulation_function_type( &::OffSpecSimulation::runSimulation ) );
+                , runSimulation_function_type( &::OffSpecSimulation::runSimulation )
+                , "    //! Run a simulation with the current parameter settings" );
         
         }
         { //::OffSpecSimulation::setBeamIntensity
@@ -270,7 +278,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setBeamIntensity"
                 , setBeamIntensity_function_type( &::OffSpecSimulation::setBeamIntensity )
-                , ( bp::arg("intensity") ) );
+                , ( bp::arg("intensity") )
+                , "    //! Sets beam intensity from here (forwarded to Instrument)" );
         
         }
         { //::OffSpecSimulation::setBeamParameters
@@ -280,7 +289,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setBeamParameters"
                 , setBeamParameters_function_type( &::OffSpecSimulation::setBeamParameters )
-                , ( bp::arg("lambda"), bp::arg("alpha_axis"), bp::arg("phi_i") ) );
+                , ( bp::arg("lambda"), bp::arg("alpha_axis"), bp::arg("phi_i") )
+                , "    //! Sets beam parameters from here (forwarded to Instrument)" );
         
         }
         { //::OffSpecSimulation::setDetectorParameters
@@ -290,7 +300,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setDetectorParameters"
                 , setDetectorParameters_function_type( &::OffSpecSimulation::setDetectorParameters )
-                , ( bp::arg("output_data") ) );
+                , ( bp::arg("output_data") )
+                , "    //! Sets detector parameters using axes of output data" );
         
         }
         { //::OffSpecSimulation::setDetectorParameters
@@ -300,7 +311,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setDetectorParameters"
                 , setDetectorParameters_function_type( &::OffSpecSimulation::setDetectorParameters )
-                , ( bp::arg("n_phi"), bp::arg("phi_f_min"), bp::arg("phi_f_max"), bp::arg("n_alpha"), bp::arg("alpha_f_min"), bp::arg("alpha_f_max"), bp::arg("isgisaxs_style")=(bool)(false) ) );
+                , ( bp::arg("n_phi"), bp::arg("phi_f_min"), bp::arg("phi_f_max"), bp::arg("n_alpha"), bp::arg("alpha_f_min"), bp::arg("alpha_f_max"), bp::arg("isgisaxs_style")=(bool)(false) )
+                , "" );
         
         }
         { //::OffSpecSimulation::setDetectorParameters
@@ -310,7 +322,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setDetectorParameters"
                 , setDetectorParameters_function_type( &::OffSpecSimulation::setDetectorParameters )
-                , ( bp::arg("params") ) );
+                , ( bp::arg("params") )
+                , "    //! Sets detector parameters using parameter object" );
         
         }
         { //::OffSpecSimulation::setDetectorResolutionFunction
@@ -320,7 +333,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setDetectorResolutionFunction"
                 , setDetectorResolutionFunction_function_type( &::OffSpecSimulation::setDetectorResolutionFunction )
-                , ( bp::arg("resolution_function") ) );
+                , ( bp::arg("resolution_function") )
+                , "" );
         
         }
         { //::OffSpecSimulation::setInstrument
@@ -330,7 +344,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setInstrument"
                 , setInstrument_function_type( &::OffSpecSimulation::setInstrument )
-                , ( bp::arg("instrument") ) );
+                , ( bp::arg("instrument") )
+                , "    //! Sets the instrument containing beam and detector information" );
         
         }
         { //::OffSpecSimulation::setSample
@@ -340,7 +355,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setSample"
                 , setSample_function_type( &::OffSpecSimulation::setSample )
-                , ( bp::arg("sample") ) );
+                , ( bp::arg("sample") )
+                , "    //! Sets the sample to be tested" );
         
         }
         { //::OffSpecSimulation::setSampleBuilder
@@ -350,7 +366,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setSampleBuilder"
                 , setSampleBuilder_function_type( &::OffSpecSimulation::setSampleBuilder )
-                , ( bp::arg("sample_builder") ) );
+                , ( bp::arg("sample_builder") )
+                , "    //! Sets the sample builder" );
         
         }
         { //::OffSpecSimulation::setSimulationParameters
@@ -360,7 +377,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setSimulationParameters"
                 , setSimulationParameters_function_type( &::OffSpecSimulation::setSimulationParameters )
-                , ( bp::arg("sim_params") ) );
+                , ( bp::arg("sim_params") )
+                , "    //! Sets simulation parameters" );
         
         }
         { //::OffSpecSimulation::setThreadInfo
@@ -370,7 +388,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "setThreadInfo"
                 , setThreadInfo_function_type( &::OffSpecSimulation::setThreadInfo )
-                , ( bp::arg("thread_info") ) );
+                , ( bp::arg("thread_info") )
+                , "    //! Sets the batch and thread information to be used" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -425,7 +444,8 @@ void register_OffSpecSimulation_class(){
             OffSpecSimulation_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &OffSpecSimulation_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ParameterDistribution.pypp.cpp b/Core/PythonAPI/src/ParameterDistribution.pypp.cpp
index 401b50da7f3..be231c39878 100644
--- a/Core/PythonAPI/src/ParameterDistribution.pypp.cpp
+++ b/Core/PythonAPI/src/ParameterDistribution.pypp.cpp
@@ -148,10 +148,10 @@ void register_ParameterDistribution_class(){
 
     { //::ParameterDistribution
         typedef bp::class_< ParameterDistribution_wrapper, bp::bases< IParameterized > > ParameterDistribution_exposer_t;
-        ParameterDistribution_exposer_t ParameterDistribution_exposer = ParameterDistribution_exposer_t( "ParameterDistribution", bp::init< std::string const &, IDistribution1D const &, std::size_t, bp::optional< double, AttLimits const & > >(( bp::arg("par_name"), bp::arg("distribution"), bp::arg("nbr_samples"), bp::arg("sigma_factor")=0.0, bp::arg("limits")=::AttLimits( ) )) );
+        ParameterDistribution_exposer_t ParameterDistribution_exposer = ParameterDistribution_exposer_t( "ParameterDistribution", "", bp::init< std::string const &, IDistribution1D const &, std::size_t, bp::optional< double, AttLimits const & > >(( bp::arg("par_name"), bp::arg("distribution"), bp::arg("nbr_samples"), bp::arg("sigma_factor")=0.0, bp::arg("limits")=::AttLimits( ) ), "") );
         bp::scope ParameterDistribution_scope( ParameterDistribution_exposer );
-        ParameterDistribution_exposer.def( bp::init< std::string const &, IDistribution1D const &, std::size_t, double, double >(( bp::arg("par_name"), bp::arg("distribution"), bp::arg("nbr_samples"), bp::arg("xmin"), bp::arg("xmax") )) );
-        ParameterDistribution_exposer.def( bp::init< ParameterDistribution const & >(( bp::arg("other") )) );
+        ParameterDistribution_exposer.def( bp::init< std::string const &, IDistribution1D const &, std::size_t, double, double >(( bp::arg("par_name"), bp::arg("distribution"), bp::arg("nbr_samples"), bp::arg("xmin"), bp::arg("xmax") ), "") );
+        ParameterDistribution_exposer.def( bp::init< ParameterDistribution const & >(( bp::arg("other") ), "") );
         { //::ParameterDistribution::getDistribution
         
             typedef ::IDistribution1D const * ( ::ParameterDistribution::*getDistribution_function_type)(  ) const;
@@ -159,7 +159,8 @@ void register_ParameterDistribution_class(){
             ParameterDistribution_exposer.def( 
                 "getDistribution"
                 , getDistribution_function_type( &::ParameterDistribution::getDistribution )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::ParameterDistribution::getLimits
@@ -168,7 +169,8 @@ void register_ParameterDistribution_class(){
             
             ParameterDistribution_exposer.def( 
                 "getLimits"
-                , getLimits_function_type( &::ParameterDistribution::getLimits ) );
+                , getLimits_function_type( &::ParameterDistribution::getLimits )
+                , "" );
         
         }
         { //::ParameterDistribution::getMainParameterName
@@ -177,7 +179,8 @@ void register_ParameterDistribution_class(){
             
             ParameterDistribution_exposer.def( 
                 "getMainParameterName"
-                , getMainParameterName_function_type( &::ParameterDistribution::getMainParameterName ) );
+                , getMainParameterName_function_type( &::ParameterDistribution::getMainParameterName )
+                , "    //! get the main parameter's name" );
         
         }
         { //::ParameterDistribution::getMaxValue
@@ -186,7 +189,8 @@ void register_ParameterDistribution_class(){
             
             ParameterDistribution_exposer.def( 
                 "getMaxValue"
-                , getMaxValue_function_type( &::ParameterDistribution::getMaxValue ) );
+                , getMaxValue_function_type( &::ParameterDistribution::getMaxValue )
+                , "" );
         
         }
         { //::ParameterDistribution::getMinValue
@@ -195,7 +199,8 @@ void register_ParameterDistribution_class(){
             
             ParameterDistribution_exposer.def( 
                 "getMinValue"
-                , getMinValue_function_type( &::ParameterDistribution::getMinValue ) );
+                , getMinValue_function_type( &::ParameterDistribution::getMinValue )
+                , "" );
         
         }
         { //::ParameterDistribution::getNbrSamples
@@ -204,7 +209,8 @@ void register_ParameterDistribution_class(){
             
             ParameterDistribution_exposer.def( 
                 "getNbrSamples"
-                , getNbrSamples_function_type( &::ParameterDistribution::getNbrSamples ) );
+                , getNbrSamples_function_type( &::ParameterDistribution::getNbrSamples )
+                , "    //! get number of samples for this distribution" );
         
         }
         { //::ParameterDistribution::getSigmaFactor
@@ -213,7 +219,8 @@ void register_ParameterDistribution_class(){
             
             ParameterDistribution_exposer.def( 
                 "getSigmaFactor"
-                , getSigmaFactor_function_type( &::ParameterDistribution::getSigmaFactor ) );
+                , getSigmaFactor_function_type( &::ParameterDistribution::getSigmaFactor )
+                , "    //! get the sigma factor" );
         
         }
         { //::ParameterDistribution::linkParameter
@@ -224,7 +231,8 @@ void register_ParameterDistribution_class(){
                 "linkParameter"
                 , linkParameter_function_type( &::ParameterDistribution::linkParameter )
                 , ( bp::arg("par_name") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::ParameterDistribution::operator=
@@ -235,7 +243,8 @@ void register_ParameterDistribution_class(){
                 "assign"
                 , assign_function_type( &::ParameterDistribution::operator= )
                 , ( bp::arg("other") )
-                , bp::return_self< >() );
+                , bp::return_self< >()
+                , "    //! Overload assignment operator" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -290,7 +299,8 @@ void register_ParameterDistribution_class(){
             ParameterDistribution_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ParameterDistribution_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ParameterPool.pypp.cpp b/Core/PythonAPI/src/ParameterPool.pypp.cpp
index 42c6118a21e..7c49d0725f2 100644
--- a/Core/PythonAPI/src/ParameterPool.pypp.cpp
+++ b/Core/PythonAPI/src/ParameterPool.pypp.cpp
@@ -79,7 +79,7 @@ void register_ParameterPool_class(){
 
     { //::ParameterPool
         typedef bp::class_< ParameterPool_wrapper, bp::bases< ICloneable >, std::auto_ptr< ParameterPool_wrapper >, boost::noncopyable > ParameterPool_exposer_t;
-        ParameterPool_exposer_t ParameterPool_exposer = ParameterPool_exposer_t( "ParameterPool", bp::init< >() );
+        ParameterPool_exposer_t ParameterPool_exposer = ParameterPool_exposer_t( "ParameterPool", "", bp::init< >("    //! Constructs an empty parameter pool.") );
         bp::scope ParameterPool_scope( ParameterPool_exposer );
         { //::ParameterPool::addParameter
         
@@ -88,7 +88,8 @@ void register_ParameterPool_class(){
             ParameterPool_exposer.def( 
                 "addParameter"
                 , addParameter_function_type( &::ParameterPool::addParameter )
-                , ( bp::arg("name"), bp::arg("par") ) );
+                , ( bp::arg("name"), bp::arg("par") )
+                , "    //! Adds parameter to the pool" );
         
         }
         { //::ParameterPool::clear
@@ -97,7 +98,8 @@ void register_ParameterPool_class(){
             
             ParameterPool_exposer.def( 
                 "clear"
-                , clear_function_type( &::ParameterPool::clear ) );
+                , clear_function_type( &::ParameterPool::clear )
+                , "    //! Deletes parameter map." );
         
         }
         { //::ParameterPool::clone
@@ -120,7 +122,8 @@ void register_ParameterPool_class(){
                 "cloneWithPrefix"
                 , cloneWithPrefix_function_type( &::ParameterPool::cloneWithPrefix )
                 , ( bp::arg("prefix") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns a clone with _prefix_ added to every parameter key." );
         
         }
         { //::ParameterPool::getParameter
@@ -130,7 +133,8 @@ void register_ParameterPool_class(){
             ParameterPool_exposer.def( 
                 "getParameter"
                 , getParameter_function_type( &::ParameterPool::getParameter )
-                , ( bp::arg("name") ) );
+                , ( bp::arg("name") )
+                , "    //! Returns parameter named _name_." );
         
         }
         { //::ParameterPool::setMatchedParametersValue
@@ -140,7 +144,8 @@ void register_ParameterPool_class(){
             ParameterPool_exposer.def( 
                 "setMatchedParametersValue"
                 , setMatchedParametersValue_function_type( &::ParameterPool::setMatchedParametersValue )
-                , ( bp::arg("wildcards"), bp::arg("value") ) );
+                , ( bp::arg("wildcards"), bp::arg("value") )
+                , "    //! Sets parameter value, return number of changed parameters" );
         
         }
         { //::ParameterPool::setParameterValue
@@ -150,7 +155,8 @@ void register_ParameterPool_class(){
             ParameterPool_exposer.def( 
                 "setParameterValue"
                 , setParameterValue_function_type( &::ParameterPool::setParameterValue )
-                , ( bp::arg("name"), bp::arg("value") ) );
+                , ( bp::arg("name"), bp::arg("value") )
+                , "    //! Sets parameter value, return true in the case of success" );
         
         }
         { //::ParameterPool::size
@@ -159,7 +165,8 @@ void register_ParameterPool_class(){
             
             ParameterPool_exposer.def( 
                 "size"
-                , size_function_type( &::ParameterPool::size ) );
+                , size_function_type( &::ParameterPool::size )
+                , "    //! Returns size of parameter container." );
         
         }
         { //::ICloneable::transferToCPP
diff --git a/Core/PythonAPI/src/Particle.pypp.cpp b/Core/PythonAPI/src/Particle.pypp.cpp
index 28d44ff4206..92f7a985f6e 100644
--- a/Core/PythonAPI/src/Particle.pypp.cpp
+++ b/Core/PythonAPI/src/Particle.pypp.cpp
@@ -349,11 +349,11 @@ void register_Particle_class(){
 
     { //::Particle
         typedef bp::class_< Particle_wrapper, bp::bases< IParticle >, std::auto_ptr< Particle_wrapper >, boost::noncopyable > Particle_exposer_t;
-        Particle_exposer_t Particle_exposer = Particle_exposer_t( "Particle", bp::init< >() );
+        Particle_exposer_t Particle_exposer = Particle_exposer_t( "Particle", "", bp::init< >("") );
         bp::scope Particle_scope( Particle_exposer );
-        Particle_exposer.def( bp::init< IMaterial const & >(( bp::arg("p_material") )) );
-        Particle_exposer.def( bp::init< IMaterial const &, IFormFactor const & >(( bp::arg("p_material"), bp::arg("form_factor") )) );
-        Particle_exposer.def( bp::init< IMaterial const &, IFormFactor const &, IRotation const & >(( bp::arg("p_material"), bp::arg("form_factor"), bp::arg("rotation") )) );
+        Particle_exposer.def( bp::init< IMaterial const & >(( bp::arg("p_material") ), "") );
+        Particle_exposer.def( bp::init< IMaterial const &, IFormFactor const & >(( bp::arg("p_material"), bp::arg("form_factor") ), "") );
+        Particle_exposer.def( bp::init< IMaterial const &, IFormFactor const &, IRotation const & >(( bp::arg("p_material"), bp::arg("form_factor"), bp::arg("rotation") ), "") );
         { //::Particle::clone
         
             typedef ::Particle * ( ::Particle::*clone_function_type)(  ) const;
@@ -410,7 +410,8 @@ void register_Particle_class(){
             Particle_exposer.def( 
                 "getFormFactor"
                 , getFormFactor_function_type( &::Particle::getFormFactor )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns the form factor" );
         
         }
         { //::Particle::getMaterial
@@ -455,7 +456,8 @@ void register_Particle_class(){
             Particle_exposer.def( 
                 "setFormFactor"
                 , setFormFactor_function_type( &::Particle::setFormFactor )
-                , ( bp::arg("form_factor") ) );
+                , ( bp::arg("form_factor") )
+                , "    //! Sets the form factor" );
         
         }
         { //::Particle::setMaterial
@@ -579,7 +581,8 @@ void register_Particle_class(){
             Particle_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &Particle_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ParticleComposition.pypp.cpp b/Core/PythonAPI/src/ParticleComposition.pypp.cpp
index aacd2442119..6ee341696a0 100644
--- a/Core/PythonAPI/src/ParticleComposition.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleComposition.pypp.cpp
@@ -232,7 +232,7 @@ void register_ParticleComposition_class(){
 
     { //::ParticleComposition
         typedef bp::class_< ParticleComposition_wrapper, bp::bases< IParticle >, std::auto_ptr< ParticleComposition_wrapper >, boost::noncopyable > ParticleComposition_exposer_t;
-        ParticleComposition_exposer_t ParticleComposition_exposer = ParticleComposition_exposer_t( "ParticleComposition", bp::init< >() );
+        ParticleComposition_exposer_t ParticleComposition_exposer = ParticleComposition_exposer_t( "ParticleComposition", "", bp::init< >("") );
         bp::scope ParticleComposition_scope( ParticleComposition_exposer );
         { //::ParticleComposition::addParticle
         
@@ -241,7 +241,8 @@ void register_ParticleComposition_class(){
             ParticleComposition_exposer.def( 
                 "addParticle"
                 , addParticle_function_type( &::ParticleComposition::addParticle )
-                , ( bp::arg("particle"), bp::arg("position") ) );
+                , ( bp::arg("particle"), bp::arg("position") )
+                , "" );
         
         }
         { //::ParticleComposition::addParticles
@@ -251,7 +252,8 @@ void register_ParticleComposition_class(){
             ParticleComposition_exposer.def( 
                 "addParticles"
                 , addParticles_function_type( &::ParticleComposition::addParticles )
-                , ( bp::arg("particle"), bp::arg("positions") ) );
+                , ( bp::arg("particle"), bp::arg("positions") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -363,7 +365,8 @@ void register_ParticleComposition_class(){
             ParticleComposition_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ParticleComposition_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp b/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
index b2d8fa35af9..bac4fdcd451 100644
--- a/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
@@ -232,7 +232,7 @@ void register_ParticleCoreShell_class(){
 
     { //::ParticleCoreShell
         typedef bp::class_< ParticleCoreShell_wrapper, bp::bases< IParticle >, std::auto_ptr< ParticleCoreShell_wrapper >, boost::noncopyable > ParticleCoreShell_exposer_t;
-        ParticleCoreShell_exposer_t ParticleCoreShell_exposer = ParticleCoreShell_exposer_t( "ParticleCoreShell", bp::init< Particle const &, Particle const &, kvector_t >(( bp::arg("shell"), bp::arg("core"), bp::arg("relative_core_position") )) );
+        ParticleCoreShell_exposer_t ParticleCoreShell_exposer = ParticleCoreShell_exposer_t( "ParticleCoreShell", "", bp::init< Particle const &, Particle const &, kvector_t >(( bp::arg("shell"), bp::arg("core"), bp::arg("relative_core_position") ), "") );
         bp::scope ParticleCoreShell_scope( ParticleCoreShell_exposer );
         { //::IParameterized::areParametersChanged
         
@@ -343,7 +343,8 @@ void register_ParticleCoreShell_class(){
             ParticleCoreShell_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ParticleCoreShell_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ParticleDistribution.pypp.cpp b/Core/PythonAPI/src/ParticleDistribution.pypp.cpp
index 83ba92f4488..85143bcfa50 100644
--- a/Core/PythonAPI/src/ParticleDistribution.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleDistribution.pypp.cpp
@@ -299,9 +299,9 @@ void register_ParticleDistribution_class(){
 
     { //::ParticleDistribution
         typedef bp::class_< ParticleDistribution_wrapper, bp::bases< IParticle >, std::auto_ptr< ParticleDistribution_wrapper >, boost::noncopyable > ParticleDistribution_exposer_t;
-        ParticleDistribution_exposer_t ParticleDistribution_exposer = ParticleDistribution_exposer_t( "ParticleDistribution", bp::init< IParticle const &, ParameterDistribution const & >(( bp::arg("prototype"), bp::arg("par_distr") )) );
+        ParticleDistribution_exposer_t ParticleDistribution_exposer = ParticleDistribution_exposer_t( "ParticleDistribution", "", bp::init< IParticle const &, ParameterDistribution const & >(( bp::arg("prototype"), bp::arg("par_distr") ), "") );
         bp::scope ParticleDistribution_scope( ParticleDistribution_exposer );
-        ParticleDistribution_exposer.def( bp::init< IParticle const &, ParameterDistribution const &, kvector_t >(( bp::arg("prototype"), bp::arg("par_distr"), bp::arg("position") )) );
+        ParticleDistribution_exposer.def( bp::init< IParticle const &, ParameterDistribution const &, kvector_t >(( bp::arg("prototype"), bp::arg("par_distr"), bp::arg("position") ), "") );
         { //::ParticleDistribution::clone
         
             typedef ::ParticleDistribution * ( ::ParticleDistribution::*clone_function_type)(  ) const;
@@ -333,7 +333,8 @@ void register_ParticleDistribution_class(){
             ParticleDistribution_exposer.def( 
                 "createDistributedParameterPool"
                 , createDistributedParameterPool_function_type( &::ParticleDistribution::createDistributedParameterPool )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Returns the parameter pool that can be used for parameter distributions" );
         
         }
         { //::ParticleDistribution::createFormFactor
@@ -367,7 +368,8 @@ void register_ParticleDistribution_class(){
             
             ParticleDistribution_exposer.def( 
                 "getParameterDistribution"
-                , getParameterDistribution_function_type( &::ParticleDistribution::getParameterDistribution ) );
+                , getParameterDistribution_function_type( &::ParticleDistribution::getParameterDistribution )
+                , "    //! Returns the distributed parameter data" );
         
         }
         { //::ParticleDistribution::getParticle
@@ -377,7 +379,8 @@ void register_ParticleDistribution_class(){
             ParticleDistribution_exposer.def( 
                 "getParticle"
                 , getParticle_function_type( &::ParticleDistribution::getParticle )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns particle." );
         
         }
         { //::ParticleDistribution::setAmbientMaterial
@@ -501,7 +504,8 @@ void register_ParticleDistribution_class(){
             ParticleDistribution_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ParticleDistribution_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ParticleInfo.pypp.cpp b/Core/PythonAPI/src/ParticleInfo.pypp.cpp
index b5d9c255961..f7042cf7c52 100644
--- a/Core/PythonAPI/src/ParticleInfo.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleInfo.pypp.cpp
@@ -263,9 +263,9 @@ void register_ParticleInfo_class(){
 
     { //::ParticleInfo
         typedef bp::class_< ParticleInfo_wrapper, bp::bases< ICompositeSample >, std::auto_ptr< ParticleInfo_wrapper >, boost::noncopyable > ParticleInfo_exposer_t;
-        ParticleInfo_exposer_t ParticleInfo_exposer = ParticleInfo_exposer_t( "ParticleInfo", bp::init< IParticle const &, bp::optional< double, double > >(( bp::arg("p_particle"), bp::arg("depth")=0.0, bp::arg("abundance")=1.0e+0 )) );
+        ParticleInfo_exposer_t ParticleInfo_exposer = ParticleInfo_exposer_t( "ParticleInfo", "", bp::init< IParticle const &, bp::optional< double, double > >(( bp::arg("p_particle"), bp::arg("depth")=0.0, bp::arg("abundance")=1.0e+0 ), "") );
         bp::scope ParticleInfo_scope( ParticleInfo_exposer );
-        ParticleInfo_exposer.def( bp::init< IParticle const &, kvector_t, bp::optional< double > >(( bp::arg("p_particle"), bp::arg("position"), bp::arg("abundance")=1.0e+0 )) );
+        ParticleInfo_exposer.def( bp::init< IParticle const &, kvector_t, bp::optional< double > >(( bp::arg("p_particle"), bp::arg("position"), bp::arg("abundance")=1.0e+0 ), "") );
         { //::ParticleInfo::applyTransformation
         
             typedef void ( ::ParticleInfo::*applyTransformation_function_type)( ::IRotation const & ) ;
@@ -273,7 +273,8 @@ void register_ParticleInfo_class(){
             ParticleInfo_exposer.def( 
                 "applyTransformation"
                 , applyTransformation_function_type( &::ParticleInfo::applyTransformation )
-                , ( bp::arg("transform") ) );
+                , ( bp::arg("transform") )
+                , "    //! Applies transformation by composing it with the existing one" );
         
         }
         { //::ParticleInfo::clone
@@ -306,7 +307,8 @@ void register_ParticleInfo_class(){
             
             ParticleInfo_exposer.def( 
                 "getAbundance"
-                , getAbundance_function_type( &::ParticleInfo::getAbundance ) );
+                , getAbundance_function_type( &::ParticleInfo::getAbundance )
+                , "    //! Returns abundance." );
         
         }
         { //::ParticleInfo::getDepth
@@ -315,7 +317,8 @@ void register_ParticleInfo_class(){
             
             ParticleInfo_exposer.def( 
                 "getDepth"
-                , getDepth_function_type( &::ParticleInfo::getDepth ) );
+                , getDepth_function_type( &::ParticleInfo::getDepth )
+                , "    //! Returns depth." );
         
         }
         { //::ParticleInfo::getParticle
@@ -325,7 +328,8 @@ void register_ParticleInfo_class(){
             ParticleInfo_exposer.def( 
                 "getParticle"
                 , getParticle_function_type( &::ParticleInfo::getParticle )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns particle." );
         
         }
         { //::ParticleInfo::getPosition
@@ -334,7 +338,8 @@ void register_ParticleInfo_class(){
             
             ParticleInfo_exposer.def( 
                 "getPosition"
-                , getPosition_function_type( &::ParticleInfo::getPosition ) );
+                , getPosition_function_type( &::ParticleInfo::getPosition )
+                , "    //! Returns particle position, including depth." );
         
         }
         { //::ParticleInfo::setAbundance
@@ -344,7 +349,8 @@ void register_ParticleInfo_class(){
             ParticleInfo_exposer.def( 
                 "setAbundance"
                 , setAbundance_function_type( &::ParticleInfo::setAbundance )
-                , ( bp::arg("abundance") ) );
+                , ( bp::arg("abundance") )
+                , "    //! Sets abundance." );
         
         }
         { //::ParticleInfo::setAmbientMaterial
@@ -354,7 +360,8 @@ void register_ParticleInfo_class(){
             ParticleInfo_exposer.def( 
                 "setAmbientMaterial"
                 , setAmbientMaterial_function_type( &::ParticleInfo::setAmbientMaterial )
-                , ( bp::arg("material") ) );
+                , ( bp::arg("material") )
+                , "    //! Sets the ambient material" );
         
         }
         { //::ParticleInfo::setPosition
@@ -364,7 +371,8 @@ void register_ParticleInfo_class(){
             ParticleInfo_exposer.def( 
                 "setPosition"
                 , setPosition_function_type( &::ParticleInfo::setPosition )
-                , ( bp::arg("position") ) );
+                , ( bp::arg("position") )
+                , "    //! Sets particle position, including depth." );
         
         }
         { //::IParameterized::areParametersChanged
@@ -476,7 +484,8 @@ void register_ParticleInfo_class(){
             ParticleInfo_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ParticleInfo_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ParticleLayout.pypp.cpp b/Core/PythonAPI/src/ParticleLayout.pypp.cpp
index f06cdaa4c9d..5ba928c3ec7 100644
--- a/Core/PythonAPI/src/ParticleLayout.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleLayout.pypp.cpp
@@ -323,9 +323,9 @@ void register_ParticleLayout_class(){
 
     { //::ParticleLayout
         typedef bp::class_< ParticleLayout_wrapper, bp::bases< ILayout >, std::auto_ptr< ParticleLayout_wrapper >, boost::noncopyable > ParticleLayout_exposer_t;
-        ParticleLayout_exposer_t ParticleLayout_exposer = ParticleLayout_exposer_t( "ParticleLayout", bp::init< >() );
+        ParticleLayout_exposer_t ParticleLayout_exposer = ParticleLayout_exposer_t( "ParticleLayout", "", bp::init< >("") );
         bp::scope ParticleLayout_scope( ParticleLayout_exposer );
-        ParticleLayout_exposer.def( bp::init< IParticle const &, bp::optional< double, double > >(( bp::arg("particle"), bp::arg("depth")=0.0, bp::arg("abundance")=1.0e+0 )) );
+        ParticleLayout_exposer.def( bp::init< IParticle const &, bp::optional< double, double > >(( bp::arg("particle"), bp::arg("depth")=0.0, bp::arg("abundance")=1.0e+0 ), "") );
         { //::ParticleLayout::addInterferenceFunction
         
             typedef void ( ::ParticleLayout::*addInterferenceFunction_function_type)( ::IInterferenceFunction const & ) ;
@@ -333,7 +333,8 @@ void register_ParticleLayout_class(){
             ParticleLayout_exposer.def( 
                 "addInterferenceFunction"
                 , addInterferenceFunction_function_type( &::ParticleLayout::addInterferenceFunction )
-                , ( bp::arg("interference_function") ) );
+                , ( bp::arg("interference_function") )
+                , "" );
         
         }
         { //::ParticleLayout::addParticle
@@ -343,7 +344,8 @@ void register_ParticleLayout_class(){
             ParticleLayout_exposer.def( 
                 "addParticle"
                 , addParticle_function_type( &::ParticleLayout::addParticle )
-                , ( bp::arg("particle"), bp::arg("rotation"), bp::arg("depth")=0.0, bp::arg("abundance")=1.0e+0 ) );
+                , ( bp::arg("particle"), bp::arg("rotation"), bp::arg("depth")=0.0, bp::arg("abundance")=1.0e+0 )
+                , "" );
         
         }
         { //::ParticleLayout::addParticle
@@ -353,7 +355,8 @@ void register_ParticleLayout_class(){
             ParticleLayout_exposer.def( 
                 "addParticle"
                 , addParticle_function_type( &::ParticleLayout::addParticle )
-                , ( bp::arg("particle"), bp::arg("depth")=0.0, bp::arg("abundance")=1.0e+0 ) );
+                , ( bp::arg("particle"), bp::arg("depth")=0.0, bp::arg("abundance")=1.0e+0 )
+                , "    //! Adds particle without rotation" );
         
         }
         { //::ParticleLayout::addParticleInfo
@@ -363,7 +366,8 @@ void register_ParticleLayout_class(){
             ParticleLayout_exposer.def( 
                 "addParticleInfo"
                 , addParticleInfo_function_type( &::ParticleLayout::addParticleInfo )
-                , ( bp::arg("info") ) );
+                , ( bp::arg("info") )
+                , "    //! Adds particle info" );
         
         }
         { //::ParticleLayout::clone
@@ -410,7 +414,8 @@ void register_ParticleLayout_class(){
                 "getInterferenceFunction"
                 , getInterferenceFunction_function_type( &::ParticleLayout::getInterferenceFunction )
                 , ( bp::arg("index") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns interference function with index" );
         
         }
         { //::ParticleLayout::getInterferenceFunctions
@@ -568,7 +573,8 @@ void register_ParticleLayout_class(){
             ParticleLayout_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ParticleLayout_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/PythonInterface_free_functions.pypp.cpp b/Core/PythonAPI/src/PythonInterface_free_functions.pypp.cpp
index 81ad8dda658..a5afedad9db 100644
--- a/Core/PythonAPI/src/PythonInterface_free_functions.pypp.cpp
+++ b/Core/PythonAPI/src/PythonInterface_free_functions.pypp.cpp
@@ -35,7 +35,8 @@ void register_free_functions(){
         bp::def( 
             "GenerateNormalRandom"
             , GenerateNormalRandom_function_type( &::MathFunctions::GenerateNormalRandom )
-            , ( bp::arg("average"), bp::arg("std_dev") ) );
+            , ( bp::arg("average"), bp::arg("std_dev") )
+            , "" );
     
     }
 
@@ -45,7 +46,8 @@ void register_free_functions(){
         
         bp::def( 
             "GetMajorVersionNumber"
-            , GetMajorVersionNumber_function_type( &::BornAgain::GetMajorVersionNumber ) );
+            , GetMajorVersionNumber_function_type( &::BornAgain::GetMajorVersionNumber )
+            , "" );
     
     }
 
@@ -55,7 +57,8 @@ void register_free_functions(){
         
         bp::def( 
             "GetMinorVersionNumber"
-            , GetMinorVersionNumber_function_type( &::BornAgain::GetMinorVersionNumber ) );
+            , GetMinorVersionNumber_function_type( &::BornAgain::GetMinorVersionNumber )
+            , "" );
     
     }
 
@@ -65,7 +68,8 @@ void register_free_functions(){
         
         bp::def( 
             "GetName"
-            , GetName_function_type( &::BornAgain::GetName ) );
+            , GetName_function_type( &::BornAgain::GetName )
+            , "" );
     
     }
 
@@ -75,7 +79,8 @@ void register_free_functions(){
         
         bp::def( 
             "GetPatchVersionNumber"
-            , GetPatchVersionNumber_function_type( &::BornAgain::GetPatchVersionNumber ) );
+            , GetPatchVersionNumber_function_type( &::BornAgain::GetPatchVersionNumber )
+            , "" );
     
     }
 
@@ -85,7 +90,8 @@ void register_free_functions(){
         
         bp::def( 
             "GetVersionNumber"
-            , GetVersionNumber_function_type( &::BornAgain::GetVersionNumber ) );
+            , GetVersionNumber_function_type( &::BornAgain::GetVersionNumber )
+            , "" );
     
     }
 
@@ -96,7 +102,8 @@ void register_free_functions(){
         bp::def( 
             "SetMessageLevel"
             , SetMessageLevel_function_type( &::MSG::SetLevel )
-            , ( bp::arg("levelname") ) );
+            , ( bp::arg("levelname") )
+            , "" );
     
     }
 
@@ -107,7 +114,8 @@ void register_free_functions(){
         bp::def( 
             "SetMessageLevel"
             , SetMessageLevel_function_type( &::MSG::SetLevel )
-            , ( bp::arg("level") ) );
+            , ( bp::arg("level") )
+            , "" );
     
     }
 
@@ -118,7 +126,8 @@ void register_free_functions(){
         bp::def( 
             "deg2rad"
             , deg2rad_function_type( &::Units::deg2rad )
-            , ( bp::arg("angle") ) );
+            , ( bp::arg("angle") )
+            , "" );
     
     }
 
@@ -129,7 +138,8 @@ void register_free_functions(){
         bp::def( 
             "rad2deg"
             , rad2deg_function_type( &::Units::rad2deg )
-            , ( bp::arg("angle") ) );
+            , ( bp::arg("angle") )
+            , "" );
     
     }
 
diff --git a/Core/PythonAPI/src/PythonModule.cpp b/Core/PythonAPI/src/PythonModule.cpp
index 7ca468238be..9fb4fd79131 100644
--- a/Core/PythonAPI/src/PythonModule.cpp
+++ b/Core/PythonAPI/src/PythonModule.cpp
@@ -10,134 +10,134 @@ GCC_DIAG_ON(missing-field-initializers)
 #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #define PY_ARRAY_UNIQUE_SYMBOL BORNAGAIN_PYTHONAPI_ARRAY
 #include "numpy/arrayobject.h"
-#include "FormFactorFullSpheroid.pypp.h"
-#include "DistributionGate.pypp.h"
-#include "SimpleSelectionRule.pypp.h"
-#include "RealParameterWrapper.pypp.h"
-#include "vdouble1d_t.pypp.h"
+#include "FormFactorFullSphere.pypp.h"
+#include "Lattice.pypp.h"
+#include "FormFactorInfLongBox.pypp.h"
+#include "Layer.pypp.h"
+#include "FormFactorHemiEllipsoid.pypp.h"
+#include "FormFactorPrism3.pypp.h"
 #include "SimulationParameters.pypp.h"
-#include "ThreadInfo.pypp.h"
-#include "InterferenceFunction2DLattice.pypp.h"
-#include "LayerInterface.pypp.h"
+#include "FormFactorInfLongRipple1.pypp.h"
+#include "FTDistribution1DVoigt.pypp.h"
+#include "FormFactorRipple1.pypp.h"
+#include "ParticleInfo.pypp.h"
+#include "ICompositeSample.pypp.h"
+#include "OffSpecSimulation.pypp.h"
+#include "IResolutionFunction2D.pypp.h"
+#include "vector_kvector_t.pypp.h"
+#include "FTDistribution1DGate.pypp.h"
+#include "FormFactorRipple2.pypp.h"
+#include "FTDistribution2DVoigt.pypp.h"
+#include "IFormFactorBorn.pypp.h"
+#include "FormFactorPyramid.pypp.h"
+#include "ISample.pypp.h"
 #include "ILayout.pypp.h"
-#include "FormFactorCone6.pypp.h"
 #include "FormFactorTetrahedron.pypp.h"
-#include "FTDistribution1DCosine.pypp.h"
-#include "FTDistribution1DTriangle.pypp.h"
-#include "FormFactorWeighted.pypp.h"
-#include "InterferenceFunctionRadialParaCrystal.pypp.h"
-#include "DistributionGaussian.pypp.h"
-#include "IDetectorResolution.pypp.h"
-#include "FormFactorCylinder.pypp.h"
-#include "Crystal.pypp.h"
-#include "FTDistribution1DCauchy.pypp.h"
-#include "IFormFactorBorn.pypp.h"
+#include "Simulation.pypp.h"
+#include "ParticleLayout.pypp.h"
+#include "IRotation.pypp.h"
+#include "FTDistribution2DCone.pypp.h"
 #include "FormFactorEllipsoidalCylinder.pypp.h"
-#include "InterferenceFunctionNone.pypp.h"
-#include "FTDistribution2DGate.pypp.h"
-#include "vector_kvector_t.pypp.h"
-#include "FormFactorTruncatedSpheroid.pypp.h"
-#include "Particle.pypp.h"
-#include "FormFactorTrivial.pypp.h"
-#include "ConstKBinAxis.pypp.h"
-#include "FTDistribution2DCauchy.pypp.h"
-#include "FormFactorCrystal.pypp.h"
-#include "ParticleDistribution.pypp.h"
-#include "vector_longinteger_t.pypp.h"
-#include "ResolutionFunction2DGaussian.pypp.h"
 #include "FTDistribution1DGauss.pypp.h"
-#include "FTDistribution1DGate.pypp.h"
-#include "FormFactorAnisoPyramid.pypp.h"
-#include "FixedBinAxis.pypp.h"
-#include "MultiLayer.pypp.h"
-#include "IFormFactor.pypp.h"
-#include "kvector_t.pypp.h"
-#include "FormFactorSphereUniformRadius.pypp.h"
-#include "OffSpecSimulation.pypp.h"
-#include "FormFactorRipple1.pypp.h"
-#include "Simulation.pypp.h"
+#include "HomogeneousMaterial.pypp.h"
+#include "cvector_t.pypp.h"
+#include "FTDistribution2DGauss.pypp.h"
 #include "IObservable.pypp.h"
-#include "FormFactorLorentz.pypp.h"
-#include "SpecularSimulation.pypp.h"
-#include "ISelectionRule.pypp.h"
-#include "FormFactorRipple2.pypp.h"
+#include "FormFactorBox.pypp.h"
+#include "DistributionLogNormal.pypp.h"
+#include "FormFactorCylinder.pypp.h"
+#include "Detector.pypp.h"
 #include "RotationZ.pypp.h"
-#include "LayerRoughness.pypp.h"
+#include "IObserver.pypp.h"
+#include "ResolutionFunction2DGaussian.pypp.h"
+#include "IParameterized.pypp.h"
+#include "FormFactorGauss.pypp.h"
+#include "FormFactorDecoratorDebyeWaller.pypp.h"
+#include "IDetectorResolution.pypp.h"
+#include "FormFactorWeighted.pypp.h"
+#include "InterferenceFunction2DLattice.pypp.h"
+#include "RealParameterWrapper.pypp.h"
+#include "LayerInterface.pypp.h"
+#include "ParticleCoreShell.pypp.h"
+#include "FormFactorTruncatedCube.pypp.h"
+#include "InterferenceFunction1DLattice.pypp.h"
+#include "FormFactorCrystal.pypp.h"
+#include "Instrument.pypp.h"
+#include "PythonInterface_global_variables.pypp.h"
+#include "ParticleDistribution.pypp.h"
+#include "IFTDistribution1D.pypp.h"
+#include "FormFactorTrivial.pypp.h"
+#include "DistributionGaussian.pypp.h"
+#include "Lattice1DIFParameters.pypp.h"
+#include "DistributionCosine.pypp.h"
+#include "IClusteredParticles.pypp.h"
+#include "FormFactorLorentz.pypp.h"
 #include "Bin1DCVector.pypp.h"
-#include "FormFactorSphereGaussianRadius.pypp.h"
-#include "ParameterPool.pypp.h"
-#include "FormFactorPrism3.pypp.h"
+#include "InterferenceFunctionNone.pypp.h"
+#include "IFormFactorDecorator.pypp.h"
+#include "Bin1D.pypp.h"
+#include "ISampleBuilder.pypp.h"
+#include "IntensityDataIOFactory.pypp.h"
+#include "FTDistribution2DGate.pypp.h"
+#include "FormFactorInfLongRipple2.pypp.h"
 #include "IMaterial.pypp.h"
-#include "FTDistribution1DVoigt.pypp.h"
-#include "IntensityDataFunctions.pypp.h"
-#include "FormFactorPrism6.pypp.h"
-#include "IClusteredParticles.pypp.h"
-#include "VariableBinAxis.pypp.h"
+#include "InterferenceFunction2DParaCrystal.pypp.h"
+#include "Particle.pypp.h"
+#include "FormFactorTruncatedSpheroid.pypp.h"
+#include "MesoCrystal.pypp.h"
+#include "FTDistribution2DCauchy.pypp.h"
+#include "IInterferenceFunction.pypp.h"
+#include "FTDistribution1DCosine.pypp.h"
 #include "IParticle.pypp.h"
-#include "DistributionCosine.pypp.h"
-#include "FormFactorHemiEllipsoid.pypp.h"
+#include "FTDistribution1DTriangle.pypp.h"
+#include "FormFactorPrism6.pypp.h"
+#include "HomogeneousMagneticMaterial.pypp.h"
+#include "FormFactorFullSpheroid.pypp.h"
+#include "IntensityData.pypp.h"
+#include "DistributionGate.pypp.h"
+#include "ThreadInfo.pypp.h"
 #include "IAxis.pypp.h"
-#include "vector_integer_t.pypp.h"
-#include "IntensityDataIOFactory.pypp.h"
-#include "ParameterDistribution.pypp.h"
-#include "Layer.pypp.h"
-#include "FormFactorPyramid.pypp.h"
-#include "RotationY.pypp.h"
 #include "CustomBinAxis.pypp.h"
-#include "FTDistribution2DCone.pypp.h"
-#include "IFTDistribution1D.pypp.h"
-#include "DistributionLorentz.pypp.h"
-#include "IDistribution1D.pypp.h"
-#include "HomogeneousMagneticMaterial.pypp.h"
-#include "FormFactorTruncatedCube.pypp.h"
-#include "FormFactorCuboctahedron.pypp.h"
-#include "cvector_t.pypp.h"
+#include "FormFactorCone6.pypp.h"
+#include "ICloneable.pypp.h"
 #include "PythonInterface_free_functions.pypp.h"
+#include "vector_longinteger_t.pypp.h"
 #include "FormFactorSphereLogNormalRadius.pypp.h"
-#include "FormFactorInfLongRipple1.pypp.h"
-#include "IResolutionFunction2D.pypp.h"
-#include "FormFactorFullSphere.pypp.h"
-#include "ParticleLayout.pypp.h"
-#include "FormFactorBox.pypp.h"
-#include "IParameterized.pypp.h"
-#include "Lattice2DIFParameters.pypp.h"
-#include "IFormFactorDecorator.pypp.h"
-#include "InterferenceFunction1DLattice.pypp.h"
-#include "RotationEuler.pypp.h"
-#include "ISample.pypp.h"
-#include "ISampleBuilder.pypp.h"
-#include "IRotation.pypp.h"
-#include "PythonInterface_global_variables.pypp.h"
-#include "Beam.pypp.h"
-#include "HomogeneousMaterial.pypp.h"
-#include "ICloneable.pypp.h"
-#include "ParticleCoreShell.pypp.h"
-#include "FormFactorDecoratorDebyeWaller.pypp.h"
-#include "MesoCrystal.pypp.h"
-#include "Lattice1DIFParameters.pypp.h"
-#include "IObserver.pypp.h"
-#include "IntensityData.pypp.h"
-#include "Lattice.pypp.h"
-#include "AttLimits.pypp.h"
-#include "IInterferenceFunction.pypp.h"
-#include "ParticleInfo.pypp.h"
-#include "Instrument.pypp.h"
-#include "FormFactorInfLongBox.pypp.h"
-#include "FormFactorCone.pypp.h"
-#include "ParticleComposition.pypp.h"
-#include "RotationX.pypp.h"
-#include "FTDistribution2DGauss.pypp.h"
+#include "FormFactorSphereGaussianRadius.pypp.h"
 #include "FormFactorTruncatedSphere.pypp.h"
-#include "FTDistribution2DVoigt.pypp.h"
-#include "FormFactorGauss.pypp.h"
-#include "InterferenceFunction2DParaCrystal.pypp.h"
-#include "Detector.pypp.h"
-#include "FormFactorInfLongRipple2.pypp.h"
-#include "ICompositeSample.pypp.h"
-#include "Bin1D.pypp.h"
+#include "IntensityDataFunctions.pypp.h"
+#include "DistributionLorentz.pypp.h"
+#include "ParticleComposition.pypp.h"
+#include "ConstKBinAxis.pypp.h"
+#include "ParameterDistribution.pypp.h"
+#include "ParameterPool.pypp.h"
 #include "vector_complex_t.pypp.h"
-#include "DistributionLogNormal.pypp.h"
+#include "SpecularSimulation.pypp.h"
+#include "FormFactorAnisoPyramid.pypp.h"
+#include "FormFactorCuboctahedron.pypp.h"
+#include "MultiLayer.pypp.h"
+#include "FormFactorCone.pypp.h"
+#include "IDistribution1D.pypp.h"
+#include "AttLimits.pypp.h"
+#include "LayerRoughness.pypp.h"
+#include "VariableBinAxis.pypp.h"
+#include "SimpleSelectionRule.pypp.h"
+#include "RotationEuler.pypp.h"
+#include "FixedBinAxis.pypp.h"
+#include "InterferenceFunctionRadialParaCrystal.pypp.h"
+#include "Lattice2DIFParameters.pypp.h"
+#include "IFormFactor.pypp.h"
+#include "vdouble1d_t.pypp.h"
+#include "RotationY.pypp.h"
 #include "IFTDistribution2D.pypp.h"
+#include "Beam.pypp.h"
+#include "FormFactorSphereUniformRadius.pypp.h"
+#include "RotationX.pypp.h"
+#include "FTDistribution1DCauchy.pypp.h"
+#include "kvector_t.pypp.h"
+#include "Crystal.pypp.h"
+#include "ISelectionRule.pypp.h"
+#include "vector_integer_t.pypp.h"
 #include "__call_policies.pypp.hpp"
 #include "__convenience.pypp.hpp"
 #include "__call_policies.pypp.hpp"
diff --git a/Core/PythonAPI/src/RealParameterWrapper.pypp.cpp b/Core/PythonAPI/src/RealParameterWrapper.pypp.cpp
index d3bf429ced2..f01ec655ffc 100644
--- a/Core/PythonAPI/src/RealParameterWrapper.pypp.cpp
+++ b/Core/PythonAPI/src/RealParameterWrapper.pypp.cpp
@@ -30,16 +30,17 @@ void register_RealParameterWrapper_class(){
 
     { //::RealParameterWrapper
         typedef bp::class_< RealParameterWrapper > RealParameterWrapper_exposer_t;
-        RealParameterWrapper_exposer_t RealParameterWrapper_exposer = RealParameterWrapper_exposer_t( "RealParameterWrapper", bp::no_init );
+        RealParameterWrapper_exposer_t RealParameterWrapper_exposer = RealParameterWrapper_exposer_t( "RealParameterWrapper", "", bp::no_init );
         bp::scope RealParameterWrapper_scope( RealParameterWrapper_exposer );
-        RealParameterWrapper_exposer.def( bp::init< RealParameterWrapper const & >(( bp::arg("other") )) );
+        RealParameterWrapper_exposer.def( bp::init< RealParameterWrapper const & >(( bp::arg("other") ), "") );
         { //::RealParameterWrapper::getValue
         
             typedef double ( ::RealParameterWrapper::*getValue_function_type)(  ) const;
             
             RealParameterWrapper_exposer.def( 
                 "getValue"
-                , getValue_function_type( &::RealParameterWrapper::getValue ) );
+                , getValue_function_type( &::RealParameterWrapper::getValue )
+                , "" );
         
         }
         { //::RealParameterWrapper::isNull
@@ -48,7 +49,8 @@ void register_RealParameterWrapper_class(){
             
             RealParameterWrapper_exposer.def( 
                 "isNull"
-                , isNull_function_type( &::RealParameterWrapper::isNull ) );
+                , isNull_function_type( &::RealParameterWrapper::isNull )
+                , "" );
         
         }
         RealParameterWrapper_exposer.def( bp::self != bp::self );
@@ -60,7 +62,8 @@ void register_RealParameterWrapper_class(){
                 "assign"
                 , assign_function_type( &::RealParameterWrapper::operator= )
                 , ( bp::arg("other") )
-                , bp::return_self< >() );
+                , bp::return_self< >()
+                , "" );
         
         }
         RealParameterWrapper_exposer.def( bp::self == bp::self );
@@ -71,7 +74,8 @@ void register_RealParameterWrapper_class(){
             RealParameterWrapper_exposer.def( 
                 "setValue"
                 , setValue_function_type( &::RealParameterWrapper::setValue )
-                , ( bp::arg("value") ) );
+                , ( bp::arg("value") )
+                , "    //! Sets value of wrapped parameter and emmit signal" );
         
         }
     }
diff --git a/Core/PythonAPI/src/ResolutionFunction2DGaussian.pypp.cpp b/Core/PythonAPI/src/ResolutionFunction2DGaussian.pypp.cpp
index 6c7af07a6c8..970403dad20 100644
--- a/Core/PythonAPI/src/ResolutionFunction2DGaussian.pypp.cpp
+++ b/Core/PythonAPI/src/ResolutionFunction2DGaussian.pypp.cpp
@@ -160,7 +160,7 @@ void register_ResolutionFunction2DGaussian_class(){
 
     { //::ResolutionFunction2DGaussian
         typedef bp::class_< ResolutionFunction2DGaussian_wrapper, bp::bases< IResolutionFunction2D >, std::auto_ptr< ResolutionFunction2DGaussian_wrapper >, boost::noncopyable > ResolutionFunction2DGaussian_exposer_t;
-        ResolutionFunction2DGaussian_exposer_t ResolutionFunction2DGaussian_exposer = ResolutionFunction2DGaussian_exposer_t( "ResolutionFunction2DGaussian", bp::init< double, double >(( bp::arg("sigma_x"), bp::arg("sigma_y") )) );
+        ResolutionFunction2DGaussian_exposer_t ResolutionFunction2DGaussian_exposer = ResolutionFunction2DGaussian_exposer_t( "ResolutionFunction2DGaussian", "", bp::init< double, double >(( bp::arg("sigma_x"), bp::arg("sigma_y") ), "") );
         bp::scope ResolutionFunction2DGaussian_scope( ResolutionFunction2DGaussian_exposer );
         { //::ResolutionFunction2DGaussian::clone
         
@@ -192,7 +192,8 @@ void register_ResolutionFunction2DGaussian_class(){
             
             ResolutionFunction2DGaussian_exposer.def( 
                 "getSigmaX"
-                , getSigmaX_function_type( &::ResolutionFunction2DGaussian::getSigmaX ) );
+                , getSigmaX_function_type( &::ResolutionFunction2DGaussian::getSigmaX )
+                , "" );
         
         }
         { //::ResolutionFunction2DGaussian::getSigmaY
@@ -201,7 +202,8 @@ void register_ResolutionFunction2DGaussian_class(){
             
             ResolutionFunction2DGaussian_exposer.def( 
                 "getSigmaY"
-                , getSigmaY_function_type( &::ResolutionFunction2DGaussian::getSigmaY ) );
+                , getSigmaY_function_type( &::ResolutionFunction2DGaussian::getSigmaY )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -256,7 +258,8 @@ void register_ResolutionFunction2DGaussian_class(){
             ResolutionFunction2DGaussian_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &ResolutionFunction2DGaussian_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/RotationEuler.pypp.cpp b/Core/PythonAPI/src/RotationEuler.pypp.cpp
index 7813cb5ee5e..ff35a6c2f8f 100644
--- a/Core/PythonAPI/src/RotationEuler.pypp.cpp
+++ b/Core/PythonAPI/src/RotationEuler.pypp.cpp
@@ -268,7 +268,7 @@ void register_RotationEuler_class(){
 
     { //::RotationEuler
         typedef bp::class_< RotationEuler_wrapper, bp::bases< IRotation >, std::auto_ptr< RotationEuler_wrapper >, boost::noncopyable > RotationEuler_exposer_t;
-        RotationEuler_exposer_t RotationEuler_exposer = RotationEuler_exposer_t( "RotationEuler", bp::init< double, double, double >(( bp::arg("alpha"), bp::arg("beta"), bp::arg("gamma") )) );
+        RotationEuler_exposer_t RotationEuler_exposer = RotationEuler_exposer_t( "RotationEuler", "", bp::init< double, double, double >(( bp::arg("alpha"), bp::arg("beta"), bp::arg("gamma") ), "") );
         bp::scope RotationEuler_scope( RotationEuler_exposer );
         { //::RotationEuler::clone
         
@@ -312,7 +312,8 @@ void register_RotationEuler_class(){
             
             RotationEuler_exposer.def( 
                 "getAlpha"
-                , getAlpha_function_type( &::RotationEuler::getAlpha ) );
+                , getAlpha_function_type( &::RotationEuler::getAlpha )
+                , "" );
         
         }
         { //::RotationEuler::getBeta
@@ -321,7 +322,8 @@ void register_RotationEuler_class(){
             
             RotationEuler_exposer.def( 
                 "getBeta"
-                , getBeta_function_type( &::RotationEuler::getBeta ) );
+                , getBeta_function_type( &::RotationEuler::getBeta )
+                , "" );
         
         }
         { //::RotationEuler::getGamma
@@ -330,7 +332,8 @@ void register_RotationEuler_class(){
             
             RotationEuler_exposer.def( 
                 "getGamma"
-                , getGamma_function_type( &::RotationEuler::getGamma ) );
+                , getGamma_function_type( &::RotationEuler::getGamma )
+                , "" );
         
         }
         { //::RotationEuler::getTransform3D
@@ -453,7 +456,8 @@ void register_RotationEuler_class(){
             RotationEuler_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &RotationEuler_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/RotationX.pypp.cpp b/Core/PythonAPI/src/RotationX.pypp.cpp
index 528a31ad73b..7b541c254a5 100644
--- a/Core/PythonAPI/src/RotationX.pypp.cpp
+++ b/Core/PythonAPI/src/RotationX.pypp.cpp
@@ -268,7 +268,7 @@ void register_RotationX_class(){
 
     { //::RotationX
         typedef bp::class_< RotationX_wrapper, bp::bases< IRotation >, std::auto_ptr< RotationX_wrapper >, boost::noncopyable > RotationX_exposer_t;
-        RotationX_exposer_t RotationX_exposer = RotationX_exposer_t( "RotationX", bp::init< double >(( bp::arg("angle") )) );
+        RotationX_exposer_t RotationX_exposer = RotationX_exposer_t( "RotationX", "", bp::init< double >(( bp::arg("angle") ), "") );
         bp::scope RotationX_scope( RotationX_exposer );
         { //::RotationX::clone
         
@@ -312,7 +312,8 @@ void register_RotationX_class(){
             
             RotationX_exposer.def( 
                 "getAngle"
-                , getAngle_function_type( &::RotationX::getAngle ) );
+                , getAngle_function_type( &::RotationX::getAngle )
+                , "" );
         
         }
         { //::RotationX::getTransform3D
@@ -435,7 +436,8 @@ void register_RotationX_class(){
             RotationX_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &RotationX_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/RotationY.pypp.cpp b/Core/PythonAPI/src/RotationY.pypp.cpp
index a1606322fc5..a894ac73117 100644
--- a/Core/PythonAPI/src/RotationY.pypp.cpp
+++ b/Core/PythonAPI/src/RotationY.pypp.cpp
@@ -268,7 +268,7 @@ void register_RotationY_class(){
 
     { //::RotationY
         typedef bp::class_< RotationY_wrapper, bp::bases< IRotation >, std::auto_ptr< RotationY_wrapper >, boost::noncopyable > RotationY_exposer_t;
-        RotationY_exposer_t RotationY_exposer = RotationY_exposer_t( "RotationY", bp::init< double >(( bp::arg("angle") )) );
+        RotationY_exposer_t RotationY_exposer = RotationY_exposer_t( "RotationY", "", bp::init< double >(( bp::arg("angle") ), "") );
         bp::scope RotationY_scope( RotationY_exposer );
         { //::RotationY::clone
         
@@ -312,7 +312,8 @@ void register_RotationY_class(){
             
             RotationY_exposer.def( 
                 "getAngle"
-                , getAngle_function_type( &::RotationY::getAngle ) );
+                , getAngle_function_type( &::RotationY::getAngle )
+                , "" );
         
         }
         { //::RotationY::getTransform3D
@@ -435,7 +436,8 @@ void register_RotationY_class(){
             RotationY_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &RotationY_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/RotationZ.pypp.cpp b/Core/PythonAPI/src/RotationZ.pypp.cpp
index 401e1ba95b4..ce414adcea9 100644
--- a/Core/PythonAPI/src/RotationZ.pypp.cpp
+++ b/Core/PythonAPI/src/RotationZ.pypp.cpp
@@ -268,7 +268,7 @@ void register_RotationZ_class(){
 
     { //::RotationZ
         typedef bp::class_< RotationZ_wrapper, bp::bases< IRotation >, std::auto_ptr< RotationZ_wrapper >, boost::noncopyable > RotationZ_exposer_t;
-        RotationZ_exposer_t RotationZ_exposer = RotationZ_exposer_t( "RotationZ", bp::init< double >(( bp::arg("angle") )) );
+        RotationZ_exposer_t RotationZ_exposer = RotationZ_exposer_t( "RotationZ", "", bp::init< double >(( bp::arg("angle") ), "") );
         bp::scope RotationZ_scope( RotationZ_exposer );
         { //::RotationZ::clone
         
@@ -312,7 +312,8 @@ void register_RotationZ_class(){
             
             RotationZ_exposer.def( 
                 "getAngle"
-                , getAngle_function_type( &::RotationZ::getAngle ) );
+                , getAngle_function_type( &::RotationZ::getAngle )
+                , "" );
         
         }
         { //::RotationZ::getTransform3D
@@ -435,7 +436,8 @@ void register_RotationZ_class(){
             RotationZ_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &RotationZ_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp b/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp
index 0a8d5d4c919..d1503650e5e 100644
--- a/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp
+++ b/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp
@@ -74,7 +74,7 @@ void register_SimpleSelectionRule_class(){
 
     { //::SimpleSelectionRule
         typedef bp::class_< SimpleSelectionRule_wrapper, bp::bases< ISelectionRule >, std::auto_ptr< SimpleSelectionRule_wrapper > > SimpleSelectionRule_exposer_t;
-        SimpleSelectionRule_exposer_t SimpleSelectionRule_exposer = SimpleSelectionRule_exposer_t( "SimpleSelectionRule", bp::init< int, int, int, int >(( bp::arg("a"), bp::arg("b"), bp::arg("c"), bp::arg("modulus") )) );
+        SimpleSelectionRule_exposer_t SimpleSelectionRule_exposer = SimpleSelectionRule_exposer_t( "SimpleSelectionRule", "", bp::init< int, int, int, int >(( bp::arg("a"), bp::arg("b"), bp::arg("c"), bp::arg("modulus") ), "") );
         bp::scope SimpleSelectionRule_scope( SimpleSelectionRule_exposer );
         { //::SimpleSelectionRule::clone
         
diff --git a/Core/PythonAPI/src/Simulation.pypp.cpp b/Core/PythonAPI/src/Simulation.pypp.cpp
index 8e732f811ae..c96725716e3 100644
--- a/Core/PythonAPI/src/Simulation.pypp.cpp
+++ b/Core/PythonAPI/src/Simulation.pypp.cpp
@@ -172,7 +172,7 @@ void register_Simulation_class(){
 
     { //::Simulation
         typedef bp::class_< Simulation_wrapper, bp::bases< ICloneable, IParameterized >, std::auto_ptr< Simulation_wrapper >, boost::noncopyable > Simulation_exposer_t;
-        Simulation_exposer_t Simulation_exposer = Simulation_exposer_t( "Simulation", bp::init< >() );
+        Simulation_exposer_t Simulation_exposer = Simulation_exposer_t( "Simulation", "", bp::init< >("") );
         bp::scope Simulation_scope( Simulation_exposer );
         { //::Simulation::addParameterDistribution
         
@@ -181,7 +181,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "addParameterDistribution"
                 , addParameterDistribution_function_type( &::Simulation::addParameterDistribution )
-                , ( bp::arg("param_name"), bp::arg("distribution"), bp::arg("nbr_samples"), bp::arg("sigma_factor")=0.0, bp::arg("limits")=::AttLimits( ) ) );
+                , ( bp::arg("param_name"), bp::arg("distribution"), bp::arg("nbr_samples"), bp::arg("sigma_factor")=0.0, bp::arg("limits")=::AttLimits( ) )
+                , "" );
         
         }
         { //::Simulation::addParameterDistribution
@@ -191,7 +192,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "addParameterDistribution"
                 , addParameterDistribution_function_type( &::Simulation::addParameterDistribution )
-                , ( bp::arg("par_distr") ) );
+                , ( bp::arg("par_distr") )
+                , "    //! add a sampled parameter distribution" );
         
         }
         { //::Simulation::clone
@@ -213,7 +215,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "getDistributionHandler"
                 , getDistributionHandler_function_type( &::Simulation::getDistributionHandler )
-                , bp::return_value_policy< bp::copy_const_reference >() );
+                , bp::return_value_policy< bp::copy_const_reference >()
+                , "" );
         
         }
         { //::Simulation::getInstrument
@@ -223,7 +226,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "getInstrument"
                 , getInstrument_function_type( &::Simulation::getInstrument )
-                , bp::return_value_policy< bp::copy_const_reference >() );
+                , bp::return_value_policy< bp::copy_const_reference >()
+                , "    //! Returns the instrument containing beam and detector information" );
         
         }
         { //::Simulation::getIntensityData
@@ -233,7 +237,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "getIntensityData"
                 , getIntensityData_function_type( &::Simulation::getIntensityData )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Clone detector intensity map for all scan parameters (apply detector resolution function first)" );
         
         }
         { //::Simulation::getPolarizedIntensityData
@@ -244,7 +249,8 @@ void register_Simulation_class(){
                 "getPolarizedIntensityData"
                 , getPolarizedIntensityData_function_type( &::Simulation::getPolarizedIntensityData )
                 , ( bp::arg("row"), bp::arg("column") )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! returns component of polarized intensity map (apply detector resolution first)" );
         
         }
         { //::Simulation::getSample
@@ -254,7 +260,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "getSample"
                 , getSample_function_type( &::Simulation::getSample )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns the sample" );
         
         }
         { //::Simulation::getSampleBuilder
@@ -263,7 +270,8 @@ void register_Simulation_class(){
             
             Simulation_exposer.def( 
                 "getSampleBuilder"
-                , getSampleBuilder_function_type( &::Simulation::getSampleBuilder ) );
+                , getSampleBuilder_function_type( &::Simulation::getSampleBuilder )
+                , "    //! return sample builder" );
         
         }
         { //::Simulation::getSimulationParameters
@@ -272,7 +280,8 @@ void register_Simulation_class(){
             
             Simulation_exposer.def( 
                 "getSimulationParameters"
-                , getSimulationParameters_function_type( &::Simulation::getSimulationParameters ) );
+                , getSimulationParameters_function_type( &::Simulation::getSimulationParameters )
+                , "    //! Returns simulation parameters" );
         
         }
         { //::Simulation::normalize
@@ -281,7 +290,8 @@ void register_Simulation_class(){
             
             Simulation_exposer.def( 
                 "normalize"
-                , normalize_function_type( &::Simulation::normalize ) );
+                , normalize_function_type( &::Simulation::normalize )
+                , "    //! Normalize the detector counts" );
         
         }
         { //::Simulation::prepareSimulation
@@ -290,7 +300,8 @@ void register_Simulation_class(){
             
             Simulation_exposer.def( 
                 "prepareSimulation"
-                , prepareSimulation_function_type( &::Simulation::prepareSimulation ) );
+                , prepareSimulation_function_type( &::Simulation::prepareSimulation )
+                , "    //! Put into a clean state for running a simulation" );
         
         }
         { //::Simulation::removeDetectorResolutionFunction
@@ -299,7 +310,8 @@ void register_Simulation_class(){
             
             Simulation_exposer.def( 
                 "removeDetectorResolutionFunction"
-                , removeDetectorResolutionFunction_function_type( &::Simulation::removeDetectorResolutionFunction ) );
+                , removeDetectorResolutionFunction_function_type( &::Simulation::removeDetectorResolutionFunction )
+                , "    //! Removes detector resolution function" );
         
         }
         { //::Simulation::runOMPISimulation
@@ -308,7 +320,8 @@ void register_Simulation_class(){
             
             Simulation_exposer.def( 
                 "runOMPISimulation"
-                , runOMPISimulation_function_type( &::Simulation::runOMPISimulation ) );
+                , runOMPISimulation_function_type( &::Simulation::runOMPISimulation )
+                , "    //! Run an OpenMPI simulation" );
         
         }
         { //::Simulation::runSimulation
@@ -317,7 +330,8 @@ void register_Simulation_class(){
             
             Simulation_exposer.def( 
                 "runSimulation"
-                , runSimulation_function_type( &::Simulation::runSimulation ) );
+                , runSimulation_function_type( &::Simulation::runSimulation )
+                , "    //! Run a simulation, possibly averaged over parameter distributions" );
         
         }
         { //::Simulation::setBeamIntensity
@@ -327,7 +341,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setBeamIntensity"
                 , setBeamIntensity_function_type( &::Simulation::setBeamIntensity )
-                , ( bp::arg("intensity") ) );
+                , ( bp::arg("intensity") )
+                , "    //! Sets beam intensity from here (forwarded to Instrument)" );
         
         }
         { //::Simulation::setBeamParameters
@@ -337,7 +352,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setBeamParameters"
                 , setBeamParameters_function_type( &::Simulation::setBeamParameters )
-                , ( bp::arg("wavelength"), bp::arg("alpha_i"), bp::arg("phi_i") ) );
+                , ( bp::arg("wavelength"), bp::arg("alpha_i"), bp::arg("phi_i") )
+                , "    //! Sets beam parameters from here (forwarded to Instrument)" );
         
         }
         { //::Simulation::setDetectorParameters
@@ -347,7 +363,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setDetectorParameters"
                 , setDetectorParameters_function_type( &::Simulation::setDetectorParameters )
-                , ( bp::arg("output_data") ) );
+                , ( bp::arg("output_data") )
+                , "    //! Sets detector parameters using axes of output data" );
         
         }
         { //::Simulation::setDetectorParameters
@@ -357,7 +374,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setDetectorParameters"
                 , setDetectorParameters_function_type( &::Simulation::setDetectorParameters )
-                , ( bp::arg("n_phi"), bp::arg("phi_f_min"), bp::arg("phi_f_max"), bp::arg("n_alpha"), bp::arg("alpha_f_min"), bp::arg("alpha_f_max"), bp::arg("isgisaxs_style")=(bool)(false) ) );
+                , ( bp::arg("n_phi"), bp::arg("phi_f_min"), bp::arg("phi_f_max"), bp::arg("n_alpha"), bp::arg("alpha_f_min"), bp::arg("alpha_f_max"), bp::arg("isgisaxs_style")=(bool)(false) )
+                , "" );
         
         }
         { //::Simulation::setDetectorParameters
@@ -367,7 +385,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setDetectorParameters"
                 , setDetectorParameters_function_type( &::Simulation::setDetectorParameters )
-                , ( bp::arg("params") ) );
+                , ( bp::arg("params") )
+                , "    //! Sets detector parameters using parameter object" );
         
         }
         { //::Simulation::setDetectorResolutionFunction
@@ -377,7 +396,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setDetectorResolutionFunction"
                 , setDetectorResolutionFunction_function_type( &::Simulation::setDetectorResolutionFunction )
-                , ( bp::arg("resolution_function") ) );
+                , ( bp::arg("resolution_function") )
+                , "" );
         
         }
         { //::Simulation::setInstrument
@@ -387,7 +407,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setInstrument"
                 , setInstrument_function_type( &::Simulation::setInstrument )
-                , ( bp::arg("instrument") ) );
+                , ( bp::arg("instrument") )
+                , "    //! Sets the instrument containing beam and detector information" );
         
         }
         { //::Simulation::setSample
@@ -397,7 +418,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setSample"
                 , setSample_function_type( &::Simulation::setSample )
-                , ( bp::arg("sample") ) );
+                , ( bp::arg("sample") )
+                , "    //! Sets the sample to be tested" );
         
         }
         { //::Simulation::setSampleBuilder
@@ -407,7 +429,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setSampleBuilder"
                 , setSampleBuilder_function_type( &::Simulation::setSampleBuilder )
-                , ( bp::arg("sample_builder") ) );
+                , ( bp::arg("sample_builder") )
+                , "    //! Sets the sample builder" );
         
         }
         { //::Simulation::setSimulationParameters
@@ -417,7 +440,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setSimulationParameters"
                 , setSimulationParameters_function_type( &::Simulation::setSimulationParameters )
-                , ( bp::arg("sim_params") ) );
+                , ( bp::arg("sim_params") )
+                , "    //! Sets simulation parameters" );
         
         }
         { //::Simulation::setThreadInfo
@@ -427,7 +451,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "setThreadInfo"
                 , setThreadInfo_function_type( &::Simulation::setThreadInfo )
-                , ( bp::arg("thread_info") ) );
+                , ( bp::arg("thread_info") )
+                , "    //! Sets the batch and thread information to be used" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -482,7 +507,8 @@ void register_Simulation_class(){
             Simulation_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &Simulation_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/SimulationParameters.pypp.cpp b/Core/PythonAPI/src/SimulationParameters.pypp.cpp
index 7a06d97e9e6..d1fdc4724d8 100644
--- a/Core/PythonAPI/src/SimulationParameters.pypp.cpp
+++ b/Core/PythonAPI/src/SimulationParameters.pypp.cpp
@@ -30,10 +30,10 @@ void register_SimulationParameters_class(){
 
     { //::SimulationParameters
         typedef bp::class_< SimulationParameters > SimulationParameters_exposer_t;
-        SimulationParameters_exposer_t SimulationParameters_exposer = SimulationParameters_exposer_t( "SimulationParameters", bp::init< >() );
+        SimulationParameters_exposer_t SimulationParameters_exposer = SimulationParameters_exposer_t( "SimulationParameters", "", bp::init< >("") );
         bp::scope SimulationParameters_scope( SimulationParameters_exposer );
-        SimulationParameters_exposer.def_readwrite( "m_mc_integration", &SimulationParameters::m_mc_integration );
-        SimulationParameters_exposer.def_readwrite( "m_mc_points", &SimulationParameters::m_mc_points );
+        SimulationParameters_exposer.def_readwrite( "m_mc_integration", &SimulationParameters::m_mc_integration, "" );
+        SimulationParameters_exposer.def_readwrite( "m_mc_points", &SimulationParameters::m_mc_points, "" );
     }
 
 }
diff --git a/Core/PythonAPI/src/SpecularSimulation.pypp.cpp b/Core/PythonAPI/src/SpecularSimulation.pypp.cpp
index 75cb99526af..4e8f5adada0 100644
--- a/Core/PythonAPI/src/SpecularSimulation.pypp.cpp
+++ b/Core/PythonAPI/src/SpecularSimulation.pypp.cpp
@@ -186,10 +186,10 @@ void register_SpecularSimulation_class(){
 
     { //::SpecularSimulation
         typedef bp::class_< SpecularSimulation_wrapper, bp::bases< ICloneable, IParameterized >, std::auto_ptr< SpecularSimulation_wrapper >, boost::noncopyable > SpecularSimulation_exposer_t;
-        SpecularSimulation_exposer_t SpecularSimulation_exposer = SpecularSimulation_exposer_t( "SpecularSimulation", bp::init< >() );
+        SpecularSimulation_exposer_t SpecularSimulation_exposer = SpecularSimulation_exposer_t( "SpecularSimulation", "", bp::init< >("") );
         bp::scope SpecularSimulation_scope( SpecularSimulation_exposer );
-        SpecularSimulation_exposer.def( bp::init< ISample const & >(( bp::arg("sample") )) );
-        SpecularSimulation_exposer.def( bp::init< SampleBuilder_t >(( bp::arg("sample_builder") )) );
+        SpecularSimulation_exposer.def( bp::init< ISample const & >(( bp::arg("sample") ), "") );
+        SpecularSimulation_exposer.def( bp::init< SampleBuilder_t >(( bp::arg("sample_builder") ), "") );
         { //::SpecularSimulation::clone
         
             typedef ::SpecularSimulation * ( ::SpecularSimulation::*clone_function_type)(  ) const;
@@ -209,7 +209,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "getAlphaAxis"
                 , getAlphaAxis_function_type( &::SpecularSimulation::getAlphaAxis )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! returns alpha_i axis" );
         
         }
         { //::SpecularSimulation::getLayerRTCoefficients
@@ -219,7 +220,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "getLayerRTCoefficients"
                 , getLayerRTCoefficients_function_type( &::SpecularSimulation::getLayerRTCoefficients )
-                , ( bp::arg("i_alpha"), bp::arg("i_layer") ) );
+                , ( bp::arg("i_alpha"), bp::arg("i_layer") )
+                , "" );
         
         }
         { //::SpecularSimulation::getSample
@@ -229,7 +231,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "getSample"
                 , getSample_function_type( &::SpecularSimulation::getSample )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns the sample" );
         
         }
         { //::SpecularSimulation::getSampleBuilder
@@ -238,7 +241,8 @@ void register_SpecularSimulation_class(){
             
             SpecularSimulation_exposer.def( 
                 "getSampleBuilder"
-                , getSampleBuilder_function_type( &::SpecularSimulation::getSampleBuilder ) );
+                , getSampleBuilder_function_type( &::SpecularSimulation::getSampleBuilder )
+                , "    //! return sample builder" );
         
         }
         { //::SpecularSimulation::getScalarKz
@@ -248,7 +252,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "getScalarKz"
                 , getScalarKz_function_type( &::SpecularSimulation::getScalarKz )
-                , ( bp::arg("i_layer") ) );
+                , ( bp::arg("i_layer") )
+                , "    //! returns vector containing Kz coefficients for all alpha_i angles for given layer index" );
         
         }
         { //::SpecularSimulation::getScalarR
@@ -258,7 +263,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "getScalarR"
                 , getScalarR_function_type( &::SpecularSimulation::getScalarR )
-                , ( bp::arg("i_layer") ) );
+                , ( bp::arg("i_layer") )
+                , "    //! returns vector containing reflection coefficients for all alpha_i angles for given layer index" );
         
         }
         { //::SpecularSimulation::getScalarT
@@ -268,7 +274,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "getScalarT"
                 , getScalarT_function_type( &::SpecularSimulation::getScalarT )
-                , ( bp::arg("i_layer") ) );
+                , ( bp::arg("i_layer") )
+                , "    //! returns vector containing transmission coefficients for all alpha_i angles for given layer index" );
         
         }
         { //::SpecularSimulation::prepareSimulation
@@ -277,7 +284,8 @@ void register_SpecularSimulation_class(){
             
             SpecularSimulation_exposer.def( 
                 "prepareSimulation"
-                , prepareSimulation_function_type( &::SpecularSimulation::prepareSimulation ) );
+                , prepareSimulation_function_type( &::SpecularSimulation::prepareSimulation )
+                , "    //! Put into a clean state for running a simulation" );
         
         }
         { //::SpecularSimulation::runSimulation
@@ -286,7 +294,8 @@ void register_SpecularSimulation_class(){
             
             SpecularSimulation_exposer.def( 
                 "runSimulation"
-                , runSimulation_function_type( &::SpecularSimulation::runSimulation ) );
+                , runSimulation_function_type( &::SpecularSimulation::runSimulation )
+                , "    //! Run a simulation with the current parameter settings" );
         
         }
         { //::SpecularSimulation::setBeamParameters
@@ -296,7 +305,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "setBeamParameters"
                 , setBeamParameters_function_type( &::SpecularSimulation::setBeamParameters )
-                , ( bp::arg("lambda"), bp::arg("alpha_axis") ) );
+                , ( bp::arg("lambda"), bp::arg("alpha_axis") )
+                , "    //! Sets beam parameters with alpha_i of the beam defined in the range" );
         
         }
         { //::SpecularSimulation::setBeamParameters
@@ -306,7 +316,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "setBeamParameters"
                 , setBeamParameters_function_type( &::SpecularSimulation::setBeamParameters )
-                , ( bp::arg("lambda"), bp::arg("nbins"), bp::arg("alpha_i_min"), bp::arg("alpha_i_max") ) );
+                , ( bp::arg("lambda"), bp::arg("nbins"), bp::arg("alpha_i_min"), bp::arg("alpha_i_max") )
+                , "" );
         
         }
         { //::SpecularSimulation::setEvanescentWaveAxis
@@ -316,7 +327,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "setEvanescentWaveAxis"
                 , setEvanescentWaveAxis_function_type( &::SpecularSimulation::setEvanescentWaveAxis )
-                , ( bp::arg("z_axis") ) );
+                , ( bp::arg("z_axis") )
+                , "    //! set axis for evanescent wave axis" );
         
         }
         { //::SpecularSimulation::setEvanescentWaveAxis
@@ -326,7 +338,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "setEvanescentWaveAxis"
                 , setEvanescentWaveAxis_function_type( &::SpecularSimulation::setEvanescentWaveAxis )
-                , ( bp::arg("nbins"), bp::arg("z_min"), bp::arg("z_max") ) );
+                , ( bp::arg("nbins"), bp::arg("z_min"), bp::arg("z_max") )
+                , "" );
         
         }
         { //::SpecularSimulation::setSample
@@ -336,7 +349,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "setSample"
                 , setSample_function_type( &::SpecularSimulation::setSample )
-                , ( bp::arg("sample") ) );
+                , ( bp::arg("sample") )
+                , "    //! Sets the sample to be tested" );
         
         }
         { //::SpecularSimulation::setSampleBuilder
@@ -346,7 +360,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "setSampleBuilder"
                 , setSampleBuilder_function_type( &::SpecularSimulation::setSampleBuilder )
-                , ( bp::arg("sample_builder") ) );
+                , ( bp::arg("sample_builder") )
+                , "    //! Sets the sample builder" );
         
         }
         { //::IParameterized::areParametersChanged
@@ -401,7 +416,8 @@ void register_SpecularSimulation_class(){
             SpecularSimulation_exposer.def( 
                 "registerParameter"
                 , default_registerParameter_function_type( &SpecularSimulation_wrapper::default_registerParameter )
-                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) ) );
+                , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer"), bp::arg("limits")=AttLimits::limitless( ) )
+                , "    //! main method to register data address in the pool" );
         
         }
         { //::IParameterized::setParameterValue
diff --git a/Core/PythonAPI/src/ThreadInfo.pypp.cpp b/Core/PythonAPI/src/ThreadInfo.pypp.cpp
index 789b231cf7e..2551fe493d6 100644
--- a/Core/PythonAPI/src/ThreadInfo.pypp.cpp
+++ b/Core/PythonAPI/src/ThreadInfo.pypp.cpp
@@ -30,7 +30,7 @@ void register_ThreadInfo_class(){
 
     { //::ThreadInfo
         typedef bp::class_< ThreadInfo > ThreadInfo_exposer_t;
-        ThreadInfo_exposer_t ThreadInfo_exposer = ThreadInfo_exposer_t( "ThreadInfo", bp::init< >() );
+        ThreadInfo_exposer_t ThreadInfo_exposer = ThreadInfo_exposer_t( "ThreadInfo", "", bp::init< >("") );
         bp::scope ThreadInfo_scope( ThreadInfo_exposer );
         { //::ThreadInfo::getBeginIndex
         
@@ -39,7 +39,8 @@ void register_ThreadInfo_class(){
             ThreadInfo_exposer.def( 
                 "getBeginIndex"
                 , getBeginIndex_function_type( &::ThreadInfo::getBeginIndex )
-                , ( bp::arg("total_size") ) );
+                , ( bp::arg("total_size") )
+                , "" );
         
         }
         { //::ThreadInfo::getEndIndex
@@ -49,13 +50,14 @@ void register_ThreadInfo_class(){
             ThreadInfo_exposer.def( 
                 "getEndIndex"
                 , getEndIndex_function_type( &::ThreadInfo::getEndIndex )
-                , ( bp::arg("total_size") ) );
+                , ( bp::arg("total_size") )
+                , "" );
         
         }
-        ThreadInfo_exposer.def_readwrite( "current_batch", &ThreadInfo::current_batch );
-        ThreadInfo_exposer.def_readwrite( "current_thread", &ThreadInfo::current_thread );
-        ThreadInfo_exposer.def_readwrite( "n_batches", &ThreadInfo::n_batches );
-        ThreadInfo_exposer.def_readwrite( "n_threads", &ThreadInfo::n_threads );
+        ThreadInfo_exposer.def_readwrite( "current_batch", &ThreadInfo::current_batch, "" );
+        ThreadInfo_exposer.def_readwrite( "current_thread", &ThreadInfo::current_thread, "" );
+        ThreadInfo_exposer.def_readwrite( "n_batches", &ThreadInfo::n_batches, "" );
+        ThreadInfo_exposer.def_readwrite( "n_threads", &ThreadInfo::n_threads, "" );
     }
 
 }
diff --git a/Core/PythonAPI/src/VariableBinAxis.pypp.cpp b/Core/PythonAPI/src/VariableBinAxis.pypp.cpp
index ff2206c0eac..13be1967e56 100644
--- a/Core/PythonAPI/src/VariableBinAxis.pypp.cpp
+++ b/Core/PythonAPI/src/VariableBinAxis.pypp.cpp
@@ -187,7 +187,7 @@ void register_VariableBinAxis_class(){
 
     { //::VariableBinAxis
         typedef bp::class_< VariableBinAxis_wrapper, bp::bases< IAxis >, std::auto_ptr< VariableBinAxis_wrapper >, boost::noncopyable > VariableBinAxis_exposer_t;
-        VariableBinAxis_exposer_t VariableBinAxis_exposer = VariableBinAxis_exposer_t( "VariableBinAxis", bp::init< std::string const &, std::size_t, std::vector< double > const & >(( bp::arg("name"), bp::arg("nbins"), bp::arg("bin_boundaries") )) );
+        VariableBinAxis_exposer_t VariableBinAxis_exposer = VariableBinAxis_exposer_t( "VariableBinAxis", "", bp::init< std::string const &, std::size_t, std::vector< double > const & >(( bp::arg("name"), bp::arg("nbins"), bp::arg("bin_boundaries") ), "    //! @brief VariableBinAxis constructor\n    //! @param name Axis name\n    //! @param nbins number of bins\n    //! @param bin_boundaries Array of size nbins+1 containing low-edges for each\n    //! bin and upper edge of last bin.") );
         bp::scope VariableBinAxis_scope( VariableBinAxis_exposer );
         { //::VariableBinAxis::clone
         
diff --git a/Core/PythonAPI/src/cvector_t.pypp.cpp b/Core/PythonAPI/src/cvector_t.pypp.cpp
index 9dca161cc4f..97c9f7af105 100644
--- a/Core/PythonAPI/src/cvector_t.pypp.cpp
+++ b/Core/PythonAPI/src/cvector_t.pypp.cpp
@@ -30,9 +30,9 @@ void register_cvector_t_class(){
 
     { //::Geometry::BasicVector3D< std::complex< double > >
         typedef bp::class_< Geometry::BasicVector3D< std::complex< double > > > cvector_t_exposer_t;
-        cvector_t_exposer_t cvector_t_exposer = cvector_t_exposer_t( "cvector_t", bp::init< >() );
+        cvector_t_exposer_t cvector_t_exposer = cvector_t_exposer_t( "cvector_t", "", bp::init< >("    //! Default constructor.\n    //! It is protected - this class should not be instantiated directly.") );
         bp::scope cvector_t_scope( cvector_t_exposer );
-        cvector_t_exposer.def( bp::init< std::complex< double >, std::complex< double >, std::complex< double > >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )) );
+        cvector_t_exposer.def( bp::init< std::complex< double >, std::complex< double >, std::complex< double > >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") ), "    //! Constructor from three numbers.") );
         { //::Geometry::BasicVector3D< std::complex< double > >::mag
         
             typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t;
@@ -40,7 +40,8 @@ void register_cvector_t_class(){
             
             cvector_t_exposer.def( 
                 "mag"
-                , mag_function_type( &::Geometry::BasicVector3D< std::complex< double > >::mag ) );
+                , mag_function_type( &::Geometry::BasicVector3D< std::complex< double > >::mag )
+                , "    //! Returns magnitude of the vector." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::mag2
@@ -50,7 +51,8 @@ void register_cvector_t_class(){
             
             cvector_t_exposer.def( 
                 "mag2"
-                , mag2_function_type( &::Geometry::BasicVector3D< std::complex< double > >::mag2 ) );
+                , mag2_function_type( &::Geometry::BasicVector3D< std::complex< double > >::mag2 )
+                , "    //! Returns squared magnitude squared of the vector." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::magxy
@@ -60,7 +62,8 @@ void register_cvector_t_class(){
             
             cvector_t_exposer.def( 
                 "magxy"
-                , magxy_function_type( &::Geometry::BasicVector3D< std::complex< double > >::magxy ) );
+                , magxy_function_type( &::Geometry::BasicVector3D< std::complex< double > >::magxy )
+                , "" );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::magxy2
@@ -70,7 +73,8 @@ void register_cvector_t_class(){
             
             cvector_t_exposer.def( 
                 "magxy2"
-                , magxy2_function_type( &::Geometry::BasicVector3D< std::complex< double > >::magxy2 ) );
+                , magxy2_function_type( &::Geometry::BasicVector3D< std::complex< double > >::magxy2 )
+                , "    //! Returns squared distance from z axis." );
         
         }
         cvector_t_exposer.def( bp::self *= bp::other< double >() );
@@ -86,7 +90,8 @@ void register_cvector_t_class(){
                 "assign"
                 , assign_function_type( &::Geometry::BasicVector3D< std::complex< double > >::operator= )
                 , ( bp::arg("v") )
-                , bp::return_self< >() );
+                , bp::return_self< >()
+                , "    //! Assignment." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::operator[]
@@ -97,7 +102,8 @@ void register_cvector_t_class(){
             cvector_t_exposer.def( 
                 "__getitem__"
                 , __getitem___function_type( &::Geometry::BasicVector3D< std::complex< double > >::operator[] )
-                , ( bp::arg("i") ) );
+                , ( bp::arg("i") )
+                , "    //! Returns components by index." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::operator[]
@@ -109,7 +115,8 @@ void register_cvector_t_class(){
                 "__getitem__"
                 , __getitem___function_type( &::Geometry::BasicVector3D< std::complex< double > >::operator[] )
                 , ( bp::arg("i") )
-                , bp::return_internal_reference< >() );
+                , bp::return_internal_reference< >()
+                , "    //! Sets components by index." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::setLambdaAlphaPhi
@@ -120,7 +127,8 @@ void register_cvector_t_class(){
             cvector_t_exposer.def( 
                 "setLambdaAlphaPhi"
                 , setLambdaAlphaPhi_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setLambdaAlphaPhi )
-                , ( bp::arg("_lambda"), bp::arg("_alpha"), bp::arg("_phi") ) );
+                , ( bp::arg("_lambda"), bp::arg("_alpha"), bp::arg("_phi") )
+                , "" );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::setX
@@ -131,7 +139,8 @@ void register_cvector_t_class(){
             cvector_t_exposer.def( 
                 "setX"
                 , setX_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setX )
-                , ( bp::arg("a") ) );
+                , ( bp::arg("a") )
+                , "    //! Sets x-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::setXYZ
@@ -142,7 +151,8 @@ void register_cvector_t_class(){
             cvector_t_exposer.def( 
                 "setXYZ"
                 , setXYZ_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setXYZ )
-                , ( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") ) );
+                , ( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )
+                , "    //! Sets components in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::setY
@@ -153,7 +163,8 @@ void register_cvector_t_class(){
             cvector_t_exposer.def( 
                 "setY"
                 , setY_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setY )
-                , ( bp::arg("a") ) );
+                , ( bp::arg("a") )
+                , "    //! Sets y-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::setZ
@@ -164,7 +175,8 @@ void register_cvector_t_class(){
             cvector_t_exposer.def( 
                 "setZ"
                 , setZ_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setZ )
-                , ( bp::arg("a") ) );
+                , ( bp::arg("a") )
+                , "    //! Sets z-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::x
@@ -174,7 +186,8 @@ void register_cvector_t_class(){
             
             cvector_t_exposer.def( 
                 "x"
-                , x_function_type( &::Geometry::BasicVector3D< std::complex< double > >::x ) );
+                , x_function_type( &::Geometry::BasicVector3D< std::complex< double > >::x )
+                , "    //! Returns x-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::y
@@ -184,7 +197,8 @@ void register_cvector_t_class(){
             
             cvector_t_exposer.def( 
                 "y"
-                , y_function_type( &::Geometry::BasicVector3D< std::complex< double > >::y ) );
+                , y_function_type( &::Geometry::BasicVector3D< std::complex< double > >::y )
+                , "    //! Returns y-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< std::complex< double > >::z
@@ -194,7 +208,8 @@ void register_cvector_t_class(){
             
             cvector_t_exposer.def( 
                 "z"
-                , z_function_type( &::Geometry::BasicVector3D< std::complex< double > >::z ) );
+                , z_function_type( &::Geometry::BasicVector3D< std::complex< double > >::z )
+                , "    //! Returns z-component in cartesian coordinate system." );
         
         }
     }
diff --git a/Core/PythonAPI/src/kvector_t.pypp.cpp b/Core/PythonAPI/src/kvector_t.pypp.cpp
index 70481f39265..41755f728ea 100644
--- a/Core/PythonAPI/src/kvector_t.pypp.cpp
+++ b/Core/PythonAPI/src/kvector_t.pypp.cpp
@@ -30,9 +30,9 @@ void register_kvector_t_class(){
 
     { //::Geometry::BasicVector3D< double >
         typedef bp::class_< Geometry::BasicVector3D< double > > kvector_t_exposer_t;
-        kvector_t_exposer_t kvector_t_exposer = kvector_t_exposer_t( "kvector_t", bp::init< >() );
+        kvector_t_exposer_t kvector_t_exposer = kvector_t_exposer_t( "kvector_t", "", bp::init< >("    //! Default constructor.\n    //! It is protected - this class should not be instantiated directly.") );
         bp::scope kvector_t_scope( kvector_t_exposer );
-        kvector_t_exposer.def( bp::init< double, double, double >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )) );
+        kvector_t_exposer.def( bp::init< double, double, double >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") ), "    //! Constructor from three numbers.") );
         { //::Geometry::BasicVector3D< double >::mag
         
             typedef Geometry::BasicVector3D< double > exported_class_t;
@@ -40,7 +40,8 @@ void register_kvector_t_class(){
             
             kvector_t_exposer.def( 
                 "mag"
-                , mag_function_type( &::Geometry::BasicVector3D< double >::mag ) );
+                , mag_function_type( &::Geometry::BasicVector3D< double >::mag )
+                , "" );
         
         }
         { //::Geometry::BasicVector3D< double >::mag2
@@ -50,7 +51,8 @@ void register_kvector_t_class(){
             
             kvector_t_exposer.def( 
                 "mag2"
-                , mag2_function_type( &::Geometry::BasicVector3D< double >::mag2 ) );
+                , mag2_function_type( &::Geometry::BasicVector3D< double >::mag2 )
+                , "" );
         
         }
         { //::Geometry::BasicVector3D< double >::magxy
@@ -60,7 +62,8 @@ void register_kvector_t_class(){
             
             kvector_t_exposer.def( 
                 "magxy"
-                , magxy_function_type( &::Geometry::BasicVector3D< double >::magxy ) );
+                , magxy_function_type( &::Geometry::BasicVector3D< double >::magxy )
+                , "" );
         
         }
         { //::Geometry::BasicVector3D< double >::magxy2
@@ -70,7 +73,8 @@ void register_kvector_t_class(){
             
             kvector_t_exposer.def( 
                 "magxy2"
-                , magxy2_function_type( &::Geometry::BasicVector3D< double >::magxy2 ) );
+                , magxy2_function_type( &::Geometry::BasicVector3D< double >::magxy2 )
+                , "" );
         
         }
         kvector_t_exposer.def( bp::self *= bp::other< double >() );
@@ -86,7 +90,8 @@ void register_kvector_t_class(){
                 "assign"
                 , assign_function_type( &::Geometry::BasicVector3D< double >::operator= )
                 , ( bp::arg("v") )
-                , bp::return_self< >() );
+                , bp::return_self< >()
+                , "    //! Assignment." );
         
         }
         { //::Geometry::BasicVector3D< double >::operator[]
@@ -97,7 +102,8 @@ void register_kvector_t_class(){
             kvector_t_exposer.def( 
                 "__getitem__"
                 , __getitem___function_type( &::Geometry::BasicVector3D< double >::operator[] )
-                , ( bp::arg("i") ) );
+                , ( bp::arg("i") )
+                , "    //! Returns components by index." );
         
         }
         { //::Geometry::BasicVector3D< double >::operator[]
@@ -109,7 +115,8 @@ void register_kvector_t_class(){
                 "__getitem__"
                 , __getitem___function_type( &::Geometry::BasicVector3D< double >::operator[] )
                 , ( bp::arg("i") )
-                , bp::return_value_policy< bp::copy_non_const_reference >() );
+                , bp::return_value_policy< bp::copy_non_const_reference >()
+                , "    //! Sets components by index." );
         
         }
         { //::Geometry::BasicVector3D< double >::setLambdaAlphaPhi
@@ -120,7 +127,8 @@ void register_kvector_t_class(){
             kvector_t_exposer.def( 
                 "setLambdaAlphaPhi"
                 , setLambdaAlphaPhi_function_type( &::Geometry::BasicVector3D< double >::setLambdaAlphaPhi )
-                , ( bp::arg("_lambda"), bp::arg("_alpha"), bp::arg("_phi") ) );
+                , ( bp::arg("_lambda"), bp::arg("_alpha"), bp::arg("_phi") )
+                , "" );
         
         }
         { //::Geometry::BasicVector3D< double >::setX
@@ -131,7 +139,8 @@ void register_kvector_t_class(){
             kvector_t_exposer.def( 
                 "setX"
                 , setX_function_type( &::Geometry::BasicVector3D< double >::setX )
-                , ( bp::arg("a") ) );
+                , ( bp::arg("a") )
+                , "    //! Sets x-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< double >::setXYZ
@@ -142,7 +151,8 @@ void register_kvector_t_class(){
             kvector_t_exposer.def( 
                 "setXYZ"
                 , setXYZ_function_type( &::Geometry::BasicVector3D< double >::setXYZ )
-                , ( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") ) );
+                , ( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )
+                , "    //! Sets components in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< double >::setY
@@ -153,7 +163,8 @@ void register_kvector_t_class(){
             kvector_t_exposer.def( 
                 "setY"
                 , setY_function_type( &::Geometry::BasicVector3D< double >::setY )
-                , ( bp::arg("a") ) );
+                , ( bp::arg("a") )
+                , "    //! Sets y-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< double >::setZ
@@ -164,7 +175,8 @@ void register_kvector_t_class(){
             kvector_t_exposer.def( 
                 "setZ"
                 , setZ_function_type( &::Geometry::BasicVector3D< double >::setZ )
-                , ( bp::arg("a") ) );
+                , ( bp::arg("a") )
+                , "    //! Sets z-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< double >::x
@@ -174,7 +186,8 @@ void register_kvector_t_class(){
             
             kvector_t_exposer.def( 
                 "x"
-                , x_function_type( &::Geometry::BasicVector3D< double >::x ) );
+                , x_function_type( &::Geometry::BasicVector3D< double >::x )
+                , "    //! Returns x-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< double >::y
@@ -184,7 +197,8 @@ void register_kvector_t_class(){
             
             kvector_t_exposer.def( 
                 "y"
-                , y_function_type( &::Geometry::BasicVector3D< double >::y ) );
+                , y_function_type( &::Geometry::BasicVector3D< double >::y )
+                , "    //! Returns y-component in cartesian coordinate system." );
         
         }
         { //::Geometry::BasicVector3D< double >::z
@@ -194,7 +208,8 @@ void register_kvector_t_class(){
             
             kvector_t_exposer.def( 
                 "z"
-                , z_function_type( &::Geometry::BasicVector3D< double >::z ) );
+                , z_function_type( &::Geometry::BasicVector3D< double >::z )
+                , "    //! Returns z-component in cartesian coordinate system." );
         
         }
         kvector_t_exposer.def( bp::self - bp::self );
diff --git a/Core/PythonAPI/src/vdouble1d_t.pypp.cpp b/Core/PythonAPI/src/vdouble1d_t.pypp.cpp
index db218b7c48d..7d2e7f5550d 100644
--- a/Core/PythonAPI/src/vdouble1d_t.pypp.cpp
+++ b/Core/PythonAPI/src/vdouble1d_t.pypp.cpp
@@ -31,7 +31,7 @@ void register_vdouble1d_t_class(){
 
     { //::std::vector< double >
         typedef bp::class_< std::vector< double > > vdouble1d_t_exposer_t;
-        vdouble1d_t_exposer_t vdouble1d_t_exposer = vdouble1d_t_exposer_t( "vdouble1d_t" );
+        vdouble1d_t_exposer_t vdouble1d_t_exposer = vdouble1d_t_exposer_t( "vdouble1d_t", "" );
         bp::scope vdouble1d_t_scope( vdouble1d_t_exposer );
         vdouble1d_t_exposer.def( bp::vector_indexing_suite< ::std::vector< double >, true >() );
     }
diff --git a/Core/PythonAPI/src/vector_complex_t.pypp.cpp b/Core/PythonAPI/src/vector_complex_t.pypp.cpp
index c960dc5e444..c29cbcf3e7f 100644
--- a/Core/PythonAPI/src/vector_complex_t.pypp.cpp
+++ b/Core/PythonAPI/src/vector_complex_t.pypp.cpp
@@ -31,7 +31,7 @@ void register_vector_complex_t_class(){
 
     { //::std::vector< std::complex<double> >
         typedef bp::class_< std::vector< std::complex<double> > > vector_complex_t_exposer_t;
-        vector_complex_t_exposer_t vector_complex_t_exposer = vector_complex_t_exposer_t( "vector_complex_t" );
+        vector_complex_t_exposer_t vector_complex_t_exposer = vector_complex_t_exposer_t( "vector_complex_t", "" );
         bp::scope vector_complex_t_scope( vector_complex_t_exposer );
         //WARNING: the next line of code will not compile, because "::std::complex<double>" does not have operator== !
         vector_complex_t_exposer.def( bp::vector_indexing_suite< ::std::vector< std::complex<double> > >() );
diff --git a/Core/PythonAPI/src/vector_integer_t.pypp.cpp b/Core/PythonAPI/src/vector_integer_t.pypp.cpp
index 9e0986b09d5..0f0e1f1be24 100644
--- a/Core/PythonAPI/src/vector_integer_t.pypp.cpp
+++ b/Core/PythonAPI/src/vector_integer_t.pypp.cpp
@@ -31,7 +31,7 @@ void register_vector_integer_t_class(){
 
     { //::std::vector< int >
         typedef bp::class_< std::vector< int > > vector_integer_t_exposer_t;
-        vector_integer_t_exposer_t vector_integer_t_exposer = vector_integer_t_exposer_t( "vector_integer_t" );
+        vector_integer_t_exposer_t vector_integer_t_exposer = vector_integer_t_exposer_t( "vector_integer_t", "" );
         bp::scope vector_integer_t_scope( vector_integer_t_exposer );
         vector_integer_t_exposer.def( bp::vector_indexing_suite< ::std::vector< int >, true >() );
     }
diff --git a/Core/PythonAPI/src/vector_kvector_t.pypp.cpp b/Core/PythonAPI/src/vector_kvector_t.pypp.cpp
index db92cc6eb0c..bcad6e141f5 100644
--- a/Core/PythonAPI/src/vector_kvector_t.pypp.cpp
+++ b/Core/PythonAPI/src/vector_kvector_t.pypp.cpp
@@ -31,7 +31,7 @@ void register_vector_kvector_t_class(){
 
     { //::std::vector< Geometry::BasicVector3D<double> >
         typedef bp::class_< std::vector< Geometry::BasicVector3D<double> > > vector_kvector_t_exposer_t;
-        vector_kvector_t_exposer_t vector_kvector_t_exposer = vector_kvector_t_exposer_t( "vector_kvector_t" );
+        vector_kvector_t_exposer_t vector_kvector_t_exposer = vector_kvector_t_exposer_t( "vector_kvector_t", "" );
         bp::scope vector_kvector_t_scope( vector_kvector_t_exposer );
         //WARNING: the next line of code will not compile, because "::Geometry::BasicVector3D<double>" does not have operator== !
         vector_kvector_t_exposer.def( bp::vector_indexing_suite< ::std::vector< Geometry::BasicVector3D<double> > >() );
diff --git a/Core/PythonAPI/src/vector_longinteger_t.pypp.cpp b/Core/PythonAPI/src/vector_longinteger_t.pypp.cpp
index 9d63f0c855b..7833ec1bd20 100644
--- a/Core/PythonAPI/src/vector_longinteger_t.pypp.cpp
+++ b/Core/PythonAPI/src/vector_longinteger_t.pypp.cpp
@@ -31,7 +31,7 @@ void register_vector_longinteger_t_class(){
 
     { //::std::vector< unsigned long >
         typedef bp::class_< std::vector< unsigned long > > vector_longinteger_t_exposer_t;
-        vector_longinteger_t_exposer_t vector_longinteger_t_exposer = vector_longinteger_t_exposer_t( "vector_longinteger_t" );
+        vector_longinteger_t_exposer_t vector_longinteger_t_exposer = vector_longinteger_t_exposer_t( "vector_longinteger_t", "" );
         bp::scope vector_longinteger_t_scope( vector_longinteger_t_exposer );
         vector_longinteger_t_exposer.def( bp::vector_indexing_suite< ::std::vector< unsigned long >, true >() );
     }
diff --git a/Doc/Doxygen/Doxyfile b/Doc/Doxygen/Doxyfile
index 7bf38894ec3..c55a0ebac45 100644
--- a/Doc/Doxygen/Doxyfile
+++ b/Doc/Doxygen/Doxyfile
@@ -1769,7 +1769,7 @@ MAN_LINKS              = NO
 # captures the structure of the code including all documentation.
 # The default value is: NO.
 
-GENERATE_XML           = NO
+GENERATE_XML           = YES
 
 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
diff --git a/Fit/PythonAPI/src/AttFitting.pypp.cpp b/Fit/PythonAPI/src/AttFitting.pypp.cpp
index c7113656558..6c4e44acf0b 100644
--- a/Fit/PythonAPI/src/AttFitting.pypp.cpp
+++ b/Fit/PythonAPI/src/AttFitting.pypp.cpp
@@ -30,7 +30,7 @@ void register_AttFitting_class(){
 
     { //::AttFitting
         typedef bp::class_< AttFitting > AttFitting_exposer_t;
-        AttFitting_exposer_t AttFitting_exposer = AttFitting_exposer_t( "AttFitting", bp::init< >() );
+        AttFitting_exposer_t AttFitting_exposer = AttFitting_exposer_t( "AttFitting", "", bp::init< >("") );
         bp::scope AttFitting_scope( AttFitting_exposer );
         { //::AttFitting::getDerivEpsilon
         
@@ -38,7 +38,8 @@ void register_AttFitting_class(){
             
             AttFitting_exposer.def( 
                 "getDerivEpsilon"
-                , getDerivEpsilon_function_type( &::AttFitting::getDerivEpsilon ) );
+                , getDerivEpsilon_function_type( &::AttFitting::getDerivEpsilon )
+                , "" );
         
         }
         { //::AttFitting::getStepFactor
@@ -47,7 +48,8 @@ void register_AttFitting_class(){
             
             AttFitting_exposer.def( 
                 "getStepFactor"
-                , getStepFactor_function_type( &::AttFitting::getStepFactor ) );
+                , getStepFactor_function_type( &::AttFitting::getStepFactor )
+                , "" );
         
         }
         { //::AttFitting::setDerivEpsilon
@@ -57,7 +59,8 @@ void register_AttFitting_class(){
             AttFitting_exposer.def( 
                 "setDerivEpsilon"
                 , setDerivEpsilon_function_type( &::AttFitting::setDerivEpsilon )
-                , ( bp::arg("deriv_epsilon") ) );
+                , ( bp::arg("deriv_epsilon") )
+                , "" );
         
         }
         { //::AttFitting::setStepFactor
@@ -67,7 +70,8 @@ void register_AttFitting_class(){
             AttFitting_exposer.def( 
                 "setStepFactor"
                 , setStepFactor_function_type( &::AttFitting::setStepFactor )
-                , ( bp::arg("step_factor") ) );
+                , ( bp::arg("step_factor") )
+                , "" );
         
         }
     }
diff --git a/Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp b/Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp
index bd43fe455a3..5ca65aa023c 100644
--- a/Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp
+++ b/Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp
@@ -182,9 +182,9 @@ void register_ChiSquaredModule_class(){
 
     { //::ChiSquaredModule
         typedef bp::class_< ChiSquaredModule_wrapper, bp::bases< IChiSquaredModule >, std::auto_ptr< ChiSquaredModule_wrapper > > ChiSquaredModule_exposer_t;
-        ChiSquaredModule_exposer_t ChiSquaredModule_exposer = ChiSquaredModule_exposer_t( "ChiSquaredModule", bp::init< >() );
+        ChiSquaredModule_exposer_t ChiSquaredModule_exposer = ChiSquaredModule_exposer_t( "ChiSquaredModule", "", bp::init< >("") );
         bp::scope ChiSquaredModule_scope( ChiSquaredModule_exposer );
-        ChiSquaredModule_exposer.def( bp::init< ChiSquaredModule const & >(( bp::arg("other") )) );
+        ChiSquaredModule_exposer.def( bp::init< ChiSquaredModule const & >(( bp::arg("other") ), "") );
         { //::ChiSquaredModule::calculateChiSquared
         
             typedef double ( ::ChiSquaredModule::*calculateChiSquared_function_type)(  ) ;
diff --git a/Fit/PythonAPI/src/FitObject.pypp.cpp b/Fit/PythonAPI/src/FitObject.pypp.cpp
index ff82b4e65a3..3d140c0186a 100644
--- a/Fit/PythonAPI/src/FitObject.pypp.cpp
+++ b/Fit/PythonAPI/src/FitObject.pypp.cpp
@@ -113,7 +113,7 @@ void register_FitObject_class(){
 
     { //::FitObject
         typedef bp::class_< FitObject_wrapper, bp::bases< IParameterized >, boost::noncopyable > FitObject_exposer_t;
-        FitObject_exposer_t FitObject_exposer = FitObject_exposer_t( "FitObject", bp::init< Simulation const &, OutputData< double > const &, bp::optional< IChiSquaredModule const &, double > >(( bp::arg("simulation"), bp::arg("real_data"), bp::arg("chi2_module")=ChiSquaredModule(), bp::arg("weight")=1 )) );
+        FitObject_exposer_t FitObject_exposer = FitObject_exposer_t( "FitObject", "", bp::init< Simulation const &, OutputData< double > const &, bp::optional< IChiSquaredModule const &, double > >(( bp::arg("simulation"), bp::arg("real_data"), bp::arg("chi2_module")=ChiSquaredModule(), bp::arg("weight")=1 ), "") );
         bp::scope FitObject_scope( FitObject_exposer );
         { //::FitObject::calculateChiSquared
         
@@ -121,7 +121,8 @@ void register_FitObject_class(){
             
             FitObject_exposer.def( 
                 "calculateChiSquared"
-                , calculateChiSquared_function_type( &::FitObject::calculateChiSquared ) );
+                , calculateChiSquared_function_type( &::FitObject::calculateChiSquared )
+                , "    //! Returns chi squared value" );
         
         }
         { //::FitObject::getChiSquaredModule
@@ -131,7 +132,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "getChiSquaredModule"
                 , getChiSquaredModule_function_type( &::FitObject::getChiSquaredModule )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns chi2 module" );
         
         }
         { //::FitObject::getChiSquaredModule
@@ -141,7 +143,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "getChiSquaredModule"
                 , getChiSquaredModule_function_type( &::FitObject::getChiSquaredModule )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::FitObject::getRealData
@@ -151,7 +154,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "getRealData"
                 , getRealData_function_type( &::FitObject::getRealData )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns real data" );
         
         }
         { //::FitObject::getSimulation
@@ -161,7 +165,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "getSimulation"
                 , getSimulation_function_type( &::FitObject::getSimulation )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns simulation" );
         
         }
         { //::FitObject::getSimulation
@@ -171,7 +176,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "getSimulation"
                 , getSimulation_function_type( &::FitObject::getSimulation )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::FitObject::getSimulationData
@@ -181,7 +187,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "getSimulationData"
                 , getSimulationData_function_type( &::FitObject::getSimulationData )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::FitObject::getSizeOfData
@@ -190,7 +197,8 @@ void register_FitObject_class(){
             
             FitObject_exposer.def( 
                 "getSizeOfData"
-                , getSizeOfData_function_type( &::FitObject::getSizeOfData ) );
+                , getSizeOfData_function_type( &::FitObject::getSizeOfData )
+                , "    //! Returns size of data" );
         
         }
         { //::FitObject::getWeight
@@ -199,7 +207,8 @@ void register_FitObject_class(){
             
             FitObject_exposer.def( 
                 "getWeight"
-                , getWeight_function_type( &::FitObject::getWeight ) );
+                , getWeight_function_type( &::FitObject::getWeight )
+                , "    //! Returns weight of data set in chi2 calculations" );
         
         }
         { //::FitObject::setChiSquaredModule
@@ -209,7 +218,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "setChiSquaredModule"
                 , setChiSquaredModule_function_type( &::FitObject::setChiSquaredModule )
-                , ( bp::arg("chi2_module") ) );
+                , ( bp::arg("chi2_module") )
+                , "    //! Sets chi2 module" );
         
         }
         { //::FitObject::setRealData
@@ -219,7 +229,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "setRealData"
                 , setRealData_function_type( &::FitObject::setRealData )
-                , ( bp::arg("real_data") ) );
+                , ( bp::arg("real_data") )
+                , "    //! Sets real data" );
         
         }
         { //::FitObject::setSimulation
@@ -229,7 +240,8 @@ void register_FitObject_class(){
             FitObject_exposer.def( 
                 "setSimulation"
                 , setSimulation_function_type( &::FitObject::setSimulation )
-                , ( bp::arg("simulation") ) );
+                , ( bp::arg("simulation") )
+                , "    //! Sets simulation" );
         
         }
         { //::IParameterized::areParametersChanged
diff --git a/Fit/PythonAPI/src/FitParameter.pypp.cpp b/Fit/PythonAPI/src/FitParameter.pypp.cpp
index c2d6c4879e5..0a46d310163 100644
--- a/Fit/PythonAPI/src/FitParameter.pypp.cpp
+++ b/Fit/PythonAPI/src/FitParameter.pypp.cpp
@@ -127,9 +127,9 @@ void register_FitParameter_class(){
 
     { //::FitParameter
         typedef bp::class_< FitParameter_wrapper, bp::bases< INamed > > FitParameter_exposer_t;
-        FitParameter_exposer_t FitParameter_exposer = FitParameter_exposer_t( "FitParameter", bp::init< >() );
+        FitParameter_exposer_t FitParameter_exposer = FitParameter_exposer_t( "FitParameter", "", bp::init< >("") );
         bp::scope FitParameter_scope( FitParameter_exposer );
-        FitParameter_exposer.def( bp::init< std::string const &, double, bp::optional< double, AttLimits const &, double > >(( bp::arg("name"), bp::arg("value"), bp::arg("step")=0.0, bp::arg("limits")=AttLimits::limitless( ), bp::arg("error")=0.0 )) );
+        FitParameter_exposer.def( bp::init< std::string const &, double, bp::optional< double, AttLimits const &, double > >(( bp::arg("name"), bp::arg("value"), bp::arg("step")=0.0, bp::arg("limits")=AttLimits::limitless( ), bp::arg("error")=0.0 ), "") );
         { //::FitParameter::getError
         
             typedef double ( ::FitParameter::*getError_function_type)(  ) const;
diff --git a/Fit/PythonAPI/src/FitStrategyAdjustMinimizer.pypp.cpp b/Fit/PythonAPI/src/FitStrategyAdjustMinimizer.pypp.cpp
index d8a3a818180..cd5e254ec25 100644
--- a/Fit/PythonAPI/src/FitStrategyAdjustMinimizer.pypp.cpp
+++ b/Fit/PythonAPI/src/FitStrategyAdjustMinimizer.pypp.cpp
@@ -74,7 +74,7 @@ void register_FitStrategyAdjustMinimizer_class(){
 
     { //::FitStrategyAdjustMinimizer
         typedef bp::class_< FitStrategyAdjustMinimizer_wrapper, bp::bases< IFitStrategy >, std::auto_ptr< FitStrategyAdjustMinimizer_wrapper > > FitStrategyAdjustMinimizer_exposer_t;
-        FitStrategyAdjustMinimizer_exposer_t FitStrategyAdjustMinimizer_exposer = FitStrategyAdjustMinimizer_exposer_t( "FitStrategyAdjustMinimizer", bp::init< >() );
+        FitStrategyAdjustMinimizer_exposer_t FitStrategyAdjustMinimizer_exposer = FitStrategyAdjustMinimizer_exposer_t( "FitStrategyAdjustMinimizer", "", bp::init< >("") );
         bp::scope FitStrategyAdjustMinimizer_scope( FitStrategyAdjustMinimizer_exposer );
         { //::FitStrategyAdjustMinimizer::clone
         
@@ -106,7 +106,8 @@ void register_FitStrategyAdjustMinimizer_class(){
             FitStrategyAdjustMinimizer_exposer.def( 
                 "getMinimizer"
                 , getMinimizer_function_type( &::FitStrategyAdjustMinimizer::getMinimizer )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::FitStrategyAdjustMinimizer::setMinimizer
@@ -116,7 +117,8 @@ void register_FitStrategyAdjustMinimizer_class(){
             FitStrategyAdjustMinimizer_exposer.def( 
                 "setMinimizer"
                 , setMinimizer_function_type( &::FitStrategyAdjustMinimizer::setMinimizer )
-                , ( bp::arg("minimizer") ) );
+                , ( bp::arg("minimizer") )
+                , "" );
         
         }
     }
diff --git a/Fit/PythonAPI/src/FitStrategyAdjustParameters.pypp.cpp b/Fit/PythonAPI/src/FitStrategyAdjustParameters.pypp.cpp
index e9309bff945..e66c7605b91 100644
--- a/Fit/PythonAPI/src/FitStrategyAdjustParameters.pypp.cpp
+++ b/Fit/PythonAPI/src/FitStrategyAdjustParameters.pypp.cpp
@@ -98,9 +98,9 @@ void register_FitStrategyAdjustParameters_class(){
 
     { //::FitStrategyAdjustParameters
         typedef bp::class_< FitStrategyAdjustParameters_wrapper, bp::bases< IFitStrategy >, std::auto_ptr< FitStrategyAdjustParameters_wrapper >, boost::noncopyable > FitStrategyAdjustParameters_exposer_t;
-        FitStrategyAdjustParameters_exposer_t FitStrategyAdjustParameters_exposer = FitStrategyAdjustParameters_exposer_t( "FitStrategyAdjustParameters", bp::init< std::string const & >(( bp::arg("name") )) );
+        FitStrategyAdjustParameters_exposer_t FitStrategyAdjustParameters_exposer = FitStrategyAdjustParameters_exposer_t( "FitStrategyAdjustParameters", "", bp::init< std::string const & >(( bp::arg("name") ), "") );
         bp::scope FitStrategyAdjustParameters_scope( FitStrategyAdjustParameters_exposer );
-        FitStrategyAdjustParameters_exposer.def( bp::init< >() );
+        FitStrategyAdjustParameters_exposer.def( bp::init< >("") );
         { //::FitStrategyAdjustParameters::clear
         
             typedef void ( ::FitStrategyAdjustParameters::*clear_function_type)(  ) ;
diff --git a/Fit/PythonAPI/src/FitStrategyDefault.pypp.cpp b/Fit/PythonAPI/src/FitStrategyDefault.pypp.cpp
index c583fed1ffe..e916be6436a 100644
--- a/Fit/PythonAPI/src/FitStrategyDefault.pypp.cpp
+++ b/Fit/PythonAPI/src/FitStrategyDefault.pypp.cpp
@@ -74,7 +74,7 @@ void register_FitStrategyDefault_class(){
 
     { //::FitStrategyDefault
         typedef bp::class_< FitStrategyDefault_wrapper, bp::bases< IFitStrategy >, std::auto_ptr< FitStrategyDefault_wrapper > > FitStrategyDefault_exposer_t;
-        FitStrategyDefault_exposer_t FitStrategyDefault_exposer = FitStrategyDefault_exposer_t( "FitStrategyDefault", bp::init< >() );
+        FitStrategyDefault_exposer_t FitStrategyDefault_exposer = FitStrategyDefault_exposer_t( "FitStrategyDefault", "", bp::init< >("") );
         bp::scope FitStrategyDefault_scope( FitStrategyDefault_exposer );
         { //::FitStrategyDefault::clone
         
diff --git a/Fit/PythonAPI/src/FitStrategyFixParameters.pypp.cpp b/Fit/PythonAPI/src/FitStrategyFixParameters.pypp.cpp
index 57b9be29603..1ca43783adb 100644
--- a/Fit/PythonAPI/src/FitStrategyFixParameters.pypp.cpp
+++ b/Fit/PythonAPI/src/FitStrategyFixParameters.pypp.cpp
@@ -117,9 +117,9 @@ void register_FitStrategyFixParameters_class(){
 
     { //::FitStrategyFixParameters
         typedef bp::class_< FitStrategyFixParameters_wrapper, bp::bases< FitStrategyAdjustParameters >, std::auto_ptr< FitStrategyFixParameters_wrapper > > FitStrategyFixParameters_exposer_t;
-        FitStrategyFixParameters_exposer_t FitStrategyFixParameters_exposer = FitStrategyFixParameters_exposer_t( "FitStrategyFixParameters", bp::init< >() );
+        FitStrategyFixParameters_exposer_t FitStrategyFixParameters_exposer = FitStrategyFixParameters_exposer_t( "FitStrategyFixParameters", "", bp::init< >("") );
         bp::scope FitStrategyFixParameters_scope( FitStrategyFixParameters_exposer );
-        FitStrategyFixParameters_exposer.def( bp::init< std::vector< std::string > const & >(( bp::arg("pars") )) );
+        FitStrategyFixParameters_exposer.def( bp::init< std::vector< std::string > const & >(( bp::arg("pars") ), "") );
         { //::FitStrategyFixParameters::clear
         
             typedef void ( ::FitStrategyFixParameters::*clear_function_type)(  ) ;
diff --git a/Fit/PythonAPI/src/FitStrategyReleaseParameters.pypp.cpp b/Fit/PythonAPI/src/FitStrategyReleaseParameters.pypp.cpp
index 4ef2720a4bb..56028436d27 100644
--- a/Fit/PythonAPI/src/FitStrategyReleaseParameters.pypp.cpp
+++ b/Fit/PythonAPI/src/FitStrategyReleaseParameters.pypp.cpp
@@ -117,9 +117,9 @@ void register_FitStrategyReleaseParameters_class(){
 
     { //::FitStrategyReleaseParameters
         typedef bp::class_< FitStrategyReleaseParameters_wrapper, bp::bases< FitStrategyAdjustParameters >, std::auto_ptr< FitStrategyReleaseParameters_wrapper > > FitStrategyReleaseParameters_exposer_t;
-        FitStrategyReleaseParameters_exposer_t FitStrategyReleaseParameters_exposer = FitStrategyReleaseParameters_exposer_t( "FitStrategyReleaseParameters", bp::init< >() );
+        FitStrategyReleaseParameters_exposer_t FitStrategyReleaseParameters_exposer = FitStrategyReleaseParameters_exposer_t( "FitStrategyReleaseParameters", "", bp::init< >("") );
         bp::scope FitStrategyReleaseParameters_scope( FitStrategyReleaseParameters_exposer );
-        FitStrategyReleaseParameters_exposer.def( bp::init< std::vector< std::string > const & >(( bp::arg("pars") )) );
+        FitStrategyReleaseParameters_exposer.def( bp::init< std::vector< std::string > const & >(( bp::arg("pars") ), "") );
         { //::FitStrategyReleaseParameters::clear
         
             typedef void ( ::FitStrategyReleaseParameters::*clear_function_type)(  ) ;
diff --git a/Fit/PythonAPI/src/FitSuite.pypp.cpp b/Fit/PythonAPI/src/FitSuite.pypp.cpp
index 774e0c885b2..0a88999dc3d 100644
--- a/Fit/PythonAPI/src/FitSuite.pypp.cpp
+++ b/Fit/PythonAPI/src/FitSuite.pypp.cpp
@@ -101,9 +101,9 @@ void register_FitSuite_class(){
 
     { //::FitSuite
         typedef bp::class_< FitSuite_wrapper, bp::bases< IObservable >, boost::noncopyable > FitSuite_exposer_t;
-        FitSuite_exposer_t FitSuite_exposer = FitSuite_exposer_t( "FitSuite", bp::no_init );
+        FitSuite_exposer_t FitSuite_exposer = FitSuite_exposer_t( "FitSuite", "", bp::no_init );
         bp::scope FitSuite_scope( FitSuite_exposer );
-        FitSuite_exposer.def( bp::init< >() );
+        FitSuite_exposer.def( bp::init< >("") );
         { //::FitSuite::addFitParameter
         
             typedef void ( ::FitSuite::*addFitParameter_function_type)( ::std::string const &,double,double,::AttLimits const &,double ) ;
@@ -111,7 +111,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "addFitParameter"
                 , addFitParameter_function_type( &::FitSuite::addFitParameter )
-                , ( bp::arg("name"), bp::arg("value"), bp::arg("step"), bp::arg("attlim")=AttLimits::limitless( ), bp::arg("error")=0.0 ) );
+                , ( bp::arg("name"), bp::arg("value"), bp::arg("step"), bp::arg("attlim")=AttLimits::limitless( ), bp::arg("error")=0.0 )
+                , "    //! Adds fit parameter" );
         
         }
         { //::FitSuite::addFitParameter
@@ -121,7 +122,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "addFitParameter"
                 , addFitParameter_function_type( &::FitSuite::addFitParameter )
-                , ( bp::arg("name"), bp::arg("value"), bp::arg("attlim")=AttLimits::limitless( ), bp::arg("error")=0.0 ) );
+                , ( bp::arg("name"), bp::arg("value"), bp::arg("attlim")=AttLimits::limitless( ), bp::arg("error")=0.0 )
+                , "" );
         
         }
         { //::FitSuite::addFitStrategy
@@ -131,7 +133,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "addFitStrategy"
                 , addFitStrategy_function_type( &::FitSuite::addFitStrategy )
-                , ( bp::arg("strategy") ) );
+                , ( bp::arg("strategy") )
+                , "" );
         
         }
         { //::FitSuite::addSimulationAndRealData
@@ -141,7 +144,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "addSimulationAndRealData"
                 , addSimulationAndRealData_function_type( &::FitSuite::addSimulationAndRealData )
-                , ( bp::arg("simulation"), bp::arg("real_data"), bp::arg("chi2_module")=ChiSquaredModule() ) );
+                , ( bp::arg("simulation"), bp::arg("real_data"), bp::arg("chi2_module")=ChiSquaredModule() )
+                , "" );
         
         }
         { //::FitSuite::clear
@@ -150,7 +154,8 @@ void register_FitSuite_class(){
             
             FitSuite_exposer.def( 
                 "clear"
-                , clear_function_type( &::FitSuite::clear ) );
+                , clear_function_type( &::FitSuite::clear )
+                , "    //! clear all and prepare for the next fit" );
         
         }
         { //::FitSuite::fixAllParameters
@@ -159,7 +164,8 @@ void register_FitSuite_class(){
             
             FitSuite_exposer.def( 
                 "fixAllParameters"
-                , fixAllParameters_function_type( &::FitSuite::fixAllParameters ) );
+                , fixAllParameters_function_type( &::FitSuite::fixAllParameters )
+                , "    //! Set all parameters to fixed" );
         
         }
         { //::FitSuite::getAttributes
@@ -169,7 +175,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "getAttributes"
                 , getAttributes_function_type( &::FitSuite::getAttributes )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::FitSuite::getFitObjects
@@ -179,7 +186,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "getFitObjects"
                 , getFitObjects_function_type( &::FitSuite::getFitObjects )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns reference to the kit with data" );
         
         }
         { //::FitSuite::getFitParameter
@@ -190,7 +198,8 @@ void register_FitSuite_class(){
                 "getFitParameter"
                 , getFitParameter_function_type( &::FitSuite::getFitParameter )
                 , ( bp::arg("name") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns fit parameter with given name" );
         
         }
         { //::FitSuite::getFitParameters
@@ -200,7 +209,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "getFitParameters"
                 , getFitParameters_function_type( &::FitSuite::getFitParameters )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns reference to fit parameters" );
         
         }
         { //::FitSuite::getFitStrategies
@@ -210,7 +220,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "getFitStrategies"
                 , getFitStrategies_function_type( &::FitSuite::getFitStrategies )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns reference to fit parameters" );
         
         }
         { //::FitSuite::getMinimizer
@@ -220,7 +231,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "getMinimizer"
                 , getMinimizer_function_type( &::FitSuite::getMinimizer )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns minimizer" );
         
         }
         { //::FitSuite::getNCalls
@@ -229,7 +241,8 @@ void register_FitSuite_class(){
             
             FitSuite_exposer.def( 
                 "getNCalls"
-                , getNCalls_function_type( &::FitSuite::getNCalls ) );
+                , getNCalls_function_type( &::FitSuite::getNCalls )
+                , "    //! Returns current number of minimization function calls" );
         
         }
         { //::FitSuite::getNStrategy
@@ -238,7 +251,8 @@ void register_FitSuite_class(){
             
             FitSuite_exposer.def( 
                 "getNStrategy"
-                , getNStrategy_function_type( &::FitSuite::getNStrategy ) );
+                , getNStrategy_function_type( &::FitSuite::getNStrategy )
+                , "    //! Returns the number of current strategy" );
         
         }
         { //::FitSuite::getRunTime
@@ -247,7 +261,8 @@ void register_FitSuite_class(){
             
             FitSuite_exposer.def( 
                 "getRunTime"
-                , getRunTime_function_type( &::FitSuite::getRunTime ) );
+                , getRunTime_function_type( &::FitSuite::getRunTime )
+                , "    //! Returns total wall time in seconds which was spend for run fit" );
         
         }
         { //::FitSuite::initPrint
@@ -257,7 +272,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "initPrint"
                 , initPrint_function_type( &::FitSuite::initPrint )
-                , ( bp::arg("print_every_nth") ) );
+                , ( bp::arg("print_every_nth") )
+                , "    //! set print level" );
         
         }
         { //::FitSuite::isLastIteration
@@ -266,7 +282,8 @@ void register_FitSuite_class(){
             
             FitSuite_exposer.def( 
                 "isLastIteration"
-                , isLastIteration_function_type( &::FitSuite::isLastIteration ) );
+                , isLastIteration_function_type( &::FitSuite::isLastIteration )
+                , "    //! if the last iteration is done (used by observers to print summary)" );
         
         }
         { //::FitSuite::link_fit_parameters
@@ -297,7 +314,8 @@ void register_FitSuite_class(){
             
             FitSuite_exposer.def( 
                 "printResults"
-                , printResults_function_type( &::FitSuite::printResults ) );
+                , printResults_function_type( &::FitSuite::printResults )
+                , "    //! Prints results of the screen" );
         
         }
         { //::FitSuite::releaseAllParameters
@@ -306,7 +324,8 @@ void register_FitSuite_class(){
             
             FitSuite_exposer.def( 
                 "releaseAllParameters"
-                , releaseAllParameters_function_type( &::FitSuite::releaseAllParameters ) );
+                , releaseAllParameters_function_type( &::FitSuite::releaseAllParameters )
+                , "    //! Set all parameters to released" );
         
         }
         { //::FitSuite::runFit
@@ -327,7 +346,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "setAttributes"
                 , setAttributes_function_type( &::FitSuite::setAttributes )
-                , ( bp::arg("fit_attributes") ) );
+                , ( bp::arg("fit_attributes") )
+                , "" );
         
         }
         { //::FitSuite::setMinimizer
@@ -337,7 +357,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "setMinimizer"
                 , setMinimizer_function_type( &::FitSuite::setMinimizer )
-                , ( bp::arg("minimizer") ) );
+                , ( bp::arg("minimizer") )
+                , "    //! Sets minimizer" );
         
         }
         { //::FitSuite::setParametersFixed
@@ -347,7 +368,8 @@ void register_FitSuite_class(){
             FitSuite_exposer.def( 
                 "setParametersFixed"
                 , setParametersFixed_function_type( &::FitSuite::setParametersFixed )
-                , ( bp::arg("pars"), bp::arg("is_fixed") ) );
+                , ( bp::arg("pars"), bp::arg("is_fixed") )
+                , "    //! Set fixed flag for parameters from the list" );
         
         }
         { //::IObservable::attachObserver
diff --git a/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp b/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp
index 909a99d32b9..5f75e5b121c 100644
--- a/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp
+++ b/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp
@@ -113,7 +113,7 @@ void register_FitSuiteObjects_class(){
 
     { //::FitSuiteObjects
         typedef bp::class_< FitSuiteObjects_wrapper, bp::bases< IParameterized >, boost::noncopyable > FitSuiteObjects_exposer_t;
-        FitSuiteObjects_exposer_t FitSuiteObjects_exposer = FitSuiteObjects_exposer_t( "FitSuiteObjects", bp::init< >() );
+        FitSuiteObjects_exposer_t FitSuiteObjects_exposer = FitSuiteObjects_exposer_t( "FitSuiteObjects", "", bp::init< >("") );
         bp::scope FitSuiteObjects_scope( FitSuiteObjects_exposer );
         { //::FitSuiteObjects::add
         
@@ -122,7 +122,8 @@ void register_FitSuiteObjects_class(){
             FitSuiteObjects_exposer.def( 
                 "add"
                 , add_function_type( &::FitSuiteObjects::add )
-                , ( bp::arg("simulation"), bp::arg("real_data"), bp::arg("chi2_module"), bp::arg("weight")=1.0e+0 ) );
+                , ( bp::arg("simulation"), bp::arg("real_data"), bp::arg("chi2_module"), bp::arg("weight")=1.0e+0 )
+                , "" );
         
         }
         { //::FitSuiteObjects::calculateChiSquaredValue
@@ -131,7 +132,8 @@ void register_FitSuiteObjects_class(){
             
             FitSuiteObjects_exposer.def( 
                 "calculateChiSquaredValue"
-                , calculateChiSquaredValue_function_type( &::FitSuiteObjects::calculateChiSquaredValue ) );
+                , calculateChiSquaredValue_function_type( &::FitSuiteObjects::calculateChiSquaredValue )
+                , "    //! Returns sum of chi squared values for all fit objects" );
         
         }
         { //::FitSuiteObjects::clear
@@ -140,7 +142,8 @@ void register_FitSuiteObjects_class(){
             
             FitSuiteObjects_exposer.def( 
                 "clear"
-                , clear_function_type( &::FitSuiteObjects::clear ) );
+                , clear_function_type( &::FitSuiteObjects::clear )
+                , "    //! clear all data" );
         
         }
         { //::FitSuiteObjects::getChiSquaredMap
@@ -151,7 +154,8 @@ void register_FitSuiteObjects_class(){
                 "getChiSquaredMap"
                 , getChiSquaredMap_function_type( &::FitSuiteObjects::getChiSquaredMap )
                 , ( bp::arg("i_item")=(::std::size_t)(0) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Returns chi-squared map" );
         
         }
         { //::FitSuiteObjects::getChiSquaredValue
@@ -160,7 +164,8 @@ void register_FitSuiteObjects_class(){
             
             FitSuiteObjects_exposer.def( 
                 "getChiSquaredValue"
-                , getChiSquaredValue_function_type( &::FitSuiteObjects::getChiSquaredValue ) );
+                , getChiSquaredValue_function_type( &::FitSuiteObjects::getChiSquaredValue )
+                , "    //! Returns sum of chi squared values for all fit objects" );
         
         }
         { //::FitSuiteObjects::getObject
@@ -171,7 +176,8 @@ void register_FitSuiteObjects_class(){
                 "getObject"
                 , getObject_function_type( &::FitSuiteObjects::getObject )
                 , ( bp::arg("i_item")=(::std::size_t)(0) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns fit object" );
         
         }
         { //::FitSuiteObjects::getObject
@@ -182,7 +188,8 @@ void register_FitSuiteObjects_class(){
                 "getObject"
                 , getObject_function_type( &::FitSuiteObjects::getObject )
                 , ( bp::arg("i_item")=(::std::size_t)(0) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::FitSuiteObjects::getRealData
@@ -193,7 +200,8 @@ void register_FitSuiteObjects_class(){
                 "getRealData"
                 , getRealData_function_type( &::FitSuiteObjects::getRealData )
                 , ( bp::arg("i_item")=(::std::size_t)(0) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns real data" );
         
         }
         { //::FitSuiteObjects::getResidualValue
@@ -203,7 +211,8 @@ void register_FitSuiteObjects_class(){
             FitSuiteObjects_exposer.def( 
                 "getResidualValue"
                 , getResidualValue_function_type( &::FitSuiteObjects::getResidualValue )
-                , ( bp::arg("global_index") ) );
+                , ( bp::arg("global_index") )
+                , "    //! Returns residuals for single data element\n    //! @pars global_index index accross all OutputData defined" );
         
         }
         { //::FitSuiteObjects::getSimulation
@@ -214,7 +223,8 @@ void register_FitSuiteObjects_class(){
                 "getSimulation"
                 , getSimulation_function_type( &::FitSuiteObjects::getSimulation )
                 , ( bp::arg("i_item")=(::std::size_t)(0) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns simulation for read access." );
         
         }
         { //::FitSuiteObjects::getSimulation
@@ -225,7 +235,8 @@ void register_FitSuiteObjects_class(){
                 "getSimulation"
                 , getSimulation_function_type( &::FitSuiteObjects::getSimulation )
                 , ( bp::arg("i_item")=(::std::size_t)(0) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns simulation for write access." );
         
         }
         { //::FitSuiteObjects::getSimulationData
@@ -236,7 +247,8 @@ void register_FitSuiteObjects_class(){
                 "getSimulationData"
                 , getSimulationData_function_type( &::FitSuiteObjects::getSimulationData )
                 , ( bp::arg("i_item")=(::std::size_t)(0) )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns simulated data" );
         
         }
         { //::FitSuiteObjects::getSizeOfDataSet
@@ -245,7 +257,8 @@ void register_FitSuiteObjects_class(){
             
             FitSuiteObjects_exposer.def( 
                 "getSizeOfDataSet"
-                , getSizeOfDataSet_function_type( &::FitSuiteObjects::getSizeOfDataSet ) );
+                , getSizeOfDataSet_function_type( &::FitSuiteObjects::getSizeOfDataSet )
+                , "    //! Returns total number of data points" );
         
         }
         { //::FitSuiteObjects::runSimulations
@@ -254,7 +267,8 @@ void register_FitSuiteObjects_class(){
             
             FitSuiteObjects_exposer.def( 
                 "runSimulations"
-                , runSimulations_function_type( &::FitSuiteObjects::runSimulations ) );
+                , runSimulations_function_type( &::FitSuiteObjects::runSimulations )
+                , "    //! loop through all defined simulations and run them" );
         
         }
         { //::FitSuiteObjects::setNfreeParameters
@@ -264,7 +278,8 @@ void register_FitSuiteObjects_class(){
             FitSuiteObjects_exposer.def( 
                 "setNfreeParameters"
                 , setNfreeParameters_function_type( &::FitSuiteObjects::setNfreeParameters )
-                , ( bp::arg("nfree_parameters") ) );
+                , ( bp::arg("nfree_parameters") )
+                , "" );
         
         }
         { //::FitSuiteObjects::setRealData
@@ -274,7 +289,8 @@ void register_FitSuiteObjects_class(){
             FitSuiteObjects_exposer.def( 
                 "setRealData"
                 , setRealData_function_type( &::FitSuiteObjects::setRealData )
-                , ( bp::arg("real_data"), bp::arg("i_item")=(::std::size_t)(0) ) );
+                , ( bp::arg("real_data"), bp::arg("i_item")=(::std::size_t)(0) )
+                , "    //! Sets real data" );
         
         }
         { //::FitSuiteObjects::setSimulationNormalize
@@ -284,7 +300,8 @@ void register_FitSuiteObjects_class(){
             FitSuiteObjects_exposer.def( 
                 "setSimulationNormalize"
                 , setSimulationNormalize_function_type( &::FitSuiteObjects::setSimulationNormalize )
-                , ( bp::arg("simulation_normalize") ) );
+                , ( bp::arg("simulation_normalize") )
+                , "    //! Sets simulation normalize flag" );
         
         }
         { //::FitSuiteObjects::size
@@ -293,7 +310,8 @@ void register_FitSuiteObjects_class(){
             
             FitSuiteObjects_exposer.def( 
                 "size"
-                , size_function_type( &::FitSuiteObjects::size ) );
+                , size_function_type( &::FitSuiteObjects::size )
+                , "    //! Returns number of fit items" );
         
         }
         { //::IParameterized::areParametersChanged
diff --git a/Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp b/Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp
index e107f989d32..37df3254ae9 100644
--- a/Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp
+++ b/Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp
@@ -30,7 +30,7 @@ void register_FitSuiteParameters_class(){
 
     { //::FitSuiteParameters
         typedef bp::class_< FitSuiteParameters > FitSuiteParameters_exposer_t;
-        FitSuiteParameters_exposer_t FitSuiteParameters_exposer = FitSuiteParameters_exposer_t( "FitSuiteParameters", bp::init< >() );
+        FitSuiteParameters_exposer_t FitSuiteParameters_exposer = FitSuiteParameters_exposer_t( "FitSuiteParameters", "", bp::init< >("") );
         bp::scope FitSuiteParameters_scope( FitSuiteParameters_exposer );
         { //::FitSuiteParameters::addParameter
         
@@ -39,7 +39,8 @@ void register_FitSuiteParameters_class(){
             FitSuiteParameters_exposer.def( 
                 "addParameter"
                 , addParameter_function_type( &::FitSuiteParameters::addParameter )
-                , ( bp::arg("name"), bp::arg("value"), bp::arg("step"), bp::arg("attlim"), bp::arg("error")=0.0 ) );
+                , ( bp::arg("name"), bp::arg("value"), bp::arg("step"), bp::arg("attlim"), bp::arg("error")=0.0 )
+                , "    //! Adds fit parameter" );
         
         }
         { //::FitSuiteParameters::clear
@@ -48,7 +49,8 @@ void register_FitSuiteParameters_class(){
             
             FitSuiteParameters_exposer.def( 
                 "clear"
-                , clear_function_type( &::FitSuiteParameters::clear ) );
+                , clear_function_type( &::FitSuiteParameters::clear )
+                , "    //! clear all defined parameters" );
         
         }
         { //::FitSuiteParameters::fixAll
@@ -57,7 +59,8 @@ void register_FitSuiteParameters_class(){
             
             FitSuiteParameters_exposer.def( 
                 "fixAll"
-                , fixAll_function_type( &::FitSuiteParameters::fixAll ) );
+                , fixAll_function_type( &::FitSuiteParameters::fixAll )
+                , "    //! Fix all parameters" );
         
         }
         { //::FitSuiteParameters::getErrors
@@ -66,7 +69,8 @@ void register_FitSuiteParameters_class(){
             
             FitSuiteParameters_exposer.def( 
                 "getErrors"
-                , getErrors_function_type( &::FitSuiteParameters::getErrors ) );
+                , getErrors_function_type( &::FitSuiteParameters::getErrors )
+                , "    //! Returns errors of all defined parameters" );
         
         }
         { //::FitSuiteParameters::getNfreeParameters
@@ -75,7 +79,8 @@ void register_FitSuiteParameters_class(){
             
             FitSuiteParameters_exposer.def( 
                 "getNfreeParameters"
-                , getNfreeParameters_function_type( &::FitSuiteParameters::getNfreeParameters ) );
+                , getNfreeParameters_function_type( &::FitSuiteParameters::getNfreeParameters )
+                , "    //! Returns number of free parameters" );
         
         }
         { //::FitSuiteParameters::getParameter
@@ -86,7 +91,8 @@ void register_FitSuiteParameters_class(){
                 "getParameter"
                 , getParameter_function_type( &::FitSuiteParameters::getParameter )
                 , ( bp::arg("name") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns fit parameter with given name" );
         
         }
         { //::FitSuiteParameters::getParameter
@@ -97,7 +103,8 @@ void register_FitSuiteParameters_class(){
                 "getParameter"
                 , getParameter_function_type( &::FitSuiteParameters::getParameter )
                 , ( bp::arg("name") )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::FitSuiteParameters::getValues
@@ -106,7 +113,8 @@ void register_FitSuiteParameters_class(){
             
             FitSuiteParameters_exposer.def( 
                 "getValues"
-                , getValues_function_type( &::FitSuiteParameters::getValues ) );
+                , getValues_function_type( &::FitSuiteParameters::getValues )
+                , "    //! Returns values of all defined parameters" );
         
         }
         { //::FitSuiteParameters::operator[]
@@ -117,7 +125,8 @@ void register_FitSuiteParameters_class(){
                 "__getitem__"
                 , __getitem___function_type( &::FitSuiteParameters::operator[] )
                 , ( bp::arg("index") )
-                , bp::return_internal_reference< >() );
+                , bp::return_internal_reference< >()
+                , "    //! access to parameters" );
         
         }
         { //::FitSuiteParameters::operator[]
@@ -128,7 +137,8 @@ void register_FitSuiteParameters_class(){
                 "__getitem__"
                 , __getitem___function_type( &::FitSuiteParameters::operator[] )
                 , ( bp::arg("index") )
-                , bp::return_internal_reference< >() );
+                , bp::return_internal_reference< >()
+                , "" );
         
         }
         { //::FitSuiteParameters::operator[]
@@ -139,7 +149,8 @@ void register_FitSuiteParameters_class(){
                 "__getitem__"
                 , __getitem___function_type( &::FitSuiteParameters::operator[] )
                 , ( bp::arg("name") )
-                , bp::return_internal_reference< >() );
+                , bp::return_internal_reference< >()
+                , "" );
         
         }
         { //::FitSuiteParameters::operator[]
@@ -150,7 +161,8 @@ void register_FitSuiteParameters_class(){
                 "__getitem__"
                 , __getitem___function_type( &::FitSuiteParameters::operator[] )
                 , ( bp::arg("name") )
-                , bp::return_internal_reference< >() );
+                , bp::return_internal_reference< >()
+                , "" );
         
         }
         { //::FitSuiteParameters::printParameters
@@ -159,7 +171,8 @@ void register_FitSuiteParameters_class(){
             
             FitSuiteParameters_exposer.def( 
                 "printParameters"
-                , printParameters_function_type( &::FitSuiteParameters::printParameters ) );
+                , printParameters_function_type( &::FitSuiteParameters::printParameters )
+                , "    //! Print defined parameters" );
         
         }
         { //::FitSuiteParameters::releaseAll
@@ -168,7 +181,8 @@ void register_FitSuiteParameters_class(){
             
             FitSuiteParameters_exposer.def( 
                 "releaseAll"
-                , releaseAll_function_type( &::FitSuiteParameters::releaseAll ) );
+                , releaseAll_function_type( &::FitSuiteParameters::releaseAll )
+                , "    //! Release all parameters" );
         
         }
         { //::FitSuiteParameters::setErrors
@@ -178,7 +192,8 @@ void register_FitSuiteParameters_class(){
             FitSuiteParameters_exposer.def( 
                 "setErrors"
                 , setErrors_function_type( &::FitSuiteParameters::setErrors )
-                , ( bp::arg("pars_errors") ) );
+                , ( bp::arg("pars_errors") )
+                , "    //! set errors to all parameters" );
         
         }
         { //::FitSuiteParameters::setParametersFixed
@@ -188,7 +203,8 @@ void register_FitSuiteParameters_class(){
             FitSuiteParameters_exposer.def( 
                 "setParametersFixed"
                 , setParametersFixed_function_type( &::FitSuiteParameters::setParametersFixed )
-                , ( bp::arg("pars"), bp::arg("is_fixed") ) );
+                , ( bp::arg("pars"), bp::arg("is_fixed") )
+                , "    //! Set fixed flag for parameters from the list" );
         
         }
         { //::FitSuiteParameters::setValues
@@ -198,7 +214,8 @@ void register_FitSuiteParameters_class(){
             FitSuiteParameters_exposer.def( 
                 "setValues"
                 , setValues_function_type( &::FitSuiteParameters::setValues )
-                , ( bp::arg("pars_values") ) );
+                , ( bp::arg("pars_values") )
+                , "" );
         
         }
         { //::FitSuiteParameters::size
@@ -207,7 +224,8 @@ void register_FitSuiteParameters_class(){
             
             FitSuiteParameters_exposer.def( 
                 "size"
-                , size_function_type( &::FitSuiteParameters::size ) );
+                , size_function_type( &::FitSuiteParameters::size )
+                , "    //! Returns number of parameters" );
         
         }
     }
diff --git a/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp b/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp
index dcd9dba0b62..c167e031c67 100644
--- a/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp
+++ b/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp
@@ -154,7 +154,7 @@ void register_IChiSquaredModule_class(){
 
     { //::IChiSquaredModule
         typedef bp::class_< IChiSquaredModule_wrapper, std::auto_ptr< IChiSquaredModule_wrapper >, boost::noncopyable > IChiSquaredModule_exposer_t;
-        IChiSquaredModule_exposer_t IChiSquaredModule_exposer = IChiSquaredModule_exposer_t( "IChiSquaredModule", bp::init< >() );
+        IChiSquaredModule_exposer_t IChiSquaredModule_exposer = IChiSquaredModule_exposer_t( "IChiSquaredModule", "", bp::init< >("") );
         bp::scope IChiSquaredModule_scope( IChiSquaredModule_exposer );
         { //::IChiSquaredModule::calculateChiSquared
         
@@ -162,7 +162,8 @@ void register_IChiSquaredModule_class(){
             
             IChiSquaredModule_exposer.def( 
                 "calculateChiSquared"
-                , bp::pure_virtual( calculateChiSquared_function_type(&::IChiSquaredModule::calculateChiSquared) ) );
+                , bp::pure_virtual( calculateChiSquared_function_type(&::IChiSquaredModule::calculateChiSquared) )
+                , "    //! Returns chi squared value." );
         
         }
         { //::IChiSquaredModule::clone
@@ -172,7 +173,8 @@ void register_IChiSquaredModule_class(){
             IChiSquaredModule_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IChiSquaredModule::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! clone method" );
         
         }
         { //::IChiSquaredModule::createChi2DifferenceMap
@@ -182,7 +184,8 @@ void register_IChiSquaredModule_class(){
             IChiSquaredModule_exposer.def( 
                 "createChi2DifferenceMap"
                 , bp::pure_virtual( createChi2DifferenceMap_function_type(&::IChiSquaredModule::createChi2DifferenceMap) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "    //! Returns output data which contains chi^2 values" );
         
         }
         { //::IChiSquaredModule::getFittingDataSelector
@@ -240,7 +243,8 @@ void register_IChiSquaredModule_class(){
             IChiSquaredModule_exposer.def( 
                 "getRealData"
                 , getRealData_function_type( &::IChiSquaredModule::getRealData )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns real data" );
         
         }
         { //::IChiSquaredModule::getResidualValue
@@ -262,7 +266,8 @@ void register_IChiSquaredModule_class(){
             IChiSquaredModule_exposer.def( 
                 "getSimulationData"
                 , getSimulationData_function_type( &::IChiSquaredModule::getSimulationData )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns simulated data" );
         
         }
         { //::IChiSquaredModule::getSquaredFunction
@@ -272,7 +277,8 @@ void register_IChiSquaredModule_class(){
             IChiSquaredModule_exposer.def( 
                 "getSquaredFunction"
                 , getSquaredFunction_function_type( &::IChiSquaredModule::getSquaredFunction )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "    //! Returns squared function" );
         
         }
         { //::IChiSquaredModule::setChiSquaredFunction
@@ -282,7 +288,8 @@ void register_IChiSquaredModule_class(){
             IChiSquaredModule_exposer.def( 
                 "setChiSquaredFunction"
                 , setChiSquaredFunction_function_type( &::IChiSquaredModule::setChiSquaredFunction )
-                , ( bp::arg("squared_function") ) );
+                , ( bp::arg("squared_function") )
+                , "" );
         
         }
         { //::IChiSquaredModule::setFittingDataSelector
@@ -328,7 +335,8 @@ void register_IChiSquaredModule_class(){
             IChiSquaredModule_exposer.def( 
                 "setNdegreeOfFreedom"
                 , setNdegreeOfFreedom_function_type( &::IChiSquaredModule::setNdegreeOfFreedom )
-                , ( bp::arg("ndegree_of_freedom") ) );
+                , ( bp::arg("ndegree_of_freedom") )
+                , "    //! Sets number of degree of freedom." );
         
         }
         { //::IChiSquaredModule::setRealAndSimulatedData
@@ -338,7 +346,8 @@ void register_IChiSquaredModule_class(){
             IChiSquaredModule_exposer.def( 
                 "setRealAndSimulatedData"
                 , setRealAndSimulatedData_function_type( &::IChiSquaredModule::setRealAndSimulatedData )
-                , ( bp::arg("real_data"), bp::arg("simulation_data") ) );
+                , ( bp::arg("real_data"), bp::arg("simulation_data") )
+                , "" );
         
         }
     }
diff --git a/Fit/PythonAPI/src/IFitStrategy.pypp.cpp b/Fit/PythonAPI/src/IFitStrategy.pypp.cpp
index 3a2566462a9..3e6f3d5bf9b 100644
--- a/Fit/PythonAPI/src/IFitStrategy.pypp.cpp
+++ b/Fit/PythonAPI/src/IFitStrategy.pypp.cpp
@@ -60,9 +60,9 @@ void register_IFitStrategy_class(){
 
     { //::IFitStrategy
         typedef bp::class_< IFitStrategy_wrapper, bp::bases< INamed >, std::auto_ptr< IFitStrategy_wrapper >, boost::noncopyable > IFitStrategy_exposer_t;
-        IFitStrategy_exposer_t IFitStrategy_exposer = IFitStrategy_exposer_t( "IFitStrategy", bp::init< >() );
+        IFitStrategy_exposer_t IFitStrategy_exposer = IFitStrategy_exposer_t( "IFitStrategy", "", bp::init< >("") );
         bp::scope IFitStrategy_scope( IFitStrategy_exposer );
-        IFitStrategy_exposer.def( bp::init< std::string const & >(( bp::arg("name") )) );
+        IFitStrategy_exposer.def( bp::init< std::string const & >(( bp::arg("name") ), "") );
         { //::IFitStrategy::clone
         
             typedef ::IFitStrategy * ( ::IFitStrategy::*clone_function_type)(  ) const;
@@ -70,7 +70,8 @@ void register_IFitStrategy_class(){
             IFitStrategy_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IFitStrategy::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IFitStrategy::execute
@@ -79,7 +80,8 @@ void register_IFitStrategy_class(){
             
             IFitStrategy_exposer.def( 
                 "execute"
-                , bp::pure_virtual( execute_function_type(&::IFitStrategy::execute) ) );
+                , bp::pure_virtual( execute_function_type(&::IFitStrategy::execute) )
+                , "" );
         
         }
     }
diff --git a/Fit/PythonAPI/src/IIntensityFunction.pypp.cpp b/Fit/PythonAPI/src/IIntensityFunction.pypp.cpp
index 92816efcba5..75af0ed293f 100644
--- a/Fit/PythonAPI/src/IIntensityFunction.pypp.cpp
+++ b/Fit/PythonAPI/src/IIntensityFunction.pypp.cpp
@@ -53,7 +53,7 @@ void register_IIntensityFunction_class(){
 
     { //::IIntensityFunction
         typedef bp::class_< IIntensityFunction_wrapper, std::auto_ptr< IIntensityFunction_wrapper >, boost::noncopyable > IIntensityFunction_exposer_t;
-        IIntensityFunction_exposer_t IIntensityFunction_exposer = IIntensityFunction_exposer_t( "IIntensityFunction" );
+        IIntensityFunction_exposer_t IIntensityFunction_exposer = IIntensityFunction_exposer_t( "IIntensityFunction", "" );
         bp::scope IIntensityFunction_scope( IIntensityFunction_exposer );
         { //::IIntensityFunction::clone
         
@@ -62,7 +62,8 @@ void register_IIntensityFunction_class(){
             IIntensityFunction_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IIntensityFunction::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IIntensityFunction::evaluate
@@ -72,7 +73,8 @@ void register_IIntensityFunction_class(){
             IIntensityFunction_exposer.def( 
                 "evaluate"
                 , bp::pure_virtual( evaluate_function_type(&::IIntensityFunction::evaluate) )
-                , ( bp::arg("value") ) );
+                , ( bp::arg("value") )
+                , "" );
         
         }
     }
diff --git a/Fit/PythonAPI/src/IIntensityNormalizer.pypp.cpp b/Fit/PythonAPI/src/IIntensityNormalizer.pypp.cpp
index b93ef318622..a4ade4cd7d9 100644
--- a/Fit/PythonAPI/src/IIntensityNormalizer.pypp.cpp
+++ b/Fit/PythonAPI/src/IIntensityNormalizer.pypp.cpp
@@ -130,7 +130,7 @@ void register_IIntensityNormalizer_class(){
 
     { //::IIntensityNormalizer
         typedef bp::class_< IIntensityNormalizer_wrapper, bp::bases< IParameterized >, std::auto_ptr< IIntensityNormalizer_wrapper >, boost::noncopyable > IIntensityNormalizer_exposer_t;
-        IIntensityNormalizer_exposer_t IIntensityNormalizer_exposer = IIntensityNormalizer_exposer_t( "IIntensityNormalizer" );
+        IIntensityNormalizer_exposer_t IIntensityNormalizer_exposer = IIntensityNormalizer_exposer_t( "IIntensityNormalizer", "" );
         bp::scope IIntensityNormalizer_scope( IIntensityNormalizer_exposer );
         { //::IIntensityNormalizer::clone
         
@@ -139,7 +139,8 @@ void register_IIntensityNormalizer_class(){
             IIntensityNormalizer_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::IIntensityNormalizer::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IIntensityNormalizer::createNormalizedData
@@ -150,7 +151,8 @@ void register_IIntensityNormalizer_class(){
                 "createNormalizedData"
                 , bp::pure_virtual( createNormalizedData_function_type(&::IIntensityNormalizer::createNormalizedData) )
                 , ( bp::arg("data") )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
         { //::IIntensityNormalizer::setMaximumIntensity
@@ -160,7 +162,8 @@ void register_IIntensityNormalizer_class(){
             IIntensityNormalizer_exposer.def( 
                 "setMaximumIntensity"
                 , bp::pure_virtual( setMaximumIntensity_function_type(&::IIntensityNormalizer::setMaximumIntensity) )
-                , ( bp::arg("arg0") ) );
+                , ( bp::arg("arg0") )
+                , "" );
         
         }
         { //::IParameterized::areParametersChanged
diff --git a/Fit/PythonAPI/src/IMinimizer.pypp.cpp b/Fit/PythonAPI/src/IMinimizer.pypp.cpp
index aaadd3d8712..d6dbe9d4ddb 100644
--- a/Fit/PythonAPI/src/IMinimizer.pypp.cpp
+++ b/Fit/PythonAPI/src/IMinimizer.pypp.cpp
@@ -226,7 +226,7 @@ void register_IMinimizer_class(){
 
     { //::IMinimizer
         typedef bp::class_< IMinimizer_wrapper, boost::noncopyable > IMinimizer_exposer_t;
-        IMinimizer_exposer_t IMinimizer_exposer = IMinimizer_exposer_t( "IMinimizer", bp::init< >() );
+        IMinimizer_exposer_t IMinimizer_exposer = IMinimizer_exposer_t( "IMinimizer", "", bp::init< >("") );
         bp::scope IMinimizer_scope( IMinimizer_exposer );
         { //::IMinimizer::clear
         
@@ -355,7 +355,8 @@ void register_IMinimizer_class(){
             
             IMinimizer_exposer.def( 
                 "minimize"
-                , bp::pure_virtual( minimize_function_type(&::IMinimizer::minimize) ) );
+                , bp::pure_virtual( minimize_function_type(&::IMinimizer::minimize) )
+                , "    //! run minimization" );
         
         }
         { //::IMinimizer::printResults
diff --git a/Fit/PythonAPI/src/INamed.pypp.cpp b/Fit/PythonAPI/src/INamed.pypp.cpp
index 4009095af77..2372865390f 100644
--- a/Fit/PythonAPI/src/INamed.pypp.cpp
+++ b/Fit/PythonAPI/src/INamed.pypp.cpp
@@ -30,16 +30,17 @@ void register_INamed_class(){
 
     { //::INamed
         typedef bp::class_< INamed > INamed_exposer_t;
-        INamed_exposer_t INamed_exposer = INamed_exposer_t( "INamed", bp::init< >() );
+        INamed_exposer_t INamed_exposer = INamed_exposer_t( "INamed", "", bp::init< >("    //! Default constructor, setting name="".") );
         bp::scope INamed_scope( INamed_exposer );
-        INamed_exposer.def( bp::init< std::string const & >(( bp::arg("name") )) );
+        INamed_exposer.def( bp::init< std::string const & >(( bp::arg("name") ), "    //! Constructor that sets the _name_.") );
         { //::INamed::getName
         
             typedef ::std::string ( ::INamed::*getName_function_type)(  ) const;
             
             INamed_exposer.def( 
                 "getName"
-                , getName_function_type( &::INamed::getName ) );
+                , getName_function_type( &::INamed::getName )
+                , "    //! Returns the name." );
         
         }
         { //::INamed::setName
@@ -49,7 +50,8 @@ void register_INamed_class(){
             INamed_exposer.def( 
                 "setName"
                 , setName_function_type( &::INamed::setName )
-                , ( bp::arg("name") ) );
+                , ( bp::arg("name") )
+                , "    //! Sets the _name_." );
         
         }
     }
diff --git a/Fit/PythonAPI/src/ISquaredFunction.pypp.cpp b/Fit/PythonAPI/src/ISquaredFunction.pypp.cpp
index 47f98a6901a..8d6ae24263a 100644
--- a/Fit/PythonAPI/src/ISquaredFunction.pypp.cpp
+++ b/Fit/PythonAPI/src/ISquaredFunction.pypp.cpp
@@ -58,7 +58,7 @@ void register_ISquaredFunction_class(){
 
     { //::ISquaredFunction
         typedef bp::class_< ISquaredFunction_wrapper, std::auto_ptr< ISquaredFunction_wrapper >, boost::noncopyable > ISquaredFunction_exposer_t;
-        ISquaredFunction_exposer_t ISquaredFunction_exposer = ISquaredFunction_exposer_t( "ISquaredFunction", bp::init< >() );
+        ISquaredFunction_exposer_t ISquaredFunction_exposer = ISquaredFunction_exposer_t( "ISquaredFunction", "", bp::init< >("") );
         bp::scope ISquaredFunction_scope( ISquaredFunction_exposer );
         { //::ISquaredFunction::calculateSquaredDifference
         
@@ -67,7 +67,8 @@ void register_ISquaredFunction_class(){
             ISquaredFunction_exposer.def( 
                 "calculateSquaredDifference"
                 , bp::pure_virtual( calculateSquaredDifference_function_type(&::ISquaredFunction::calculateSquaredDifference) )
-                , ( bp::arg("real_value"), bp::arg("simulated_value") ) );
+                , ( bp::arg("real_value"), bp::arg("simulated_value") )
+                , "" );
         
         }
         { //::ISquaredFunction::calculateSquaredError
@@ -77,7 +78,8 @@ void register_ISquaredFunction_class(){
             ISquaredFunction_exposer.def( 
                 "calculateSquaredError"
                 , bp::pure_virtual( calculateSquaredError_function_type(&::ISquaredFunction::calculateSquaredError) )
-                , ( bp::arg("real_value"), bp::arg("simulated_value")=0.0 ) );
+                , ( bp::arg("real_value"), bp::arg("simulated_value")=0.0 )
+                , "" );
         
         }
         { //::ISquaredFunction::clone
@@ -87,7 +89,8 @@ void register_ISquaredFunction_class(){
             ISquaredFunction_exposer.def( 
                 "clone"
                 , bp::pure_virtual( clone_function_type(&::ISquaredFunction::clone) )
-                , bp::return_value_policy< bp::manage_new_object >() );
+                , bp::return_value_policy< bp::manage_new_object >()
+                , "" );
         
         }
     }
diff --git a/Fit/PythonAPI/src/IntensityFunctionLog.pypp.cpp b/Fit/PythonAPI/src/IntensityFunctionLog.pypp.cpp
index fedf30a6388..c190c996b01 100644
--- a/Fit/PythonAPI/src/IntensityFunctionLog.pypp.cpp
+++ b/Fit/PythonAPI/src/IntensityFunctionLog.pypp.cpp
@@ -74,7 +74,7 @@ void register_IntensityFunctionLog_class(){
 
     { //::IntensityFunctionLog
         typedef bp::class_< IntensityFunctionLog_wrapper, bp::bases< IIntensityFunction >, std::auto_ptr< IntensityFunctionLog_wrapper > > IntensityFunctionLog_exposer_t;
-        IntensityFunctionLog_exposer_t IntensityFunctionLog_exposer = IntensityFunctionLog_exposer_t( "IntensityFunctionLog" );
+        IntensityFunctionLog_exposer_t IntensityFunctionLog_exposer = IntensityFunctionLog_exposer_t( "IntensityFunctionLog", "" );
         bp::scope IntensityFunctionLog_scope( IntensityFunctionLog_exposer );
         { //::IntensityFunctionLog::clone
         
diff --git a/Fit/PythonAPI/src/IntensityFunctionSqrt.pypp.cpp b/Fit/PythonAPI/src/IntensityFunctionSqrt.pypp.cpp
index 02bcfe5814a..fad8ef8311d 100644
--- a/Fit/PythonAPI/src/IntensityFunctionSqrt.pypp.cpp
+++ b/Fit/PythonAPI/src/IntensityFunctionSqrt.pypp.cpp
@@ -74,7 +74,7 @@ void register_IntensityFunctionSqrt_class(){
 
     { //::IntensityFunctionSqrt
         typedef bp::class_< IntensityFunctionSqrt_wrapper, bp::bases< IIntensityFunction >, std::auto_ptr< IntensityFunctionSqrt_wrapper > > IntensityFunctionSqrt_exposer_t;
-        IntensityFunctionSqrt_exposer_t IntensityFunctionSqrt_exposer = IntensityFunctionSqrt_exposer_t( "IntensityFunctionSqrt" );
+        IntensityFunctionSqrt_exposer_t IntensityFunctionSqrt_exposer = IntensityFunctionSqrt_exposer_t( "IntensityFunctionSqrt", "" );
         bp::scope IntensityFunctionSqrt_scope( IntensityFunctionSqrt_exposer );
         { //::IntensityFunctionSqrt::clone
         
diff --git a/Fit/PythonAPI/src/IntensityNormalizer.pypp.cpp b/Fit/PythonAPI/src/IntensityNormalizer.pypp.cpp
index 5d9827f5094..093cfdbdda6 100644
--- a/Fit/PythonAPI/src/IntensityNormalizer.pypp.cpp
+++ b/Fit/PythonAPI/src/IntensityNormalizer.pypp.cpp
@@ -158,7 +158,7 @@ void register_IntensityNormalizer_class(){
 
     { //::IntensityNormalizer
         typedef bp::class_< IntensityNormalizer_wrapper, bp::bases< IIntensityNormalizer >, std::auto_ptr< IntensityNormalizer_wrapper > > IntensityNormalizer_exposer_t;
-        IntensityNormalizer_exposer_t IntensityNormalizer_exposer = IntensityNormalizer_exposer_t( "IntensityNormalizer", bp::init< bp::optional< double, double > >(( bp::arg("scale")=1.0e+0, bp::arg("shift")=0.0 )) );
+        IntensityNormalizer_exposer_t IntensityNormalizer_exposer = IntensityNormalizer_exposer_t( "IntensityNormalizer", "", bp::init< bp::optional< double, double > >(( bp::arg("scale")=1.0e+0, bp::arg("shift")=0.0 ), "") );
         bp::scope IntensityNormalizer_scope( IntensityNormalizer_exposer );
         { //::IntensityNormalizer::clone
         
diff --git a/Fit/PythonAPI/src/IntensityScaleAndShiftNormalizer.pypp.cpp b/Fit/PythonAPI/src/IntensityScaleAndShiftNormalizer.pypp.cpp
index ec3f79ad28e..02b9ec235f2 100644
--- a/Fit/PythonAPI/src/IntensityScaleAndShiftNormalizer.pypp.cpp
+++ b/Fit/PythonAPI/src/IntensityScaleAndShiftNormalizer.pypp.cpp
@@ -158,7 +158,7 @@ void register_IntensityScaleAndShiftNormalizer_class(){
 
     { //::IntensityScaleAndShiftNormalizer
         typedef bp::class_< IntensityScaleAndShiftNormalizer_wrapper, bp::bases< IntensityNormalizer >, std::auto_ptr< IntensityScaleAndShiftNormalizer_wrapper > > IntensityScaleAndShiftNormalizer_exposer_t;
-        IntensityScaleAndShiftNormalizer_exposer_t IntensityScaleAndShiftNormalizer_exposer = IntensityScaleAndShiftNormalizer_exposer_t( "IntensityScaleAndShiftNormalizer", bp::init< bp::optional< double, double > >(( bp::arg("scale")=1.0e+0, bp::arg("shift")=0.0 )) );
+        IntensityScaleAndShiftNormalizer_exposer_t IntensityScaleAndShiftNormalizer_exposer = IntensityScaleAndShiftNormalizer_exposer_t( "IntensityScaleAndShiftNormalizer", "", bp::init< bp::optional< double, double > >(( bp::arg("scale")=1.0e+0, bp::arg("shift")=0.0 ), "") );
         bp::scope IntensityScaleAndShiftNormalizer_scope( IntensityScaleAndShiftNormalizer_exposer );
         { //::IntensityScaleAndShiftNormalizer::clone
         
diff --git a/Fit/PythonAPI/src/MinimizerFactory.pypp.cpp b/Fit/PythonAPI/src/MinimizerFactory.pypp.cpp
index b34d6c99802..a5ed8cc66c2 100644
--- a/Fit/PythonAPI/src/MinimizerFactory.pypp.cpp
+++ b/Fit/PythonAPI/src/MinimizerFactory.pypp.cpp
@@ -30,7 +30,7 @@ void register_MinimizerFactory_class(){
 
     { //::MinimizerFactory
         typedef bp::class_< MinimizerFactory > MinimizerFactory_exposer_t;
-        MinimizerFactory_exposer_t MinimizerFactory_exposer = MinimizerFactory_exposer_t( "MinimizerFactory" );
+        MinimizerFactory_exposer_t MinimizerFactory_exposer = MinimizerFactory_exposer_t( "MinimizerFactory", "" );
         bp::scope MinimizerFactory_scope( MinimizerFactory_exposer );
         { //::MinimizerFactory::createMinimizer
         
@@ -40,7 +40,8 @@ void register_MinimizerFactory_class(){
                 "createMinimizer"
                 , createMinimizer_function_type( &::MinimizerFactory::createMinimizer )
                 , ( bp::arg("minimizer"), bp::arg("algorithm")=std::basic_string<char, std::char_traits<char>, std::allocator<char> >(), bp::arg("options")=std::basic_string<char, std::char_traits<char>, std::allocator<char> >() )
-                , bp::return_value_policy< bp::reference_existing_object >() );
+                , bp::return_value_policy< bp::reference_existing_object >()
+                , "" );
         
         }
         { //::MinimizerFactory::printCatalogue
@@ -49,7 +50,8 @@ void register_MinimizerFactory_class(){
             
             MinimizerFactory_exposer.def( 
                 "printCatalogue"
-                , printCatalogue_function_type( &::MinimizerFactory::printCatalogue ) );
+                , printCatalogue_function_type( &::MinimizerFactory::printCatalogue )
+                , "" );
         
         }
         MinimizerFactory_exposer.staticmethod( "createMinimizer" );
diff --git a/Fit/PythonAPI/src/MinimizerOptions.pypp.cpp b/Fit/PythonAPI/src/MinimizerOptions.pypp.cpp
index 1110fce00a3..eaf7b0df0c9 100644
--- a/Fit/PythonAPI/src/MinimizerOptions.pypp.cpp
+++ b/Fit/PythonAPI/src/MinimizerOptions.pypp.cpp
@@ -30,7 +30,7 @@ void register_MinimizerOptions_class(){
 
     { //::MinimizerOptions
         typedef bp::class_< MinimizerOptions > MinimizerOptions_exposer_t;
-        MinimizerOptions_exposer_t MinimizerOptions_exposer = MinimizerOptions_exposer_t( "MinimizerOptions", bp::init< >() );
+        MinimizerOptions_exposer_t MinimizerOptions_exposer = MinimizerOptions_exposer_t( "MinimizerOptions", "", bp::init< >("") );
         bp::scope MinimizerOptions_scope( MinimizerOptions_exposer );
         { //::MinimizerOptions::addValue
         
@@ -39,7 +39,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "addValue"
                 , addValue_function_type( &::MinimizerOptions::addValue )
-                , ( bp::arg("name"), bp::arg("val") ) );
+                , ( bp::arg("name"), bp::arg("val") )
+                , "" );
         
         }
         { //::MinimizerOptions::addValue
@@ -49,7 +50,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "addValue"
                 , addValue_function_type( &::MinimizerOptions::addValue )
-                , ( bp::arg("name"), bp::arg("val") ) );
+                , ( bp::arg("name"), bp::arg("val") )
+                , "" );
         
         }
         { //::MinimizerOptions::addValue
@@ -59,7 +61,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "addValue"
                 , addValue_function_type( &::MinimizerOptions::addValue )
-                , ( bp::arg("name"), bp::arg("val") ) );
+                , ( bp::arg("name"), bp::arg("val") )
+                , "" );
         
         }
         { //::MinimizerOptions::getIntValue
@@ -69,7 +72,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "getIntValue"
                 , getIntValue_function_type( &::MinimizerOptions::getIntValue )
-                , ( bp::arg("name") ) );
+                , ( bp::arg("name") )
+                , "" );
         
         }
         { //::MinimizerOptions::getMaxFunctionCalls
@@ -78,7 +82,8 @@ void register_MinimizerOptions_class(){
             
             MinimizerOptions_exposer.def( 
                 "getMaxFunctionCalls"
-                , getMaxFunctionCalls_function_type( &::MinimizerOptions::getMaxFunctionCalls ) );
+                , getMaxFunctionCalls_function_type( &::MinimizerOptions::getMaxFunctionCalls )
+                , "    //! return maximum number of allowed function calls" );
         
         }
         { //::MinimizerOptions::getMaxIterations
@@ -87,7 +92,8 @@ void register_MinimizerOptions_class(){
             
             MinimizerOptions_exposer.def( 
                 "getMaxIterations"
-                , getMaxIterations_function_type( &::MinimizerOptions::getMaxIterations ) );
+                , getMaxIterations_function_type( &::MinimizerOptions::getMaxIterations )
+                , "    //! return maximum number of allowed iterations" );
         
         }
         { //::MinimizerOptions::getNamedValue
@@ -97,7 +103,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "getNamedValue"
                 , getNamedValue_function_type( &::MinimizerOptions::getNamedValue )
-                , ( bp::arg("name") ) );
+                , ( bp::arg("name") )
+                , "" );
         
         }
         { //::MinimizerOptions::getPrecision
@@ -106,7 +113,8 @@ void register_MinimizerOptions_class(){
             
             MinimizerOptions_exposer.def( 
                 "getPrecision"
-                , getPrecision_function_type( &::MinimizerOptions::getPrecision ) );
+                , getPrecision_function_type( &::MinimizerOptions::getPrecision )
+                , "    //! return minimizer precision" );
         
         }
         { //::MinimizerOptions::getPrintLevel
@@ -115,7 +123,8 @@ void register_MinimizerOptions_class(){
             
             MinimizerOptions_exposer.def( 
                 "getPrintLevel"
-                , getPrintLevel_function_type( &::MinimizerOptions::getPrintLevel ) );
+                , getPrintLevel_function_type( &::MinimizerOptions::getPrintLevel )
+                , "    //! return internal print level of the minimizer" );
         
         }
         { //::MinimizerOptions::getRealValue
@@ -125,7 +134,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "getRealValue"
                 , getRealValue_function_type( &::MinimizerOptions::getRealValue )
-                , ( bp::arg("name") ) );
+                , ( bp::arg("name") )
+                , "" );
         
         }
         { //::MinimizerOptions::getTolerance
@@ -134,7 +144,8 @@ void register_MinimizerOptions_class(){
             
             MinimizerOptions_exposer.def( 
                 "getTolerance"
-                , getTolerance_function_type( &::MinimizerOptions::getTolerance ) );
+                , getTolerance_function_type( &::MinimizerOptions::getTolerance )
+                , "    //! return minimizer tolerance" );
         
         }
         { //::MinimizerOptions::print
@@ -143,7 +154,8 @@ void register_MinimizerOptions_class(){
             
             MinimizerOptions_exposer.def( 
                 "print"
-                , print_function_type( &::MinimizerOptions::print ) );
+                , print_function_type( &::MinimizerOptions::print )
+                , "" );
         
         }
         { //::MinimizerOptions::setMaxFunctionCalls
@@ -153,7 +165,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "setMaxFunctionCalls"
                 , setMaxFunctionCalls_function_type( &::MinimizerOptions::setMaxFunctionCalls )
-                , ( bp::arg("max_function_calls") ) );
+                , ( bp::arg("max_function_calls") )
+                , "    //! set maximum number of allowed function calls" );
         
         }
         { //::MinimizerOptions::setMaxIterations
@@ -163,7 +176,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "setMaxIterations"
                 , setMaxIterations_function_type( &::MinimizerOptions::setMaxIterations )
-                , ( bp::arg("max_iterations") ) );
+                , ( bp::arg("max_iterations") )
+                , "    //! set maximum number of allowed iterations" );
         
         }
         { //::MinimizerOptions::setPrecision
@@ -173,7 +187,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "setPrecision"
                 , setPrecision_function_type( &::MinimizerOptions::setPrecision )
-                , ( bp::arg("precision") ) );
+                , ( bp::arg("precision") )
+                , "    //! set minimizer precision" );
         
         }
         { //::MinimizerOptions::setPrintLevel
@@ -183,7 +198,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "setPrintLevel"
                 , setPrintLevel_function_type( &::MinimizerOptions::setPrintLevel )
-                , ( bp::arg("print_level") ) );
+                , ( bp::arg("print_level") )
+                , "    //! set internal print level of the minimizer" );
         
         }
         { //::MinimizerOptions::setTolerance
@@ -193,7 +209,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "setTolerance"
                 , setTolerance_function_type( &::MinimizerOptions::setTolerance )
-                , ( bp::arg("tolerance") ) );
+                , ( bp::arg("tolerance") )
+                , "    //! set minimizer tolerance" );
         
         }
         { //::MinimizerOptions::setValue
@@ -203,7 +220,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "setValue"
                 , setValue_function_type( &::MinimizerOptions::setValue )
-                , ( bp::arg("name"), bp::arg("val") ) );
+                , ( bp::arg("name"), bp::arg("val") )
+                , "" );
         
         }
         { //::MinimizerOptions::setValue
@@ -213,7 +231,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "setValue"
                 , setValue_function_type( &::MinimizerOptions::setValue )
-                , ( bp::arg("name"), bp::arg("val") ) );
+                , ( bp::arg("name"), bp::arg("val") )
+                , "" );
         
         }
         { //::MinimizerOptions::setValue
@@ -223,7 +242,8 @@ void register_MinimizerOptions_class(){
             MinimizerOptions_exposer.def( 
                 "setValue"
                 , setValue_function_type( &::MinimizerOptions::setValue )
-                , ( bp::arg("name"), bp::arg("val") ) );
+                , ( bp::arg("name"), bp::arg("val") )
+                , "" );
         
         }
     }
diff --git a/Fit/PythonAPI/src/PythonModule.cpp b/Fit/PythonAPI/src/PythonModule.cpp
index bcbcdcddc6c..71ae4cd85cf 100644
--- a/Fit/PythonAPI/src/PythonModule.cpp
+++ b/Fit/PythonAPI/src/PythonModule.cpp
@@ -5,37 +5,37 @@ GCC_DIAG_OFF(missing-field-initializers)
 #include "boost/python.hpp"
 GCC_DIAG_ON(unused-parameter)
 GCC_DIAG_ON(missing-field-initializers)
-#include "IntensityFunctionSqrt.pypp.h"
-#include "MinimizerFactory.pypp.h"
-#include "IMinimizer.pypp.h"
-#include "vector_string_t.pypp.h"
-#include "SquaredFunctionSystematicError.pypp.h"
-#include "IntensityNormalizer.pypp.h"
-#include "IIntensityFunction.pypp.h"
-#include "INamed.pypp.h"
+#include "FitObject.pypp.h"
 #include "IntensityFunctionLog.pypp.h"
-#include "FitSuiteParameters.pypp.h"
-#include "AttFitting.pypp.h"
-#include "FitParameter.pypp.h"
-#include "IntensityScaleAndShiftNormalizer.pypp.h"
+#include "IntensityFunctionSqrt.pypp.h"
+#include "FitStrategyDefault.pypp.h"
 #include "IChiSquaredModule.pypp.h"
+#include "AttFitting.pypp.h"
+#include "FitStrategyAdjustParameters.pypp.h"
 #include "FitStrategyAdjustMinimizer.pypp.h"
-#include "IFitStrategy.pypp.h"
-#include "FitStrategyFixParameters.pypp.h"
+#include "ISquaredFunction.pypp.h"
 #include "SquaredFunctionGaussianError.pypp.h"
+#include "IIntensityFunction.pypp.h"
+#include "IntensityScaleAndShiftNormalizer.pypp.h"
+#include "SquaredFunctionMeanSquaredError.pypp.h"
+#include "FitSuiteParameters.pypp.h"
+#include "IMinimizer.pypp.h"
 #include "IIntensityNormalizer.pypp.h"
+#include "FitParameter.pypp.h"
+#include "INamed.pypp.h"
+#include "FitStrategyReleaseParameters.pypp.h"
 #include "FitSuite.pypp.h"
-#include "FitStrategyAdjustParameters.pypp.h"
+#include "IntensityNormalizer.pypp.h"
+#include "FitStrategyFixParameters.pypp.h"
+#include "FitSuiteObjects.pypp.h"
+#include "SquaredFunctionSystematicError.pypp.h"
+#include "MinimizerFactory.pypp.h"
 #include "ChiSquaredModule.pypp.h"
+#include "SquaredFunctionSimError.pypp.h"
 #include "MinimizerOptions.pypp.h"
 #include "SquaredFunctionDefault.pypp.h"
-#include "SquaredFunctionMeanSquaredError.pypp.h"
-#include "ISquaredFunction.pypp.h"
-#include "FitStrategyDefault.pypp.h"
-#include "FitObject.pypp.h"
-#include "FitSuiteObjects.pypp.h"
-#include "SquaredFunctionSimError.pypp.h"
-#include "FitStrategyReleaseParameters.pypp.h"
+#include "vector_string_t.pypp.h"
+#include "IFitStrategy.pypp.h"
 
 BOOST_PYTHON_MODULE(libBornAgainFit){
     boost::python::docstring_options doc_options(true, true, false);
diff --git a/Fit/PythonAPI/src/SquaredFunctionDefault.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionDefault.pypp.cpp
index 8c1744e9312..98c0c9f2987 100644
--- a/Fit/PythonAPI/src/SquaredFunctionDefault.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionDefault.pypp.cpp
@@ -79,7 +79,7 @@ void register_SquaredFunctionDefault_class(){
 
     { //::SquaredFunctionDefault
         typedef bp::class_< SquaredFunctionDefault_wrapper, bp::bases< ISquaredFunction >, std::auto_ptr< SquaredFunctionDefault_wrapper >, boost::noncopyable > SquaredFunctionDefault_exposer_t;
-        SquaredFunctionDefault_exposer_t SquaredFunctionDefault_exposer = SquaredFunctionDefault_exposer_t( "SquaredFunctionDefault", bp::init< >() );
+        SquaredFunctionDefault_exposer_t SquaredFunctionDefault_exposer = SquaredFunctionDefault_exposer_t( "SquaredFunctionDefault", "", bp::init< >("") );
         bp::scope SquaredFunctionDefault_scope( SquaredFunctionDefault_exposer );
         { //::SquaredFunctionDefault::calculateSquaredDifference
         
diff --git a/Fit/PythonAPI/src/SquaredFunctionGaussianError.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionGaussianError.pypp.cpp
index 00d243ae62b..0d1ebbe2ab0 100644
--- a/Fit/PythonAPI/src/SquaredFunctionGaussianError.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionGaussianError.pypp.cpp
@@ -79,7 +79,7 @@ void register_SquaredFunctionGaussianError_class(){
 
     { //::SquaredFunctionGaussianError
         typedef bp::class_< SquaredFunctionGaussianError_wrapper, bp::bases< ISquaredFunction >, std::auto_ptr< SquaredFunctionGaussianError_wrapper >, boost::noncopyable > SquaredFunctionGaussianError_exposer_t;
-        SquaredFunctionGaussianError_exposer_t SquaredFunctionGaussianError_exposer = SquaredFunctionGaussianError_exposer_t( "SquaredFunctionGaussianError", bp::init< bp::optional< double > >(( bp::arg("sigma")=1.00000000000000002081668171172168513294309377670288085938e-2 )) );
+        SquaredFunctionGaussianError_exposer_t SquaredFunctionGaussianError_exposer = SquaredFunctionGaussianError_exposer_t( "SquaredFunctionGaussianError", "", bp::init< bp::optional< double > >(( bp::arg("sigma")=1.00000000000000002081668171172168513294309377670288085938e-2 ), "") );
         bp::scope SquaredFunctionGaussianError_scope( SquaredFunctionGaussianError_exposer );
         { //::SquaredFunctionGaussianError::calculateSquaredDifference
         
diff --git a/Fit/PythonAPI/src/SquaredFunctionMeanSquaredError.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionMeanSquaredError.pypp.cpp
index f69f3c4b875..08d9c757d76 100644
--- a/Fit/PythonAPI/src/SquaredFunctionMeanSquaredError.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionMeanSquaredError.pypp.cpp
@@ -79,7 +79,7 @@ void register_SquaredFunctionMeanSquaredError_class(){
 
     { //::SquaredFunctionMeanSquaredError
         typedef bp::class_< SquaredFunctionMeanSquaredError_wrapper, bp::bases< ISquaredFunction >, std::auto_ptr< SquaredFunctionMeanSquaredError_wrapper >, boost::noncopyable > SquaredFunctionMeanSquaredError_exposer_t;
-        SquaredFunctionMeanSquaredError_exposer_t SquaredFunctionMeanSquaredError_exposer = SquaredFunctionMeanSquaredError_exposer_t( "SquaredFunctionMeanSquaredError", bp::init< >() );
+        SquaredFunctionMeanSquaredError_exposer_t SquaredFunctionMeanSquaredError_exposer = SquaredFunctionMeanSquaredError_exposer_t( "SquaredFunctionMeanSquaredError", "", bp::init< >("") );
         bp::scope SquaredFunctionMeanSquaredError_scope( SquaredFunctionMeanSquaredError_exposer );
         { //::SquaredFunctionMeanSquaredError::calculateSquaredDifference
         
diff --git a/Fit/PythonAPI/src/SquaredFunctionSimError.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionSimError.pypp.cpp
index b029f8ca54b..a329d024822 100644
--- a/Fit/PythonAPI/src/SquaredFunctionSimError.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionSimError.pypp.cpp
@@ -79,7 +79,7 @@ void register_SquaredFunctionSimError_class(){
 
     { //::SquaredFunctionSimError
         typedef bp::class_< SquaredFunctionSimError_wrapper, bp::bases< ISquaredFunction >, std::auto_ptr< SquaredFunctionSimError_wrapper >, boost::noncopyable > SquaredFunctionSimError_exposer_t;
-        SquaredFunctionSimError_exposer_t SquaredFunctionSimError_exposer = SquaredFunctionSimError_exposer_t( "SquaredFunctionSimError", bp::init< >() );
+        SquaredFunctionSimError_exposer_t SquaredFunctionSimError_exposer = SquaredFunctionSimError_exposer_t( "SquaredFunctionSimError", "", bp::init< >("") );
         bp::scope SquaredFunctionSimError_scope( SquaredFunctionSimError_exposer );
         { //::SquaredFunctionSimError::calculateSquaredDifference
         
diff --git a/Fit/PythonAPI/src/SquaredFunctionSystematicError.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionSystematicError.pypp.cpp
index ae4b779f8b2..6f7d58b4fa4 100644
--- a/Fit/PythonAPI/src/SquaredFunctionSystematicError.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionSystematicError.pypp.cpp
@@ -79,7 +79,7 @@ void register_SquaredFunctionSystematicError_class(){
 
     { //::SquaredFunctionSystematicError
         typedef bp::class_< SquaredFunctionSystematicError_wrapper, bp::bases< ISquaredFunction >, std::auto_ptr< SquaredFunctionSystematicError_wrapper >, boost::noncopyable > SquaredFunctionSystematicError_exposer_t;
-        SquaredFunctionSystematicError_exposer_t SquaredFunctionSystematicError_exposer = SquaredFunctionSystematicError_exposer_t( "SquaredFunctionSystematicError", bp::init< bp::optional< double > >(( bp::arg("epsilon")=8.000000000000000166533453693773481063544750213623046875e-2 )) );
+        SquaredFunctionSystematicError_exposer_t SquaredFunctionSystematicError_exposer = SquaredFunctionSystematicError_exposer_t( "SquaredFunctionSystematicError", "", bp::init< bp::optional< double > >(( bp::arg("epsilon")=8.000000000000000166533453693773481063544750213623046875e-2 ), "") );
         bp::scope SquaredFunctionSystematicError_scope( SquaredFunctionSystematicError_exposer );
         { //::SquaredFunctionSystematicError::calculateSquaredDifference
         
diff --git a/Fit/PythonAPI/src/vector_string_t.pypp.cpp b/Fit/PythonAPI/src/vector_string_t.pypp.cpp
index 56cd02ff128..5f95b733d1a 100644
--- a/Fit/PythonAPI/src/vector_string_t.pypp.cpp
+++ b/Fit/PythonAPI/src/vector_string_t.pypp.cpp
@@ -31,7 +31,7 @@ void register_vector_string_t_class(){
 
     { //::std::vector< std::string >
         typedef bp::class_< std::vector< std::string > > vector_string_t_exposer_t;
-        vector_string_t_exposer_t vector_string_t_exposer = vector_string_t_exposer_t( "vector_string_t" );
+        vector_string_t_exposer_t vector_string_t_exposer = vector_string_t_exposer_t( "vector_string_t", "" );
         bp::scope vector_string_t_scope( vector_string_t_exposer );
         vector_string_t_exposer.def( bp::vector_indexing_suite< ::std::vector< std::string >, true >() );
     }
diff --git a/Tests/FunctionalTests/TestPyCore/isgisaxs06.py b/Tests/FunctionalTests/TestPyCore/isgisaxs06.py
index 539c66f5407..d742a08d060 100644
--- a/Tests/FunctionalTests/TestPyCore/isgisaxs06.py
+++ b/Tests/FunctionalTests/TestPyCore/isgisaxs06.py
@@ -158,8 +158,8 @@ def run_simulation_variants():
         single_output.scaleAll(probability)
         outputdata_total += single_output
     outputdata_total.scaleAll(1.0/total_weight)
-    return outputdata_total
-
+dhich java
+sdfdfxport LD_LIBRARYe
 
 # IsGISAXS6 functional test sample builder for varying xi angle
 def build_sample(xi_value):
diff --git a/dev-tools/python-bindings/utils_build.py b/dev-tools/python-bindings/utils_build.py
index 0bf120da6fb..8ed4cb44463 100644
--- a/dev-tools/python-bindings/utils_build.py
+++ b/dev-tools/python-bindings/utils_build.py
@@ -15,6 +15,8 @@ from pyplusplus.function_transformers import transformers
 from pyplusplus.file_writers.balanced_files import balanced_files_t
 from pyplusplus.file_writers.multiple_files import multiple_files_t
 
+import utils_docstring
+
 balanced_files_t.HEADER_EXT = '.h'
 balanced_files_t.SOURCE_EXT = '.cpp'
 multiple_files_t.HEADER_EXT = '.pypp.h'
@@ -30,6 +32,16 @@ if( !this->m_pyobj) {
 """
 
 
+extractor = utils_docstring.DoxygenDocExtractor()
+
+def my_doc_extractor( decl ):
+    print "-----------"
+    print decl.name
+    print decl.location.file_name + str(decl.location.line)
+    print "-----------"
+    print extractor(decl)
+    return extractor(decl)
+
 def ExcludeConstructorsArgPtr(mb):
     '''Excludes constructors which have pointers in argument list.'''
     for cl in mb.classes():
@@ -306,8 +318,7 @@ def MakePythonAPI(prj):
     )
 
     # generate output
-
-    mb.build_code_creator( module_name="PythonInterface" )
+    mb.build_code_creator( module_name="PythonInterface", doc_extractor=my_doc_extractor)
     mb.code_creator.license = prj.license
 
     mb.code_creator.user_defined_directories.append(os.path.abspath('./'))
diff --git a/dev-tools/python-bindings/utils_docstring.py b/dev-tools/python-bindings/utils_docstring.py
new file mode 100644
index 00000000000..57f9d9866af
--- /dev/null
+++ b/dev-tools/python-bindings/utils_docstring.py
@@ -0,0 +1,240 @@
+"""
+Fixed and improved version based on "extracting from C++ doxygen documented file Author G.D." and py++ code.
+
+Distributed under the Boost Software License, Version 1.0. (See
+accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+"""
+
+
+class DoxygenDocExtractor:
+    """
+    Extracts Doxygen styled documentation from source or generates it from description.
+    """
+    def __init__(self):
+        #for caching source
+        self.file_name = None
+        self.source = None
+
+
+    def __call__(self, declaration):
+        try:
+            if self.file_name != declaration.location.file_name:
+                self.file_name = declaration.location.file_name
+                self.source = open(declaration.location.file_name).readlines()
+
+            find_block_end = False
+            doc_lines = []
+            for lcount in xrange(declaration.location.line-2, -1, -1):
+                line = self.source[lcount]
+                if not find_block_end:
+                    try:
+                        print line.lstrip()[:3]
+                        if line.lstrip()[:3] == "//!":
+                            find_block_end = True
+                    except:
+                        pass
+                if find_block_end:
+                    try:
+                        if line.lstrip()[:3] != "//!":
+                            find_block_end = False
+                    except:
+                        pass
+                print "xxx1", line
+                print "xxx1.2", self.is_code(line)
+                #final_str = self.clear_str(line)
+                final_str = line
+                print "     xxx2", final_str
+
+                if not find_block_end and self.is_code(line):
+                    break
+
+                if final_str:
+                    doc_lines.insert(0, final_str)
+        except:
+            pass
+        finally:
+            if doc_lines:
+                final_doc_lines = [ line.replace("\n","\\n") for line in doc_lines[:-1] ]
+                final_doc_lines.append(doc_lines[-1].replace("\n",""))
+                return '\"' + ''.join(final_doc_lines) + '\"'
+            else:
+                return '\"\"'
+
+
+    def clear_str(self, tmp_str):
+        """
+        Replace */! by space and \brief, @fn, \param, etc
+        """
+        print "aaa 2.1"
+        tmp_str = reduce(clean, [tmp_str, '/','*','!',"\\brief","@brief","\\fn","@fn","\\ref","@ref", "\"", "\'", "\\c"])
+        print "aaa 2.2", tmp_str
+        return tmp_str
+
+        #commands list taken form : http://www.stack.nl/~dimitri/doxygen/commands.html
+        replacement_list = [
+#			"a",
+            "addindex",
+            "addtogroup",
+            "anchor",
+            "arg",
+            "attention",
+            "author",
+#			"b",
+#			"brief",
+            "bug",
+#		    "c",
+            "callgraph",
+            "callergraph",
+            "category",
+            "class",
+            ("code","[Code]"),
+            "cond",
+            "copybrief",
+            "copydetails",
+            "copydoc",
+            "date",
+            "def",
+            "defgroup",
+            "deprecated",
+            "details",
+            "dir",
+            "dontinclude",
+            ("dot","[Dot]"),
+            "dotfile",
+            "e",
+            "else",
+            "elseif",
+            "em",
+            ("endcode","[/Code]"),
+            "endcond",
+            ("enddot","[/Dot]"),
+            "endhtmlonly",
+            "endif",
+            "endlatexonly",
+            "endlink",
+            "endmanonly",
+            "endmsc",
+            "endverbatim",
+            "endxmlonly",
+            "enum",
+            "example",
+            "exception",
+            "extends",
+            "f$",
+            "f[",
+            "f]",
+            "f{",
+            "f}",
+            "file",
+#			"fn",
+            "headerfile",
+            "hideinitializer",
+            "htmlinclude",
+            "htmlonly",
+            "if",
+            "ifnot",
+            "image",
+            "implements",
+            "include",
+            "includelineno",
+            "ingroup",
+            "internal",
+            "invariant",
+            "interface",
+            "latexonly",
+            "li",
+            "line",
+            "link",
+            "mainpage",
+            "manonly",
+            "memberof",
+            "msc",
+#			"n",
+            "name",
+            "namespace",
+            "nosubgrouping",
+            "note",
+            "overload",
+#			"p",
+            "package",
+            "page",
+            "par",
+            "paragraph",
+            "param",
+            "post",
+            "pre",
+#			"private (PHP only)",
+#			"privatesection (PHP only)",
+            "property",
+#			"protected (PHP only)",
+#			"protectedsection (PHP only)",
+            "protocol",
+#			"public (PHP only)",
+#			"publicsection (PHP only)",
+#			"ref",
+            "relates",
+            "relatesalso",
+            "remarks",
+            "return",
+            "retval",
+            "sa",
+            "section",
+            "see",
+            "showinitializer",
+            "since",
+            "skip",
+            "skipline",
+            "struct",
+            "subpage",
+            "subsection",
+            "subsubsection",
+            "test",
+            "throw",
+            ("todo","TODO"),
+            "tparam",
+            "typedef",
+            "union",
+            "until",
+            "var",
+            "verbatim",
+            "verbinclude",
+            "version",
+            "warning",
+            "weakgroup",
+            "xmlonly",
+            "xrefitem",
+#			"$",
+#			"@",
+#			"\",
+#			"&",
+#			"~",
+#			"<",
+#			">",
+#			"#",
+#			"%",
+			]
+
+        for command in replacement_list:
+            try:
+                old,new = command
+            except ValueError:
+                old = command
+                new = command.capitalize()+":"
+            tmp_str = clean(tmp_str, "@"+old, new)
+            tmp_str = clean(tmp_str, "\\"+old, new)
+
+        return tmp_str.lstrip()
+    #clean_str()
+
+    def is_code(self, tmp_str):
+        """
+        Detects if tmp_str is code or not
+        """
+        try:
+            beg = tmp_str.lstrip()[:3]
+            return beg != "//!"
+        except:
+            pass
+        return False
+
-- 
GitLab