diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygen_core.i
index b1bfe7ad997ba16d66745455339ef1d577c795e4..257fa3171df01b16209f7769478fb1b67b50479a 100644
--- a/auto/Wrap/doxygen_core.i
+++ b/auto/Wrap/doxygen_core.i
@@ -1252,15 +1252,6 @@ C++ includes: SimpleUnitConverters.h
 %feature("docstring")  DepthProbeConverter::clone "DepthProbeConverter * DepthProbeConverter::clone() const override
 ";
 
-%feature("docstring")  DepthProbeConverter::calculateMin "double DepthProbeConverter::calculateMin(size_t i_axis, AxesUnits units_type) const override
-";
-
-%feature("docstring")  DepthProbeConverter::calculateMax "double DepthProbeConverter::calculateMax(size_t i_axis, AxesUnits units_type) const override
-";
-
-%feature("docstring")  DepthProbeConverter::axisName "std::string DepthProbeConverter::axisName(size_t i_axis, AxesUnits units_type=AxesUnits::DEFAULT) const override
-";
-
 %feature("docstring")  DepthProbeConverter::availableUnits "std::vector< AxesUnits > DepthProbeConverter::availableUnits() const override
 
 Returns the list of all available units. 
@@ -1269,9 +1260,6 @@ Returns the list of all available units.
 %feature("docstring")  DepthProbeConverter::defaultUnits "AxesUnits DepthProbeConverter::defaultUnits() const override
 ";
 
-%feature("docstring")  DepthProbeConverter::createConvertedAxis "std::unique_ptr< IAxis > DepthProbeConverter::createConvertedAxis(size_t i_axis, AxesUnits units) const override
-";
-
 
 // File: classDepthProbeElement.xml
 %feature("docstring") DepthProbeElement "";
@@ -7275,6 +7263,9 @@ Returns the z-coordinate of the lowest point in this shape after a given rotatio
 Returns the z-coordinate of the lowest point in this shape after a given rotation. 
 ";
 
+%feature("docstring")  IFormFactorDecorator::getFormFactor "const IFormFactor* IFormFactorDecorator::getFormFactor() const 
+";
+
 
 // File: classIFresnelMap.xml
 %feature("docstring") IFresnelMap "
@@ -15573,6 +15564,9 @@ C++ includes: ZLimits.h
 // File: namespace_0D288.xml
 
 
+// File: namespace_0D292.xml
+
+
 // File: namespace_0D304.xml
 
 
@@ -15723,6 +15717,9 @@ vector<vector<double>>
 %feature("docstring")  AxisNames::InitSpecAxis "std::map< AxesUnits, std::string > AxisNames::InitSpecAxis()
 ";
 
+%feature("docstring")  AxisNames::InitSampleDepthAxis "std::map< AxesUnits, std::string > AxisNames::InitSampleDepthAxis()
+";
+
 
 // File: namespaceboost_1_1geometry.xml
 
diff --git a/auto/Wrap/doxygen_fit.i b/auto/Wrap/doxygen_fit.i
index 5f693a90337573ee1466f19563e3ae0480013620..f36f9ff318acebd2873ab56cb1acc2ca80d5c160 100644
--- a/auto/Wrap/doxygen_fit.i
+++ b/auto/Wrap/doxygen_fit.i
@@ -370,17 +370,12 @@ Sets random seed.
 %feature("docstring")  GeneticMinimizer::randomSeed "int GeneticMinimizer::randomSeed() const 
 ";
 
-%feature("docstring")  GeneticMinimizer::setParameter "void GeneticMinimizer::setParameter(size_t index, const IFitParameter *par)
-
-Sets minimizer parameter. Overload is required to check that parameter is properly limited. 
-";
-
-%feature("docstring")  GeneticMinimizer::statusToString "std::string GeneticMinimizer::statusToString() const
+%feature("docstring")  GeneticMinimizer::statusToString "std::string GeneticMinimizer::statusToString() const override
 
 Returns string representation of current minimizer status. 
 ";
 
-%feature("docstring")  GeneticMinimizer::statusMap "std::map< std::string, std::string > GeneticMinimizer::statusMap() const
+%feature("docstring")  GeneticMinimizer::statusMap "std::map< std::string, std::string > GeneticMinimizer::statusMap() const override
 
 Returns map of string representing different minimizer statuses. 
 ";
@@ -424,12 +419,12 @@ Sets maximum number of iterations. This is an internal minimizer setting which h
 %feature("docstring")  GSLLevenbergMarquardtMinimizer::maxIterations "int GSLLevenbergMarquardtMinimizer::maxIterations() const 
 ";
 
-%feature("docstring")  GSLLevenbergMarquardtMinimizer::statusToString "std::string GSLLevenbergMarquardtMinimizer::statusToString() const
+%feature("docstring")  GSLLevenbergMarquardtMinimizer::statusToString "std::string GSLLevenbergMarquardtMinimizer::statusToString() const override
 
 Returns string representation of current minimizer status. 
 ";
 
-%feature("docstring")  GSLLevenbergMarquardtMinimizer::statusMap "std::map< std::string, std::string > GSLLevenbergMarquardtMinimizer::statusMap() const
+%feature("docstring")  GSLLevenbergMarquardtMinimizer::statusMap "std::map< std::string, std::string > GSLLevenbergMarquardtMinimizer::statusMap() const override
 
 Returns map of string representing different minimizer statuses. 
 ";
@@ -465,7 +460,7 @@ Sets maximum number of iterations. This is an internal minimizer setting which h
 %feature("docstring")  GSLMultiMinimizer::maxIterations "int GSLMultiMinimizer::maxIterations() const 
 ";
 
-%feature("docstring")  GSLMultiMinimizer::statusToString "std::string GSLMultiMinimizer::statusToString() const
+%feature("docstring")  GSLMultiMinimizer::statusToString "std::string GSLMultiMinimizer::statusToString() const override
 
 Returns string representation of current minimizer status. 
 ";
@@ -555,6 +550,27 @@ C++ includes: IFitParameter.h
 ";
 
 
+// File: classFit_1_1IFunctionAdapter.xml
+%feature("docstring") Fit::IFunctionAdapter "
+
+Base class for objective function adapters, which converts user functions to minimize into the function which minimization machinery expects.
+
+C++ includes: IFunctionAdapter.h
+";
+
+%feature("docstring")  Fit::IFunctionAdapter::IFunctionAdapter "IFunctionAdapter::IFunctionAdapter()
+";
+
+%feature("docstring")  Fit::IFunctionAdapter::~IFunctionAdapter "IFunctionAdapter::~IFunctionAdapter()
+";
+
+%feature("docstring")  Fit::IFunctionAdapter::numberOfCalls "int IFunctionAdapter::numberOfCalls() const 
+";
+
+%feature("docstring")  Fit::IFunctionAdapter::numberOfGradientCalls "int IFunctionAdapter::numberOfGradientCalls() const 
+";
+
+
 // File: classIMinimizer.xml
 %feature("docstring") IMinimizer "
 
@@ -587,6 +603,12 @@ return name of the minimization algorithm
 run minimization 
 ";
 
+%feature("docstring")  IMinimizer::minimize_scalar "Fit::MinimizerResult IMinimizer::minimize_scalar(fcn_scalar_t, Fit::Parameters)
+";
+
+%feature("docstring")  IMinimizer::minimize_residual "Fit::MinimizerResult IMinimizer::minimize_residual(fcn_residual_t, Fit::Parameters)
+";
+
 %feature("docstring")  IMinimizer::clear "virtual void IMinimizer::clear()
 
 clear resources (parameters) for consecutives minimizations 
@@ -616,6 +638,9 @@ Returns minimum function value.
 Propagates results of minimization to fit parameter set. 
 ";
 
+%feature("docstring")  IMinimizer::propagateResults "void IMinimizer::propagateResults(Fit::Parameters &parameters)
+";
+
 %feature("docstring")  IMinimizer::setOptions "void IMinimizer::setOptions(const std::string &options)
 
 Sets option string to the minimizer. 
@@ -643,6 +668,59 @@ C++ includes: MinimizerInfo.h
 ";
 
 
+// File: classFit_1_1Kernel.xml
+%feature("docstring") Fit::Kernel "
+
+A main class to run fitting.
+
+C++ includes: Kernel.h
+";
+
+%feature("docstring")  Fit::Kernel::Kernel "Kernel::Kernel()
+";
+
+%feature("docstring")  Fit::Kernel::~Kernel "Kernel::~Kernel()
+";
+
+%feature("docstring")  Fit::Kernel::setMinimizer "void Kernel::setMinimizer(const std::string &minimizerName, const std::string &algorithmName=\"\", const std::string &options=\"\")
+";
+
+%feature("docstring")  Fit::Kernel::minimize "MinimizerResult Kernel::minimize(fcn_scalar_t fcn, const Parameters &parameters)
+";
+
+%feature("docstring")  Fit::Kernel::minimize "MinimizerResult Kernel::minimize(fcn_residual_t fcn, const Parameters &parameters)
+";
+
+
+// File: classFit_1_1Minimizer.xml
+%feature("docstring") Fit::Minimizer "
+
+A main class to run fitting.
+
+C++ includes: Minimizer.h
+";
+
+%feature("docstring")  Fit::Minimizer::Minimizer "Minimizer::Minimizer()
+";
+
+%feature("docstring")  Fit::Minimizer::~Minimizer "Minimizer::~Minimizer()
+";
+
+%feature("docstring")  Fit::Minimizer::setMinimizer "void Minimizer::setMinimizer(const std::string &minimizerName, const std::string &algorithmName=\"\", const std::string &options=\"\")
+";
+
+%feature("docstring")  Fit::Minimizer::minimize "MinimizerResult Minimizer::minimize(fcn_scalar_t fcn, const Parameters &parameters)
+";
+
+%feature("docstring")  Fit::Minimizer::minimize "MinimizerResult Minimizer::minimize(fcn_residual_t fcn, const Parameters &parameters)
+";
+
+%feature("docstring")  Fit::Minimizer::minimize "MinimizerResult Minimizer::minimize(PyCallback &callback, const Parameters &parameters)
+
+Finds minimum of user objective function (to be called from Python). 
+";
+
+
 // File: classMinimizerCatalogue.xml
 %feature("docstring") MinimizerCatalogue "
 
@@ -739,6 +817,49 @@ Set options from their string representation.
 ";
 
 
+// File: classFit_1_1MinimizerResult.xml
+%feature("docstring") Fit::MinimizerResult "
+
+Result of minimization round.
+
+C++ includes: MinimizerResult.h
+";
+
+%feature("docstring")  Fit::MinimizerResult::MinimizerResult "MinimizerResult::MinimizerResult()
+";
+
+%feature("docstring")  Fit::MinimizerResult::setParameters "void MinimizerResult::setParameters(const Parameters &parameters)
+";
+
+%feature("docstring")  Fit::MinimizerResult::parameters "Parameters MinimizerResult::parameters() const 
+";
+
+%feature("docstring")  Fit::MinimizerResult::setMinValue "void MinimizerResult::setMinValue(double value)
+";
+
+%feature("docstring")  Fit::MinimizerResult::minValue "double MinimizerResult::minValue() const
+
+Minimum value of objective function found by minimizer. 
+";
+
+%feature("docstring")  Fit::MinimizerResult::toString "std::string MinimizerResult::toString() const
+
+Returns multi-line string representing minimization results. 
+";
+
+%feature("docstring")  Fit::MinimizerResult::setReport "void MinimizerResult::setReport(const std::string &value)
+";
+
+%feature("docstring")  Fit::MinimizerResult::setDuration "void MinimizerResult::setDuration(double value)
+";
+
+%feature("docstring")  Fit::MinimizerResult::setNumberOfCalls "void MinimizerResult::setNumberOfCalls(int value)
+";
+
+%feature("docstring")  Fit::MinimizerResult::setNumberOfGradientCalls "void MinimizerResult::setNumberOfGradientCalls(int value)
+";
+
+
 // File: classMinimizerResultsHelper.xml
 %feature("docstring") MinimizerResultsHelper "
 
@@ -813,12 +934,12 @@ Sets maximum number of objective function calls.
 %feature("docstring")  Minuit2Minimizer::maxFunctionCalls "int Minuit2Minimizer::maxFunctionCalls() const 
 ";
 
-%feature("docstring")  Minuit2Minimizer::statusToString "std::string Minuit2Minimizer::statusToString() const
+%feature("docstring")  Minuit2Minimizer::statusToString "std::string Minuit2Minimizer::statusToString() const override
 
 Returns string representation of current minimizer status. 
 ";
 
-%feature("docstring")  Minuit2Minimizer::statusMap "std::map< std::string, std::string > Minuit2Minimizer::statusMap() const
+%feature("docstring")  Minuit2Minimizer::statusMap "std::map< std::string, std::string > Minuit2Minimizer::statusMap() const override
 
 Returns map of string representing different minimizer statuses. 
 ";
@@ -903,6 +1024,33 @@ Evaluates residual and gradients of the function for given vector of function pa
 ";
 
 
+// File: classFit_1_1ObjectiveFunctionAdapter.xml
+%feature("docstring") Fit::ObjectiveFunctionAdapter "
+
+Converts user objective function to function ROOT expects. Handles time of life of function objects.
+
+C++ includes: ObjectiveFunctionAdapter.h
+";
+
+%feature("docstring")  Fit::ObjectiveFunctionAdapter::ObjectiveFunctionAdapter "ObjectiveFunctionAdapter::ObjectiveFunctionAdapter()
+";
+
+%feature("docstring")  Fit::ObjectiveFunctionAdapter::~ObjectiveFunctionAdapter "ObjectiveFunctionAdapter::~ObjectiveFunctionAdapter()
+";
+
+%feature("docstring")  Fit::ObjectiveFunctionAdapter::rootObjectiveFunction "const RootObjectiveFunction * ObjectiveFunctionAdapter::rootObjectiveFunction(fcn_scalar_t fcn, const Parameters &parameters)
+";
+
+%feature("docstring")  Fit::ObjectiveFunctionAdapter::rootResidualFunction "const RootResidualFunction * ObjectiveFunctionAdapter::rootResidualFunction(fcn_residual_t fcn, const Parameters &parameters)
+";
+
+%feature("docstring")  Fit::ObjectiveFunctionAdapter::numberOfCalls "int ObjectiveFunctionAdapter::numberOfCalls() const 
+";
+
+%feature("docstring")  Fit::ObjectiveFunctionAdapter::numberOfGradientCalls "int ObjectiveFunctionAdapter::numberOfGradientCalls() const 
+";
+
+
 // File: classOptionContainer.xml
 %feature("docstring") OptionContainer "
 
@@ -952,6 +1100,148 @@ Sets the value of option. Option should hold same value type already.
 ";
 
 
+// File: classFit_1_1Parameter.xml
+%feature("docstring") Fit::Parameter "
+
+A fittable parameter with value, error, step, and limits.
+
+C++ includes: Parameter.h
+";
+
+%feature("docstring")  Fit::Parameter::Parameter "Parameter::Parameter()
+";
+
+%feature("docstring")  Fit::Parameter::Parameter "Parameter::Parameter(const std::string &name, double value, const AttLimits &limits=AttLimits::limitless(), double step=0.0)
+
+Fit parameter constructor.
+
+Parameters:
+-----------
+
+name: 
+unique name of fit parameters
+
+value: 
+starting value of fit parameter
+
+limits: 
+fit parameter limits
+
+step: 
+initial step of fit parameter during the minimization, will be calculated automatically, if zero. 
+";
+
+%feature("docstring")  Fit::Parameter::name "std::string Parameter::name() const 
+";
+
+%feature("docstring")  Fit::Parameter::startValue "double Parameter::startValue() const 
+";
+
+%feature("docstring")  Fit::Parameter::limits "AttLimits Parameter::limits() const 
+";
+
+%feature("docstring")  Fit::Parameter::value "double Parameter::value() const 
+";
+
+%feature("docstring")  Fit::Parameter::setValue "void Parameter::setValue(double value)
+";
+
+%feature("docstring")  Fit::Parameter::step "double Parameter::step() const 
+";
+
+%feature("docstring")  Fit::Parameter::error "double Parameter::error() const 
+";
+
+%feature("docstring")  Fit::Parameter::setError "void Parameter::setError(double value)
+";
+
+
+// File: classFit_1_1Parameters.xml
+%feature("docstring") Fit::Parameters "
+
+A collection of fit parameters.
+
+C++ includes: Parameters.h
+";
+
+%feature("docstring")  Fit::Parameters::Parameters "Fit::Parameters::Parameters()=default
+";
+
+%feature("docstring")  Fit::Parameters::add "void Parameters::add(const Parameter &par)
+";
+
+%feature("docstring")  Fit::Parameters::begin "Parameters::const_iterator Parameters::begin() const 
+";
+
+%feature("docstring")  Fit::Parameters::end "Parameters::const_iterator Parameters::end() const 
+";
+
+%feature("docstring")  Fit::Parameters::begin "Parameters::iterator Parameters::begin()
+";
+
+%feature("docstring")  Fit::Parameters::end "Parameters::iterator Parameters::end()
+";
+
+%feature("docstring")  Fit::Parameters::size "size_t Parameters::size() const 
+";
+
+%feature("docstring")  Fit::Parameters::values "std::vector< double > Parameters::values() const 
+";
+
+%feature("docstring")  Fit::Parameters::setValues "void Parameters::setValues(const std::vector< double > &values)
+";
+
+%feature("docstring")  Fit::Parameters::errors "std::vector< double > Parameters::errors() const 
+";
+
+%feature("docstring")  Fit::Parameters::setErrors "void Parameters::setErrors(const std::vector< double > &errors)
+";
+
+
+// File: classPyCallback.xml
+%feature("docstring") PyCallback "
+
+Base class to wrap Python callable and pass it to C++. Used in swig interface file, intended to be overloaded from Python.
+
+C++ includes: PyCallback.h
+";
+
+%feature("docstring")  PyCallback::PyCallback "PyCallback::PyCallback(CallbackType callback_type=SCALAR)
+";
+
+%feature("docstring")  PyCallback::~PyCallback "PyCallback::~PyCallback()
+";
+
+%feature("docstring")  PyCallback::callback_type "PyCallback::CallbackType PyCallback::callback_type() const 
+";
+
+%feature("docstring")  PyCallback::call_scalar "double PyCallback::call_scalar(Fit::Parameters pars)
+
+Call Python callable and returns its result. Intended to be overloaded in Python.
+
+Parameters:
+-----------
+
+pars: 
+Fit parameters object (intentionally passed by value).
+
+value of objective function. 
+";
+
+%feature("docstring")  PyCallback::call_residuals "std::vector< double > PyCallback::call_residuals(Fit::Parameters)
+
+Call Python callable and returns its result. Intended to be overloaded in Python.
+
+Parameters:
+-----------
+
+pars: 
+Fit parameters object (intentionally passed by value).
+
+vector of residuals 
+";
+
+
 // File: classRealLimits.xml
 %feature("docstring") RealLimits "
 
@@ -1045,6 +1335,21 @@ returns true if proposed value is in limits range
 ";
 
 
+// File: classFit_1_1ResidualFunctionAdapter.xml
+%feature("docstring") Fit::ResidualFunctionAdapter "
+
+Provides  RootResidualFunction which will be minimizer by ROOT. Converts ROOT calls to the call of fcn_residual_t.
+
+C++ includes: ResidualFunctionAdapter.h
+";
+
+%feature("docstring")  Fit::ResidualFunctionAdapter::ResidualFunctionAdapter "ResidualFunctionAdapter::ResidualFunctionAdapter(fcn_residual_t func, const Parameters &parameters)
+";
+
+%feature("docstring")  Fit::ResidualFunctionAdapter::rootResidualFunction "const RootResidualFunction * ResidualFunctionAdapter::rootResidualFunction()
+";
+
+
 // File: classRootGradientFunction.xml
 %feature("docstring") RootGradientFunction "
 
@@ -1059,7 +1364,7 @@ C++ includes: RootMinimizerFunctions.h
 %feature("docstring")  RootGradientFunction::Type "Type_t RootGradientFunction::Type() const 
 ";
 
-%feature("docstring")  RootGradientFunction::Clone "BA_ROOT::Math::IMultiGenFunction* RootGradientFunction::Clone() const 
+%feature("docstring")  RootGradientFunction::Clone "ROOT::Math::IMultiGenFunction* RootGradientFunction::Clone() const 
 ";
 
 %feature("docstring")  RootGradientFunction::DataElement "double RootGradientFunction::DataElement(const double *pars, unsigned int i_data, double *gradient=0) const
@@ -1084,6 +1389,12 @@ C++ includes: RootMinimizerAdapter.h
 run minimization 
 ";
 
+%feature("docstring")  RootMinimizerAdapter::minimize_scalar "MinimizerResult RootMinimizerAdapter::minimize_scalar(fcn_scalar_t fcn, Fit::Parameters parameters) override
+";
+
+%feature("docstring")  RootMinimizerAdapter::minimize_residual "MinimizerResult RootMinimizerAdapter::minimize_residual(fcn_residual_t fcn, Fit::Parameters parameters) override
+";
+
 %feature("docstring")  RootMinimizerAdapter::minimizerName "std::string RootMinimizerAdapter::minimizerName() const overridefinal
 
 Returns name of the minimizer. 
@@ -1099,6 +1410,9 @@ Returns name of the minimization algorithm.
 Sets internal minimizer parameters using external parameter list. 
 ";
 
+%feature("docstring")  RootMinimizerAdapter::setParameters "void RootMinimizerAdapter::setParameters(const Fit::Parameters &parameters)
+";
+
 %feature("docstring")  RootMinimizerAdapter::setObjectiveFunction "void RootMinimizerAdapter::setObjectiveFunction(objective_function_t func) overridefinal
 ";
 
@@ -1139,6 +1453,9 @@ Returns map of string representing different minimizer statuses.
 Propagates results of minimization to fit parameter set. 
 ";
 
+%feature("docstring")  RootMinimizerAdapter::propagateResults "void RootMinimizerAdapter::propagateResults(Fit::Parameters &parameters) override
+";
+
 %feature("docstring")  RootMinimizerAdapter::setOptions "void RootMinimizerAdapter::setOptions(const std::string &optionString) overridefinal
 
 Sets option string to the minimizer. 
@@ -1194,6 +1511,76 @@ Creates and returns gradient function suitable for ROOT minimizers.
 ";
 
 
+// File: classRootResidualFunction.xml
+%feature("docstring") RootResidualFunction "
+
+Minimizer function with access to single data element residuals, required by Fumili2 and GSLMultiMin minimizers.
+
+C++ includes: RootResidualFunction.h
+";
+
+%feature("docstring")  RootResidualFunction::RootResidualFunction "RootResidualFunction::RootResidualFunction(objective_function_t objective_fun, gradient_function_t gradient_fun, size_t npars, size_t ndatasize)
+
+Constructs  RootResidualFunction
+
+Parameters:
+-----------
+
+fun_gradient: 
+user function to call
+
+npars: 
+number of fit parameters
+
+ndatasize: 
+number of residual elements in dataset 
+";
+
+%feature("docstring")  RootResidualFunction::Type "RootResidualFunction::Type_t RootResidualFunction::Type() const override
+";
+
+%feature("docstring")  RootResidualFunction::Clone "ROOT::Math::IMultiGenFunction * RootResidualFunction::Clone() const override
+";
+
+%feature("docstring")  RootResidualFunction::DataElement "double RootResidualFunction::DataElement(const double *pars, unsigned int index, double *gradients=0) const override
+
+Evaluation of single data element residual. Will be called by ROOT minimizer.
+
+Returns residual value for given data element index. Transform call of ancient pointer based function to safer gradient_function_t.
+
+Parameters:
+-----------
+
+pars: 
+array of fit parameter values from the minimizer
+
+index: 
+index of residual element
+
+gradients: 
+if not zero, then array where we have to put gradients
+
+value of residual for given data element index 
+";
+
+
+// File: classFit_1_1ScalarFunctionAdapter.xml
+%feature("docstring") Fit::ScalarFunctionAdapter "
+
+Converts user objective function to chi2 like function which ROOT expects.
+
+More precisely, ROOT call to std::function<double(const double*)> will cause the call of user function std::function<double(std::vector<double>)>, where function input parameters will be current values fit parameters.
+
+C++ includes: ScalarFunctionAdapter.h
+";
+
+%feature("docstring")  Fit::ScalarFunctionAdapter::ScalarFunctionAdapter "ScalarFunctionAdapter::ScalarFunctionAdapter(fcn_scalar_t func, const Parameters &parameters)
+";
+
+%feature("docstring")  Fit::ScalarFunctionAdapter::rootObjectiveFunction "const RootObjectiveFunction * ScalarFunctionAdapter::rootObjectiveFunction()
+";
+
+
 // File: classSimAnMinimizer.xml
 %feature("docstring") SimAnMinimizer "
 
@@ -1272,12 +1659,12 @@ Sets Boltzmann distribution parameter: minimal temperature.
 %feature("docstring")  SimAnMinimizer::boltzmannMinTemp "double SimAnMinimizer::boltzmannMinTemp() const 
 ";
 
-%feature("docstring")  SimAnMinimizer::statusMap "std::map< std::string, std::string > SimAnMinimizer::statusMap() const
+%feature("docstring")  SimAnMinimizer::statusMap "std::map< std::string, std::string > SimAnMinimizer::statusMap() const override
 
 Returns map of string representing different minimizer statuses. 
 ";
 
-%feature("docstring")  SimAnMinimizer::isGradientBasedAgorithm "virtual bool SimAnMinimizer::isGradientBasedAgorithm()
+%feature("docstring")  SimAnMinimizer::isGradientBasedAgorithm "bool SimAnMinimizer::isGradientBasedAgorithm() override
 ";
 
 
@@ -1326,6 +1713,9 @@ Sets internal minimizer parameters using external parameter list.
 Propagates results of minimization to fit parameter set. 
 ";
 
+%feature("docstring")  TestMinimizer::minimize_scalar "MinimizerResult TestMinimizer::minimize_scalar(fcn_scalar_t fcn, Fit::Parameters parameters) override
+";
+
 
 // File: classTimeInterval.xml
 %feature("docstring") TimeInterval "";
@@ -1358,31 +1748,34 @@ returns run time in sec.msec
 // File: namespace_0D0.xml
 
 
-// File: namespace_0D19.xml
+// File: namespace_0D20.xml
+
+
+// File: namespace_0D28.xml
 
 
 // File: namespace_0D34.xml
 
 
-// File: namespace_0D36.xml
+// File: namespace_0D39.xml
 
 
-// File: namespace_0D40.xml
+// File: namespace_0D54.xml
 
 
-// File: namespace_0D42.xml
+// File: namespace_0D56.xml
 
 
-// File: namespaceAlgorithmNames.xml
+// File: namespace_0D60.xml
 
 
-// File: namespaceBA__ROOT.xml
+// File: namespace_0D62.xml
 
 
-// File: namespaceBA__ROOT_1_1Math.xml
+// File: namespaceAlgorithmNames.xml
 
 
-// File: namespaceBA__ROOT_1_1Minuit2.xml
+// File: namespaceFit.xml
 
 
 // File: namespaceMinimizerNames.xml
@@ -1412,6 +1805,15 @@ Returns horizontal line of 80 characters length with section name in it.
 // File: namespaceOptionNames.xml
 
 
+// File: namespaceROOT.xml
+
+
+// File: namespaceROOT_1_1Math.xml
+
+
+// File: namespaceROOT_1_1Minuit2.xml
+
+
 // File: namespaceStringUtils.xml
 %feature("docstring")  StringUtils::matchesPattern "bool StringUtils::matchesPattern(const std::string &text, const std::string &wildcardPattern)
 
@@ -1510,6 +1912,66 @@ Returns new string which is lower case of text.
 // File: TestMinimizer_8h.xml
 
 
+// File: IFunctionAdapter_8cpp.xml
+
+
+// File: IFunctionAdapter_8h.xml
+
+
+// File: Kernel_8cpp.xml
+
+
+// File: Kernel_8h.xml
+
+
+// File: Minimizer_8cpp.xml
+
+
+// File: Minimizer_8h.xml
+
+
+// File: MinimizerResult_8cpp.xml
+
+
+// File: MinimizerResult_8h.xml
+
+
+// File: ObjectiveFunctionAdapter_8cpp.xml
+
+
+// File: ObjectiveFunctionAdapter_8h.xml
+
+
+// File: Parameter_8cpp.xml
+
+
+// File: Parameter_8h.xml
+
+
+// File: Parameters_8cpp.xml
+
+
+// File: Parameters_8h.xml
+
+
+// File: PyCallback_8cpp.xml
+
+
+// File: PyCallback_8h.xml
+
+
+// File: ResidualFunctionAdapter_8cpp.xml
+
+
+// File: ResidualFunctionAdapter_8h.xml
+
+
+// File: ScalarFunctionAdapter_8cpp.xml
+
+
+// File: ScalarFunctionAdapter_8h.xml
+
+
 // File: FitOptions_8h.xml
 
 
@@ -1603,6 +2065,12 @@ Returns new string which is lower case of text.
 // File: RootObjectiveFuncAdapter_8h.xml
 
 
+// File: RootResidualFunction_8cpp.xml
+
+
+// File: RootResidualFunction_8h.xml
+
+
 // File: SimAnMinimizer_8cpp.xml
 
 
@@ -1639,6 +2107,9 @@ Returns new string which is lower case of text.
 // File: dir_f668eca225435178269b3663d40ba22e.xml
 
 
+// File: dir_8609ab863c9692d0c6e768a2f88f7f85.xml
+
+
 // File: dir_154d691091a050434159f2fb00439691.xml
 
 
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index d59028ce4a4f9e415b9bdc586b2bacb1e44ef1da..369feaaa2765faec10c7266085493897babc5048 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -11777,6 +11777,16 @@ class IFormFactorDecorator(IFormFactor):
         """
         return _libBornAgainCore.IFormFactorDecorator_topZ(self, rotation)
 
+
+    def getFormFactor(self):
+        """
+        getFormFactor(IFormFactorDecorator self) -> IFormFactor
+
+        const IFormFactor* IFormFactorDecorator::getFormFactor() const 
+
+        """
+        return _libBornAgainCore.IFormFactorDecorator_getFormFactor(self)
+
 IFormFactorDecorator_swigregister = _libBornAgainCore.IFormFactorDecorator_swigregister
 IFormFactorDecorator_swigregister(IFormFactorDecorator)
 
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index eaa66744c58a70f086a7e6a19c459c1310f2a438..4ffa0032486a484958b4d0e238229ae3f4fca398 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -68690,6 +68690,35 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_IFormFactorDecorator_getFormFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  IFormFactorDecorator *arg1 = (IFormFactorDecorator *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  Swig::Director *director = 0;
+  IFormFactor *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:IFormFactorDecorator_getFormFactor",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IFormFactorDecorator, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorDecorator_getFormFactor" "', argument " "1"" of type '" "IFormFactorDecorator const *""'"); 
+  }
+  arg1 = reinterpret_cast< IFormFactorDecorator * >(argp1);
+  result = (IFormFactor *)((IFormFactorDecorator const *)arg1)->getFormFactor();
+  director = SWIG_DIRECTOR_CAST(result);
+  if (director) {
+    resultobj = director->swig_get_self();
+    Py_INCREF(resultobj);
+  } else {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormFactor, 0 |  0 );
+  }
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *IFormFactorDecorator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
@@ -122648,6 +122677,12 @@ static PyMethodDef SwigMethods[] = {
 		"Returns the z-coordinate of the lowest point in this shape after a given rotation. \n"
 		"\n"
 		""},
+	 { (char *)"IFormFactorDecorator_getFormFactor", _wrap_IFormFactorDecorator_getFormFactor, METH_VARARGS, (char *)"\n"
+		"IFormFactorDecorator_getFormFactor(IFormFactorDecorator self) -> IFormFactor\n"
+		"\n"
+		"const IFormFactor* IFormFactorDecorator::getFormFactor() const \n"
+		"\n"
+		""},
 	 { (char *)"IFormFactorDecorator_swigregister", IFormFactorDecorator_swigregister, METH_VARARGS, NULL},
 	 { (char *)"PolygonalTopology_vertexIndices_set", _wrap_PolygonalTopology_vertexIndices_set, METH_VARARGS, (char *)"PolygonalTopology_vertexIndices_set(PolygonalTopology self, vector_integer_t vertexIndices)"},
 	 { (char *)"PolygonalTopology_vertexIndices_get", _wrap_PolygonalTopology_vertexIndices_get, METH_VARARGS, (char *)"PolygonalTopology_vertexIndices_get(PolygonalTopology self) -> vector_integer_t"},
diff --git a/auto/Wrap/libBornAgainFit.py b/auto/Wrap/libBornAgainFit.py
index 8976f41ef3d0906d5f2e2ef43240c826e45f8b23..4bf93a03f23d63f7c64d77cdf6fc31ab60a51c59 100644
--- a/auto/Wrap/libBornAgainFit.py
+++ b/auto/Wrap/libBornAgainFit.py
@@ -1961,7 +1961,14 @@ def AttLimits_fixed():
     return _libBornAgainFit.AttLimits_fixed()
 
 class Parameter(_object):
-    """Proxy of C++ Fit::Parameter class."""
+    """
+
+
+    A fittable parameter with value, error, step, and limits.
+
+    C++ includes: Parameter.h
+
+    """
 
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Parameter, name, value)
@@ -1975,6 +1982,26 @@ class Parameter(_object):
         __init__(Fit::Parameter self, std::string const & name, double value, AttLimits limits, double step=0.0) -> Parameter
         __init__(Fit::Parameter self, std::string const & name, double value, AttLimits limits) -> Parameter
         __init__(Fit::Parameter self, std::string const & name, double value) -> Parameter
+
+        Parameter::Parameter(const std::string &name, double value, const AttLimits &limits=AttLimits::limitless(), double step=0.0)
+
+        Fit parameter constructor.
+
+        Parameters:
+        -----------
+
+        name: 
+        unique name of fit parameters
+
+        value: 
+        starting value of fit parameter
+
+        limits: 
+        fit parameter limits
+
+        step: 
+        initial step of fit parameter during the minimization, will be calculated automatically, if zero. 
+
         """
         this = _libBornAgainFit.new_Parameter(*args)
         try:
@@ -1983,42 +2010,82 @@ class Parameter(_object):
             self.this = this
 
     def name(self):
-        """name(Parameter self) -> std::string"""
+        """
+        name(Parameter self) -> std::string
+
+        std::string Parameter::name() const 
+
+        """
         return _libBornAgainFit.Parameter_name(self)
 
 
     def startValue(self):
-        """startValue(Parameter self) -> double"""
+        """
+        startValue(Parameter self) -> double
+
+        double Parameter::startValue() const 
+
+        """
         return _libBornAgainFit.Parameter_startValue(self)
 
 
     def limits(self):
-        """limits(Parameter self) -> AttLimits"""
+        """
+        limits(Parameter self) -> AttLimits
+
+        AttLimits Parameter::limits() const 
+
+        """
         return _libBornAgainFit.Parameter_limits(self)
 
 
     def value(self):
-        """value(Parameter self) -> double"""
+        """
+        value(Parameter self) -> double
+
+        double Parameter::value() const 
+
+        """
         return _libBornAgainFit.Parameter_value(self)
 
 
     def setValue(self, value):
-        """setValue(Parameter self, double value)"""
+        """
+        setValue(Parameter self, double value)
+
+        void Parameter::setValue(double value)
+
+        """
         return _libBornAgainFit.Parameter_setValue(self, value)
 
 
     def step(self):
-        """step(Parameter self) -> double"""
+        """
+        step(Parameter self) -> double
+
+        double Parameter::step() const 
+
+        """
         return _libBornAgainFit.Parameter_step(self)
 
 
     def error(self):
-        """error(Parameter self) -> double"""
+        """
+        error(Parameter self) -> double
+
+        double Parameter::error() const 
+
+        """
         return _libBornAgainFit.Parameter_error(self)
 
 
     def setError(self, value):
-        """setError(Parameter self, double value)"""
+        """
+        setError(Parameter self, double value)
+
+        void Parameter::setError(double value)
+
+        """
         return _libBornAgainFit.Parameter_setError(self, value)
 
 
@@ -2032,7 +2099,14 @@ Parameter_swigregister = _libBornAgainFit.Parameter_swigregister
 Parameter_swigregister(Parameter)
 
 class Parameters(_object):
-    """Proxy of C++ Fit::Parameters class."""
+    """
+
+
+    A collection of fit parameters.
+
+    C++ includes: Parameters.h
+
+    """
 
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Parameters, name, value)
@@ -2041,7 +2115,12 @@ class Parameters(_object):
     __repr__ = _swig_repr
 
     def __init__(self):
-        """__init__(Fit::Parameters self) -> Parameters"""
+        """
+        __init__(Fit::Parameters self) -> Parameters
+
+        Fit::Parameters::Parameters()=default
+
+        """
         this = _libBornAgainFit.new_Parameters()
         try:
             self.this.append(this)
@@ -2049,7 +2128,12 @@ class Parameters(_object):
             self.this = this
 
     def add(self, par):
-        """add(Parameters self, Parameter par)"""
+        """
+        add(Parameters self, Parameter par)
+
+        void Parameters::add(const Parameter &par)
+
+        """
         return _libBornAgainFit.Parameters_add(self, par)
 
 
@@ -2057,6 +2141,9 @@ class Parameters(_object):
         """
         begin(Parameters self) -> Fit::Parameters::const_iterator
         begin(Parameters self) -> Fit::Parameters::iterator
+
+        Parameters::iterator Parameters::begin()
+
         """
         return _libBornAgainFit.Parameters_begin(self, *args)
 
@@ -2065,32 +2152,60 @@ class Parameters(_object):
         """
         end(Parameters self) -> Fit::Parameters::const_iterator
         end(Parameters self) -> Fit::Parameters::iterator
+
+        Parameters::iterator Parameters::end()
+
         """
         return _libBornAgainFit.Parameters_end(self, *args)
 
 
     def size(self):
-        """size(Parameters self) -> size_t"""
+        """
+        size(Parameters self) -> size_t
+
+        size_t Parameters::size() const 
+
+        """
         return _libBornAgainFit.Parameters_size(self)
 
 
     def values(self):
-        """values(Parameters self) -> vdouble1d_t"""
+        """
+        values(Parameters self) -> vdouble1d_t
+
+        std::vector< double > Parameters::values() const 
+
+        """
         return _libBornAgainFit.Parameters_values(self)
 
 
     def setValues(self, values):
-        """setValues(Parameters self, vdouble1d_t values)"""
+        """
+        setValues(Parameters self, vdouble1d_t values)
+
+        void Parameters::setValues(const std::vector< double > &values)
+
+        """
         return _libBornAgainFit.Parameters_setValues(self, values)
 
 
     def errors(self):
-        """errors(Parameters self) -> vdouble1d_t"""
+        """
+        errors(Parameters self) -> vdouble1d_t
+
+        std::vector< double > Parameters::errors() const 
+
+        """
         return _libBornAgainFit.Parameters_errors(self)
 
 
     def setErrors(self, errors):
-        """setErrors(Parameters self, vdouble1d_t errors)"""
+        """
+        setErrors(Parameters self, vdouble1d_t errors)
+
+        void Parameters::setErrors(const std::vector< double > &errors)
+
+        """
         return _libBornAgainFit.Parameters_setErrors(self, errors)
 
 
@@ -2168,12 +2283,22 @@ class IMinimizer(_object):
 
 
     def minimize_scalar(self, arg2, arg3):
-        """minimize_scalar(IMinimizer self, fcn_scalar_t arg2, Parameters arg3) -> MinimizerResult"""
+        """
+        minimize_scalar(IMinimizer self, fcn_scalar_t arg2, Parameters arg3) -> MinimizerResult
+
+        Fit::MinimizerResult IMinimizer::minimize_scalar(fcn_scalar_t, Fit::Parameters)
+
+        """
         return _libBornAgainFit.IMinimizer_minimize_scalar(self, arg2, arg3)
 
 
     def minimize_residual(self, arg2, arg3):
-        """minimize_residual(IMinimizer self, fcn_residual_t arg2, Parameters arg3) -> MinimizerResult"""
+        """
+        minimize_residual(IMinimizer self, fcn_residual_t arg2, Parameters arg3) -> MinimizerResult
+
+        Fit::MinimizerResult IMinimizer::minimize_residual(fcn_residual_t, Fit::Parameters)
+
+        """
         return _libBornAgainFit.IMinimizer_minimize_residual(self, arg2, arg3)
 
 
@@ -2248,9 +2373,7 @@ class IMinimizer(_object):
         propagateResults(IMinimizer self, FitParameterSet parameters)
         propagateResults(IMinimizer self, Parameters parameters)
 
-        void IMinimizer::propagateResults(FitParameterSet &parameters)
-
-        Propagates results of minimization to fit parameter set. 
+        void IMinimizer::propagateResults(Fit::Parameters &parameters)
 
         """
         return _libBornAgainFit.IMinimizer_propagateResults(self, *args)
@@ -2949,7 +3072,14 @@ def MinimizerFactory_catalogue():
     return _libBornAgainFit.MinimizerFactory_catalogue()
 
 class PyCallback(_object):
-    """Proxy of C++ PyCallback class."""
+    """
+
+
+    Base class to wrap Python callable and pass it to C++. Used in swig interface file, intended to be overloaded from Python.
+
+    C++ includes: PyCallback.h
+
+    """
 
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, PyCallback, name, value)
@@ -2963,6 +3093,9 @@ class PyCallback(_object):
         """
         __init__(PyCallback self, PyCallback::CallbackType callback_type) -> PyCallback
         __init__(PyCallback self) -> PyCallback
+
+        PyCallback::PyCallback(CallbackType callback_type=SCALAR)
+
         """
         if self.__class__ == PyCallback:
             _self = None
@@ -2977,17 +3110,52 @@ class PyCallback(_object):
     __del__ = lambda self: None
 
     def callback_type(self):
-        """callback_type(PyCallback self) -> PyCallback::CallbackType"""
+        """
+        callback_type(PyCallback self) -> PyCallback::CallbackType
+
+        PyCallback::CallbackType PyCallback::callback_type() const 
+
+        """
         return _libBornAgainFit.PyCallback_callback_type(self)
 
 
     def call_scalar(self, pars):
-        """call_scalar(PyCallback self, Parameters pars) -> double"""
+        """
+        call_scalar(PyCallback self, Parameters pars) -> double
+
+        double PyCallback::call_scalar(Fit::Parameters pars)
+
+        Call Python callable and returns its result. Intended to be overloaded in Python.
+
+        Parameters:
+        -----------
+
+        pars: 
+        Fit parameters object (intentionally passed by value).
+
+        value of objective function. 
+
+        """
         return _libBornAgainFit.PyCallback_call_scalar(self, pars)
 
 
     def call_residuals(self, arg0):
-        """call_residuals(PyCallback self, Parameters arg0) -> vdouble1d_t"""
+        """
+        call_residuals(PyCallback self, Parameters arg0) -> vdouble1d_t
+
+        std::vector< double > PyCallback::call_residuals(Fit::Parameters)
+
+        Call Python callable and returns its result. Intended to be overloaded in Python.
+
+        Parameters:
+        -----------
+
+        pars: 
+        Fit parameters object (intentionally passed by value).
+
+        vector of residuals 
+
+        """
         return _libBornAgainFit.PyCallback_call_residuals(self, arg0)
 
     def __disown__(self):
@@ -2998,7 +3166,14 @@ PyCallback_swigregister = _libBornAgainFit.PyCallback_swigregister
 PyCallback_swigregister(PyCallback)
 
 class MinimizerResult(_object):
-    """Proxy of C++ Fit::MinimizerResult class."""
+    """
+
+
+    Result of minimization round.
+
+    C++ includes: MinimizerResult.h
+
+    """
 
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, MinimizerResult, name, value)
@@ -3007,7 +3182,12 @@ class MinimizerResult(_object):
     __repr__ = _swig_repr
 
     def __init__(self):
-        """__init__(Fit::MinimizerResult self) -> MinimizerResult"""
+        """
+        __init__(Fit::MinimizerResult self) -> MinimizerResult
+
+        MinimizerResult::MinimizerResult()
+
+        """
         this = _libBornAgainFit.new_MinimizerResult()
         try:
             self.this.append(this)
@@ -3015,47 +3195,96 @@ class MinimizerResult(_object):
             self.this = this
 
     def setParameters(self, parameters):
-        """setParameters(MinimizerResult self, Parameters parameters)"""
+        """
+        setParameters(MinimizerResult self, Parameters parameters)
+
+        void MinimizerResult::setParameters(const Parameters &parameters)
+
+        """
         return _libBornAgainFit.MinimizerResult_setParameters(self, parameters)
 
 
     def parameters(self):
-        """parameters(MinimizerResult self) -> Parameters"""
+        """
+        parameters(MinimizerResult self) -> Parameters
+
+        Parameters MinimizerResult::parameters() const 
+
+        """
         return _libBornAgainFit.MinimizerResult_parameters(self)
 
 
     def setMinValue(self, value):
-        """setMinValue(MinimizerResult self, double value)"""
+        """
+        setMinValue(MinimizerResult self, double value)
+
+        void MinimizerResult::setMinValue(double value)
+
+        """
         return _libBornAgainFit.MinimizerResult_setMinValue(self, value)
 
 
     def minValue(self):
-        """minValue(MinimizerResult self) -> double"""
+        """
+        minValue(MinimizerResult self) -> double
+
+        double MinimizerResult::minValue() const
+
+        Minimum value of objective function found by minimizer. 
+
+        """
         return _libBornAgainFit.MinimizerResult_minValue(self)
 
 
     def toString(self):
-        """toString(MinimizerResult self) -> std::string"""
+        """
+        toString(MinimizerResult self) -> std::string
+
+        std::string MinimizerResult::toString() const
+
+        Returns multi-line string representing minimization results. 
+
+        """
         return _libBornAgainFit.MinimizerResult_toString(self)
 
 
     def setReport(self, value):
-        """setReport(MinimizerResult self, std::string const & value)"""
+        """
+        setReport(MinimizerResult self, std::string const & value)
+
+        void MinimizerResult::setReport(const std::string &value)
+
+        """
         return _libBornAgainFit.MinimizerResult_setReport(self, value)
 
 
     def setDuration(self, value):
-        """setDuration(MinimizerResult self, double value)"""
+        """
+        setDuration(MinimizerResult self, double value)
+
+        void MinimizerResult::setDuration(double value)
+
+        """
         return _libBornAgainFit.MinimizerResult_setDuration(self, value)
 
 
     def setNumberOfCalls(self, value):
-        """setNumberOfCalls(MinimizerResult self, int value)"""
+        """
+        setNumberOfCalls(MinimizerResult self, int value)
+
+        void MinimizerResult::setNumberOfCalls(int value)
+
+        """
         return _libBornAgainFit.MinimizerResult_setNumberOfCalls(self, value)
 
 
     def setNumberOfGradientCalls(self, value):
-        """setNumberOfGradientCalls(MinimizerResult self, int value)"""
+        """
+        setNumberOfGradientCalls(MinimizerResult self, int value)
+
+        void MinimizerResult::setNumberOfGradientCalls(int value)
+
+        """
         return _libBornAgainFit.MinimizerResult_setNumberOfGradientCalls(self, value)
 
     __swig_destroy__ = _libBornAgainFit.delete_MinimizerResult
@@ -3064,7 +3293,14 @@ MinimizerResult_swigregister = _libBornAgainFit.MinimizerResult_swigregister
 MinimizerResult_swigregister(MinimizerResult)
 
 class Minimizer(_object):
-    """Proxy of C++ Fit::Minimizer class."""
+    """
+
+
+    A main class to run fitting.
+
+    C++ includes: Minimizer.h
+
+    """
 
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Minimizer, name, value)
@@ -3073,7 +3309,12 @@ class Minimizer(_object):
     __repr__ = _swig_repr
 
     def __init__(self):
-        """__init__(Fit::Minimizer self) -> Minimizer"""
+        """
+        __init__(Fit::Minimizer self) -> Minimizer
+
+        Minimizer::Minimizer()
+
+        """
         this = _libBornAgainFit.new_Minimizer()
         try:
             self.this.append(this)
@@ -3087,12 +3328,22 @@ class Minimizer(_object):
         setMinimizer(Minimizer self, std::string const & minimizerName, std::string const & algorithmName, std::string const & options)
         setMinimizer(Minimizer self, std::string const & minimizerName, std::string const & algorithmName)
         setMinimizer(Minimizer self, std::string const & minimizerName)
+
+        void Minimizer::setMinimizer(const std::string &minimizerName, const std::string &algorithmName="", const std::string &options="")
+
         """
         return _libBornAgainFit.Minimizer_setMinimizer(self, *args)
 
 
     def minimize_cpp(self, callback, parameters):
-        """minimize_cpp(Minimizer self, PyCallback callback, Parameters parameters) -> MinimizerResult"""
+        """
+        minimize_cpp(Minimizer self, PyCallback callback, Parameters parameters) -> MinimizerResult
+
+        MinimizerResult Minimizer::minimize(PyCallback &callback, const Parameters &parameters)
+
+        Finds minimum of user objective function (to be called from Python). 
+
+        """
         return _libBornAgainFit.Minimizer_minimize_cpp(self, callback, parameters)
 
 
diff --git a/auto/Wrap/libBornAgainFit_wrap.cpp b/auto/Wrap/libBornAgainFit_wrap.cpp
index fc1e893de7035463e2683c85936a70d4c289bddf..22f1f429dae63fb3344950a0e5dad98f43ea4942 100644
--- a/auto/Wrap/libBornAgainFit_wrap.cpp
+++ b/auto/Wrap/libBornAgainFit_wrap.cpp
@@ -25315,32 +25315,133 @@ static PyMethodDef SwigMethods[] = {
 		"Parameter(std::string const & name, double value, AttLimits limits, double step=0.0)\n"
 		"Parameter(std::string const & name, double value, AttLimits limits)\n"
 		"new_Parameter(std::string const & name, double value) -> Parameter\n"
+		"\n"
+		"Parameter::Parameter(const std::string &name, double value, const AttLimits &limits=AttLimits::limitless(), double step=0.0)\n"
+		"\n"
+		"Fit parameter constructor.\n"
+		"\n"
+		"Parameters:\n"
+		"-----------\n"
+		"\n"
+		"name: \n"
+		"unique name of fit parameters\n"
+		"\n"
+		"value: \n"
+		"starting value of fit parameter\n"
+		"\n"
+		"limits: \n"
+		"fit parameter limits\n"
+		"\n"
+		"step: \n"
+		"initial step of fit parameter during the minimization, will be calculated automatically, if zero. \n"
+		"\n"
+		""},
+	 { (char *)"Parameter_name", _wrap_Parameter_name, METH_VARARGS, (char *)"\n"
+		"Parameter_name(Parameter self) -> std::string\n"
+		"\n"
+		"std::string Parameter::name() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameter_startValue", _wrap_Parameter_startValue, METH_VARARGS, (char *)"\n"
+		"Parameter_startValue(Parameter self) -> double\n"
+		"\n"
+		"double Parameter::startValue() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameter_limits", _wrap_Parameter_limits, METH_VARARGS, (char *)"\n"
+		"Parameter_limits(Parameter self) -> AttLimits\n"
+		"\n"
+		"AttLimits Parameter::limits() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameter_value", _wrap_Parameter_value, METH_VARARGS, (char *)"\n"
+		"Parameter_value(Parameter self) -> double\n"
+		"\n"
+		"double Parameter::value() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameter_setValue", _wrap_Parameter_setValue, METH_VARARGS, (char *)"\n"
+		"Parameter_setValue(Parameter self, double value)\n"
+		"\n"
+		"void Parameter::setValue(double value)\n"
+		"\n"
+		""},
+	 { (char *)"Parameter_step", _wrap_Parameter_step, METH_VARARGS, (char *)"\n"
+		"Parameter_step(Parameter self) -> double\n"
+		"\n"
+		"double Parameter::step() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameter_error", _wrap_Parameter_error, METH_VARARGS, (char *)"\n"
+		"Parameter_error(Parameter self) -> double\n"
+		"\n"
+		"double Parameter::error() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameter_setError", _wrap_Parameter_setError, METH_VARARGS, (char *)"\n"
+		"Parameter_setError(Parameter self, double value)\n"
+		"\n"
+		"void Parameter::setError(double value)\n"
+		"\n"
 		""},
-	 { (char *)"Parameter_name", _wrap_Parameter_name, METH_VARARGS, (char *)"Parameter_name(Parameter self) -> std::string"},
-	 { (char *)"Parameter_startValue", _wrap_Parameter_startValue, METH_VARARGS, (char *)"Parameter_startValue(Parameter self) -> double"},
-	 { (char *)"Parameter_limits", _wrap_Parameter_limits, METH_VARARGS, (char *)"Parameter_limits(Parameter self) -> AttLimits"},
-	 { (char *)"Parameter_value", _wrap_Parameter_value, METH_VARARGS, (char *)"Parameter_value(Parameter self) -> double"},
-	 { (char *)"Parameter_setValue", _wrap_Parameter_setValue, METH_VARARGS, (char *)"Parameter_setValue(Parameter self, double value)"},
-	 { (char *)"Parameter_step", _wrap_Parameter_step, METH_VARARGS, (char *)"Parameter_step(Parameter self) -> double"},
-	 { (char *)"Parameter_error", _wrap_Parameter_error, METH_VARARGS, (char *)"Parameter_error(Parameter self) -> double"},
-	 { (char *)"Parameter_setError", _wrap_Parameter_setError, METH_VARARGS, (char *)"Parameter_setError(Parameter self, double value)"},
 	 { (char *)"delete_Parameter", _wrap_delete_Parameter, METH_VARARGS, (char *)"delete_Parameter(Parameter self)"},
 	 { (char *)"Parameter_swigregister", Parameter_swigregister, METH_VARARGS, NULL},
-	 { (char *)"new_Parameters", _wrap_new_Parameters, METH_VARARGS, (char *)"new_Parameters() -> Parameters"},
-	 { (char *)"Parameters_add", _wrap_Parameters_add, METH_VARARGS, (char *)"Parameters_add(Parameters self, Parameter par)"},
+	 { (char *)"new_Parameters", _wrap_new_Parameters, METH_VARARGS, (char *)"\n"
+		"new_Parameters() -> Parameters\n"
+		"\n"
+		"Fit::Parameters::Parameters()=default\n"
+		"\n"
+		""},
+	 { (char *)"Parameters_add", _wrap_Parameters_add, METH_VARARGS, (char *)"\n"
+		"Parameters_add(Parameters self, Parameter par)\n"
+		"\n"
+		"void Parameters::add(const Parameter &par)\n"
+		"\n"
+		""},
 	 { (char *)"Parameters_begin", _wrap_Parameters_begin, METH_VARARGS, (char *)"\n"
 		"begin() -> Fit::Parameters::const_iterator\n"
 		"Parameters_begin(Parameters self) -> Fit::Parameters::iterator\n"
+		"\n"
+		"Parameters::iterator Parameters::begin()\n"
+		"\n"
 		""},
 	 { (char *)"Parameters_end", _wrap_Parameters_end, METH_VARARGS, (char *)"\n"
 		"end() -> Fit::Parameters::const_iterator\n"
 		"Parameters_end(Parameters self) -> Fit::Parameters::iterator\n"
+		"\n"
+		"Parameters::iterator Parameters::end()\n"
+		"\n"
+		""},
+	 { (char *)"Parameters_size", _wrap_Parameters_size, METH_VARARGS, (char *)"\n"
+		"Parameters_size(Parameters self) -> size_t\n"
+		"\n"
+		"size_t Parameters::size() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameters_values", _wrap_Parameters_values, METH_VARARGS, (char *)"\n"
+		"Parameters_values(Parameters self) -> vdouble1d_t\n"
+		"\n"
+		"std::vector< double > Parameters::values() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameters_setValues", _wrap_Parameters_setValues, METH_VARARGS, (char *)"\n"
+		"Parameters_setValues(Parameters self, vdouble1d_t values)\n"
+		"\n"
+		"void Parameters::setValues(const std::vector< double > &values)\n"
+		"\n"
+		""},
+	 { (char *)"Parameters_errors", _wrap_Parameters_errors, METH_VARARGS, (char *)"\n"
+		"Parameters_errors(Parameters self) -> vdouble1d_t\n"
+		"\n"
+		"std::vector< double > Parameters::errors() const \n"
+		"\n"
+		""},
+	 { (char *)"Parameters_setErrors", _wrap_Parameters_setErrors, METH_VARARGS, (char *)"\n"
+		"Parameters_setErrors(Parameters self, vdouble1d_t errors)\n"
+		"\n"
+		"void Parameters::setErrors(const std::vector< double > &errors)\n"
+		"\n"
 		""},
-	 { (char *)"Parameters_size", _wrap_Parameters_size, METH_VARARGS, (char *)"Parameters_size(Parameters self) -> size_t"},
-	 { (char *)"Parameters_values", _wrap_Parameters_values, METH_VARARGS, (char *)"Parameters_values(Parameters self) -> vdouble1d_t"},
-	 { (char *)"Parameters_setValues", _wrap_Parameters_setValues, METH_VARARGS, (char *)"Parameters_setValues(Parameters self, vdouble1d_t values)"},
-	 { (char *)"Parameters_errors", _wrap_Parameters_errors, METH_VARARGS, (char *)"Parameters_errors(Parameters self) -> vdouble1d_t"},
-	 { (char *)"Parameters_setErrors", _wrap_Parameters_setErrors, METH_VARARGS, (char *)"Parameters_setErrors(Parameters self, vdouble1d_t errors)"},
 	 { (char *)"Parameters___getitem__", _wrap_Parameters___getitem__, METH_VARARGS, (char *)"\n"
 		"__getitem__(std::string name) -> Parameter\n"
 		"Parameters___getitem__(Parameters self, size_t index) -> Parameter\n"
@@ -25377,8 +25478,18 @@ static PyMethodDef SwigMethods[] = {
 		"run minimization \n"
 		"\n"
 		""},
-	 { (char *)"IMinimizer_minimize_scalar", _wrap_IMinimizer_minimize_scalar, METH_VARARGS, (char *)"IMinimizer_minimize_scalar(IMinimizer self, fcn_scalar_t arg3, Parameters arg4) -> MinimizerResult"},
-	 { (char *)"IMinimizer_minimize_residual", _wrap_IMinimizer_minimize_residual, METH_VARARGS, (char *)"IMinimizer_minimize_residual(IMinimizer self, fcn_residual_t arg3, Parameters arg4) -> MinimizerResult"},
+	 { (char *)"IMinimizer_minimize_scalar", _wrap_IMinimizer_minimize_scalar, METH_VARARGS, (char *)"\n"
+		"IMinimizer_minimize_scalar(IMinimizer self, fcn_scalar_t arg3, Parameters arg4) -> MinimizerResult\n"
+		"\n"
+		"Fit::MinimizerResult IMinimizer::minimize_scalar(fcn_scalar_t, Fit::Parameters)\n"
+		"\n"
+		""},
+	 { (char *)"IMinimizer_minimize_residual", _wrap_IMinimizer_minimize_residual, METH_VARARGS, (char *)"\n"
+		"IMinimizer_minimize_residual(IMinimizer self, fcn_residual_t arg3, Parameters arg4) -> MinimizerResult\n"
+		"\n"
+		"Fit::MinimizerResult IMinimizer::minimize_residual(fcn_residual_t, Fit::Parameters)\n"
+		"\n"
+		""},
 	 { (char *)"IMinimizer_clear", _wrap_IMinimizer_clear, METH_VARARGS, (char *)"\n"
 		"IMinimizer_clear(IMinimizer self)\n"
 		"\n"
@@ -25425,9 +25536,7 @@ static PyMethodDef SwigMethods[] = {
 		"propagateResults(FitParameterSet parameters)\n"
 		"IMinimizer_propagateResults(IMinimizer self, Parameters parameters)\n"
 		"\n"
-		"void IMinimizer::propagateResults(FitParameterSet &parameters)\n"
-		"\n"
-		"Propagates results of minimization to fit parameter set. \n"
+		"void IMinimizer::propagateResults(Fit::Parameters &parameters)\n"
 		"\n"
 		""},
 	 { (char *)"IMinimizer_setOptions", _wrap_IMinimizer_setOptions, METH_VARARGS, (char *)"\n"
@@ -25801,33 +25910,150 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_PyCallback", _wrap_new_PyCallback, METH_VARARGS, (char *)"\n"
 		"PyCallback(PyCallback::CallbackType callback_type)\n"
 		"new_PyCallback(PyObject * arg2) -> PyCallback\n"
+		"\n"
+		"PyCallback::PyCallback(CallbackType callback_type=SCALAR)\n"
+		"\n"
+		""},
+	 { (char *)"delete_PyCallback", _wrap_delete_PyCallback, METH_VARARGS, (char *)"\n"
+		"delete_PyCallback(PyCallback self)\n"
+		"\n"
+		"PyCallback::~PyCallback()\n"
+		"\n"
+		""},
+	 { (char *)"PyCallback_callback_type", _wrap_PyCallback_callback_type, METH_VARARGS, (char *)"\n"
+		"PyCallback_callback_type(PyCallback self) -> PyCallback::CallbackType\n"
+		"\n"
+		"PyCallback::CallbackType PyCallback::callback_type() const \n"
+		"\n"
+		""},
+	 { (char *)"PyCallback_call_scalar", _wrap_PyCallback_call_scalar, METH_VARARGS, (char *)"\n"
+		"PyCallback_call_scalar(PyCallback self, Parameters pars) -> double\n"
+		"\n"
+		"double PyCallback::call_scalar(Fit::Parameters pars)\n"
+		"\n"
+		"Call Python callable and returns its result. Intended to be overloaded in Python.\n"
+		"\n"
+		"Parameters:\n"
+		"-----------\n"
+		"\n"
+		"pars: \n"
+		"Fit parameters object (intentionally passed by value).\n"
+		"\n"
+		"value of objective function. \n"
+		"\n"
+		""},
+	 { (char *)"PyCallback_call_residuals", _wrap_PyCallback_call_residuals, METH_VARARGS, (char *)"\n"
+		"PyCallback_call_residuals(PyCallback self, Parameters arg0) -> vdouble1d_t\n"
+		"\n"
+		"std::vector< double > PyCallback::call_residuals(Fit::Parameters)\n"
+		"\n"
+		"Call Python callable and returns its result. Intended to be overloaded in Python.\n"
+		"\n"
+		"Parameters:\n"
+		"-----------\n"
+		"\n"
+		"pars: \n"
+		"Fit parameters object (intentionally passed by value).\n"
+		"\n"
+		"vector of residuals \n"
+		"\n"
 		""},
-	 { (char *)"delete_PyCallback", _wrap_delete_PyCallback, METH_VARARGS, (char *)"delete_PyCallback(PyCallback self)"},
-	 { (char *)"PyCallback_callback_type", _wrap_PyCallback_callback_type, METH_VARARGS, (char *)"PyCallback_callback_type(PyCallback self) -> PyCallback::CallbackType"},
-	 { (char *)"PyCallback_call_scalar", _wrap_PyCallback_call_scalar, METH_VARARGS, (char *)"PyCallback_call_scalar(PyCallback self, Parameters pars) -> double"},
-	 { (char *)"PyCallback_call_residuals", _wrap_PyCallback_call_residuals, METH_VARARGS, (char *)"PyCallback_call_residuals(PyCallback self, Parameters arg0) -> vdouble1d_t"},
 	 { (char *)"disown_PyCallback", _wrap_disown_PyCallback, METH_VARARGS, NULL},
 	 { (char *)"PyCallback_swigregister", PyCallback_swigregister, METH_VARARGS, NULL},
-	 { (char *)"new_MinimizerResult", _wrap_new_MinimizerResult, METH_VARARGS, (char *)"new_MinimizerResult() -> MinimizerResult"},
-	 { (char *)"MinimizerResult_setParameters", _wrap_MinimizerResult_setParameters, METH_VARARGS, (char *)"MinimizerResult_setParameters(MinimizerResult self, Parameters parameters)"},
-	 { (char *)"MinimizerResult_parameters", _wrap_MinimizerResult_parameters, METH_VARARGS, (char *)"MinimizerResult_parameters(MinimizerResult self) -> Parameters"},
-	 { (char *)"MinimizerResult_setMinValue", _wrap_MinimizerResult_setMinValue, METH_VARARGS, (char *)"MinimizerResult_setMinValue(MinimizerResult self, double value)"},
-	 { (char *)"MinimizerResult_minValue", _wrap_MinimizerResult_minValue, METH_VARARGS, (char *)"MinimizerResult_minValue(MinimizerResult self) -> double"},
-	 { (char *)"MinimizerResult_toString", _wrap_MinimizerResult_toString, METH_VARARGS, (char *)"MinimizerResult_toString(MinimizerResult self) -> std::string"},
-	 { (char *)"MinimizerResult_setReport", _wrap_MinimizerResult_setReport, METH_VARARGS, (char *)"MinimizerResult_setReport(MinimizerResult self, std::string const & value)"},
-	 { (char *)"MinimizerResult_setDuration", _wrap_MinimizerResult_setDuration, METH_VARARGS, (char *)"MinimizerResult_setDuration(MinimizerResult self, double value)"},
-	 { (char *)"MinimizerResult_setNumberOfCalls", _wrap_MinimizerResult_setNumberOfCalls, METH_VARARGS, (char *)"MinimizerResult_setNumberOfCalls(MinimizerResult self, int value)"},
-	 { (char *)"MinimizerResult_setNumberOfGradientCalls", _wrap_MinimizerResult_setNumberOfGradientCalls, METH_VARARGS, (char *)"MinimizerResult_setNumberOfGradientCalls(MinimizerResult self, int value)"},
+	 { (char *)"new_MinimizerResult", _wrap_new_MinimizerResult, METH_VARARGS, (char *)"\n"
+		"new_MinimizerResult() -> MinimizerResult\n"
+		"\n"
+		"MinimizerResult::MinimizerResult()\n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_setParameters", _wrap_MinimizerResult_setParameters, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_setParameters(MinimizerResult self, Parameters parameters)\n"
+		"\n"
+		"void MinimizerResult::setParameters(const Parameters &parameters)\n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_parameters", _wrap_MinimizerResult_parameters, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_parameters(MinimizerResult self) -> Parameters\n"
+		"\n"
+		"Parameters MinimizerResult::parameters() const \n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_setMinValue", _wrap_MinimizerResult_setMinValue, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_setMinValue(MinimizerResult self, double value)\n"
+		"\n"
+		"void MinimizerResult::setMinValue(double value)\n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_minValue", _wrap_MinimizerResult_minValue, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_minValue(MinimizerResult self) -> double\n"
+		"\n"
+		"double MinimizerResult::minValue() const\n"
+		"\n"
+		"Minimum value of objective function found by minimizer. \n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_toString", _wrap_MinimizerResult_toString, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_toString(MinimizerResult self) -> std::string\n"
+		"\n"
+		"std::string MinimizerResult::toString() const\n"
+		"\n"
+		"Returns multi-line string representing minimization results. \n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_setReport", _wrap_MinimizerResult_setReport, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_setReport(MinimizerResult self, std::string const & value)\n"
+		"\n"
+		"void MinimizerResult::setReport(const std::string &value)\n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_setDuration", _wrap_MinimizerResult_setDuration, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_setDuration(MinimizerResult self, double value)\n"
+		"\n"
+		"void MinimizerResult::setDuration(double value)\n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_setNumberOfCalls", _wrap_MinimizerResult_setNumberOfCalls, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_setNumberOfCalls(MinimizerResult self, int value)\n"
+		"\n"
+		"void MinimizerResult::setNumberOfCalls(int value)\n"
+		"\n"
+		""},
+	 { (char *)"MinimizerResult_setNumberOfGradientCalls", _wrap_MinimizerResult_setNumberOfGradientCalls, METH_VARARGS, (char *)"\n"
+		"MinimizerResult_setNumberOfGradientCalls(MinimizerResult self, int value)\n"
+		"\n"
+		"void MinimizerResult::setNumberOfGradientCalls(int value)\n"
+		"\n"
+		""},
 	 { (char *)"delete_MinimizerResult", _wrap_delete_MinimizerResult, METH_VARARGS, (char *)"delete_MinimizerResult(MinimizerResult self)"},
 	 { (char *)"MinimizerResult_swigregister", MinimizerResult_swigregister, METH_VARARGS, NULL},
-	 { (char *)"new_Minimizer", _wrap_new_Minimizer, METH_VARARGS, (char *)"new_Minimizer() -> Minimizer"},
-	 { (char *)"delete_Minimizer", _wrap_delete_Minimizer, METH_VARARGS, (char *)"delete_Minimizer(Minimizer self)"},
+	 { (char *)"new_Minimizer", _wrap_new_Minimizer, METH_VARARGS, (char *)"\n"
+		"new_Minimizer() -> Minimizer\n"
+		"\n"
+		"Minimizer::Minimizer()\n"
+		"\n"
+		""},
+	 { (char *)"delete_Minimizer", _wrap_delete_Minimizer, METH_VARARGS, (char *)"\n"
+		"delete_Minimizer(Minimizer self)\n"
+		"\n"
+		"Minimizer::~Minimizer()\n"
+		"\n"
+		""},
 	 { (char *)"Minimizer_setMinimizer", _wrap_Minimizer_setMinimizer, METH_VARARGS, (char *)"\n"
 		"setMinimizer(std::string const & minimizerName, std::string const & algorithmName, std::string const & options)\n"
 		"setMinimizer(std::string const & minimizerName, std::string const & algorithmName)\n"
 		"Minimizer_setMinimizer(Minimizer self, std::string const & minimizerName)\n"
+		"\n"
+		"void Minimizer::setMinimizer(const std::string &minimizerName, const std::string &algorithmName=\"\", const std::string &options=\"\")\n"
+		"\n"
+		""},
+	 { (char *)"Minimizer_minimize_cpp", _wrap_Minimizer_minimize_cpp, METH_VARARGS, (char *)"\n"
+		"Minimizer_minimize_cpp(Minimizer self, PyCallback callback, Parameters parameters) -> MinimizerResult\n"
+		"\n"
+		"MinimizerResult Minimizer::minimize(PyCallback &callback, const Parameters &parameters)\n"
+		"\n"
+		"Finds minimum of user objective function (to be called from Python). \n"
+		"\n"
 		""},
-	 { (char *)"Minimizer_minimize_cpp", _wrap_Minimizer_minimize_cpp, METH_VARARGS, (char *)"Minimizer_minimize_cpp(Minimizer self, PyCallback callback, Parameters parameters) -> MinimizerResult"},
 	 { (char *)"Minimizer_swigregister", Minimizer_swigregister, METH_VARARGS, NULL},
 	 { NULL, NULL, 0, NULL }
 };