diff --git a/CHANGELOG b/CHANGELOG
index 9190258a93e21ebf6aed27883fb4626ba95d6e86..50fa59ae6f20c0e2075e14120bb719f381b9323c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,76 @@
+BornAgain-1.8.0, released 2017.04.06
   > API changes
     1) ParticleLayout: addInterferenceFunction -> setInterferenceFunction
+  > Summary:
+    1) Fitting: all reasonable parameters can now be used for fitting.
+    2) GUI: plot settings are now persistent.
+    3) Graded layer approximation: simulations can now use the average refractive index as the background.
+       Layers can be split into multiple slices with different average material, depending on the particle content.
+    4) Particles can now cross layer interfaces.
+    5) Import of Tiff data improved.
+    6) Lots of refactoring and bug-fixing.
+
+  * Bug #1633: Possible memory leakage in LayerStrategyBuilder.
+  * Bug #1634: MacOS dmg 1.7 installation is partly broken
+  * Bug #1639: GUI: crash if fitting parameter removed
+  * Bug #1641: histogram2d test fails under certain configurations
+  * Bug #1658: add qt5-svg as a dependency
+  * Bug #1661: FitSuite doesn't know about TestMinimizer
+  * Bug #1662: CMake: require Qt version 5.4
+  * Bug #1664: FitSuite.runFit() crashes with unclear error message
+  * Bug #1674: Possible bug introduced in Polygon in Python context
+  * Bug #1681: Fitting GUI: free parameter error
+  * Bug #1687: LMA is incorrectly normalized
+  * Bug #1692: GUI and Py: simulation crash when sample contains undefined material
+  * Bug #1705: Py Fit crashes for zero fit parameters
+  * Bug #1745: GUI: resolution function for spherical detector doesn't affect simulation.
+  * Bug #1746: Zero scattering for buried particle in magnetic layer
+  * Bug #1759: GUI: sample script view shows false warnings
+  * Bug #1764: Rotation of magnetic particle insided magnetic layer behaves erroneously
+  * Bug #1776: SpecularSimulation gives wrong results when top layer is not vacuum
+  * Bug #1789: GUI: axes range of color map
+  * Feature #163: implement IsGISAXS Example 14 (graded layer)
+  * Feature #1238: nicer layout for newsletter@bornagainproject.org (reopened: v1.6.0 round mail still had black bars)
+  * Feature #1478: Refactor FitParameterLinked to provide simultaneous fit of several sample parameters
+  * Feature #1562: Provide ISample with possibility to export parameter tree in Python dictionary
+  * Feature #1616: For correct computation of mean refractive index, no longer allow embedding particles in the semi-infinite top layer
+  * Feature #1624: Make all reasonable parameter values into fittable parameter
+  * Feature #1653: Outcome of BornAgain user meetings in November
+  * Feature #1667: Read DESY/dpdak tiff files to BornAgain GUI
+  * Feature #1669: Allow for multiple form factors (dwba or not) in FromFactorWrapper and rename accordingly
+  * Feature #1670: Provide interface for adding particle shapes in different layers that are to be treated coherently (at fix relative position)
+  * Feature #1671: Provide automatic splitting of particle shapes when they cross a layer interface
+  * Feature #1672: Implement subdivision of a layer into multiple layers for graded interface calculations
+  * Feature #1680: Provide 1.7.1 hotfix
+  * Feature #1683: GUI: provide persistence of plot settings (interpolation, color scale, ...)
+  * Feature #1696: GUI: Improve drag-and-drop construction of a MultiLayer.
+  * Feature #1702: Fit: Provide extended print output for fit parameters during iterations.
+  * Feature #1753: Create specular peak user example and functional test.
+  * Feature #1763: Revise ParameterDistribution constructors and exceptions
+  * Feature #1769: support TIFF data from A. Nent
+  * Feature #1774: Check and document best way of handling magnetic materials under rotations
+  * Feature #1782: GUI: provide restore project on GUI crash
+  * Feature #1785: Add graded layer approximation to GUI
+  * Feature #1787: Include option for specular peak in GUI
+  * Documentation #1523: explain numeric value of HomogeneousMagneticMaterial::m_magnetic_prefactor
+  * Refactoring #1484: GUI: refactor InstrumentItem and DetectorItem
+  * Refactoring #1485: GUI: refactor InstrumentView
+  * Refactoring #1490: GUI: refactor JobView and IntensityData widgets
+  * Refactoring #1492: GUI: Unify WarningSignWidget usage across the whole project
+  * Refactoring #1604: move expected inaccuracy (m_variability) out of class OutputData
+  * Refactoring #1623: Parameter name translation (GUI -> domain)
+  * Refactoring #1652: Sort namespaces, and provide Doxygen comments
+  * Refactoring #1659: rename PixelMap -> Pixel
+  * Refactoring #1660: remove global functions
+  * Refactoring #1730: Refactor ICompositeSample hierarchy
+  * Refactoring #1733: Avoid multiple calculations of same RT coefficients
+  * Refactoring #1743: resolve mutual directory dependence Parametrization <-> Scattering
+  * Refactoring #1744: resolve mutual directory dependence Aggregate <-> Multilayer
+  * Refactoring #1784: Clean up code after implementation of graded layer approximation
+  * Configuration #1496: Switch Windows10 buildslave from virtual box to vagrant box
+  * Configuration #1536: prevent Drupal from sending HTML mails with black horizontal header bar, without left margin, and in grey font
+  * Configuration #1635: update to gtest-1.8
+  * Configuration #1729: Fix centos7 CI build on buildbot
 
 BornAgain-1.7.1, released 2016.12.01
   > Hotfix:
diff --git a/Doc/Doxygen/Doxyfile b/Doc/Doxygen/Doxyfile
index eb0984eca1b6bfc4ab511bb6e5000c354f35cfc5..ecf916394869606648cc6ce70cc35268f16e5c9d 100644
--- a/Doc/Doxygen/Doxyfile
+++ b/Doc/Doxygen/Doxyfile
@@ -38,7 +38,7 @@ PROJECT_NAME           = "BornAgain"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 1.7.99
+PROJECT_NUMBER         = 1.8.0
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff --git a/VERSION.cmake b/VERSION.cmake
index 15c37e94ef3ad59a5265673571d1ad165ea7ad6c..5ca648868dfe0cb713e7f067b34a2e67b8244e72 100644
--- a/VERSION.cmake
+++ b/VERSION.cmake
@@ -1,3 +1,3 @@
 set(BornAgain_VERSION_MAJOR 1)
-set(BornAgain_VERSION_MINOR 7)
-set(BornAgain_VERSION_PATCH 99)
+set(BornAgain_VERSION_MINOR 8)
+set(BornAgain_VERSION_PATCH 0)
diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygen_core.i
index d0b5053ee2eb27d26706a4c2fb5f861b3aafdddb..592731c6e502f875e1291d83de1ab7bfbf221e9d 100644
--- a/auto/Wrap/doxygen_core.i
+++ b/auto/Wrap/doxygen_core.i
@@ -35,6 +35,13 @@ C++ includes: AdjustMinimizerStrategy.h
 ";
 
 
+// File: classAsymRippleBuilder.xml
+%feature("docstring") AsymRippleBuilder "";
+
+%feature("docstring")  AsymRippleBuilder::buildSample "MultiLayer * AsymRippleBuilder::buildSample() const 
+";
+
+
 // File: classBasic2DLatticeBuilder.xml
 %feature("docstring") Basic2DLatticeBuilder "
 
@@ -500,21 +507,21 @@ C++ includes: BoxCompositionBuilder.h
 ";
 
 
-// File: structIntegratorReal_1_1CallBackHolder.xml
-%feature("docstring") IntegratorReal::CallBackHolder "
+// File: structIntegratorMCMiser_1_1CallBackHolder.xml
+%feature("docstring") IntegratorMCMiser::CallBackHolder "
 
 structure holding the object and possible extra parameters
 
-C++ includes: IntegratorReal.h
+C++ includes: IntegratorMCMiser.h
 ";
 
 
-// File: structIntegratorMCMiser_1_1CallBackHolder.xml
-%feature("docstring") IntegratorMCMiser::CallBackHolder "
+// File: structIntegratorReal_1_1CallBackHolder.xml
+%feature("docstring") IntegratorReal::CallBackHolder "
 
 structure holding the object and possible extra parameters
 
-C++ includes: IntegratorMCMiser.h
+C++ includes: IntegratorReal.h
 ";
 
 
@@ -1710,6 +1717,9 @@ C++ includes: FitParameter.h
 %feature("docstring")  FitParameter::FitParameter "FitParameter::FitParameter(const std::string &pattern, double value, const AttLimits &lim=AttLimits::limitless(), double step=0.0)
 ";
 
+%feature("docstring")  FitParameter::FitParameter "FitParameter::FitParameter(double value, const AttLimits &lim=AttLimits::limitless(), double step=0.0)
+";
+
 %feature("docstring")  FitParameter::~FitParameter "FitParameter::~FitParameter() final
 ";
 
@@ -1903,7 +1913,7 @@ Assigns pair of (simulation, real data) for fitting. More than one pair can be a
 Assigns pair of (simulation, real data) for fitting. Numpy array is used to provide intensities. Shape of array (nrows, ncols) should coinside with detector's axes (n_alpha, n_phi). 
 ";
 
-%feature("docstring")  FitSuite::addFitParameter "FitParameter * FitSuite::addFitParameter(const std::string &name, double value, const AttLimits &limits=AttLimits::limitless(), double step=0.0)
+%feature("docstring")  FitSuite::addFitParameter "FitParameter * FitSuite::addFitParameter(const std::string &pattern, double value, const AttLimits &limits=AttLimits::limitless(), double step=0.0)
 
 Adds fit parameter
 
@@ -7327,103 +7337,82 @@ C++ includes: INodeVisitor.h
 %feature("docstring")  INodeVisitor::~INodeVisitor "virtual INodeVisitor::~INodeVisitor()
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const INode *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const BasicLattice *)
 ";
 
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Beam *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RectangularDetector *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const SphericalDetector *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IsGISAXSDetector *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ResolutionFunction2DGaussian *)
-";
-
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ConvolutionDetectorResolution *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ISample *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IClusteredParticles *)
-";
-
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Crystal *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ILayout *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleLayout *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionCosine *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Layer *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionGate *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const LayerInterface *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionGaussian *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const MultiLayer *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionLogNormal *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IAbstractParticle *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionLorentz *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IParticle *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FitObject *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Particle *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FitSuiteObjects *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleDistribution *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorAnisoPyramid *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleComposition *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorBox *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const MesoCrystal *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCone *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleCoreShell *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCone6 *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IFormFactor *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCoreShell *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IFormFactorBorn *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCrystal *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IFormFactorDecorator *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCuboctahedron *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorAnisoPyramid *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCylinder *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorBox *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorDebyeWaller *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCone *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorMaterial *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCone6 *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorPositionFactor *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCuboctahedron *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorRotation *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCrystal *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDodecahedron *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCylinder *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDWBA *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDodecahedron *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDWBAPol *)
 ";
 
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorEllipsoidalCylinder *)
@@ -7489,163 +7478,184 @@ C++ includes: INodeVisitor.h
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorTruncatedSpheroid *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCoreShell *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDWBA *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorWeighted *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDWBAPol *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DCauchy *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorWeighted *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DGauss *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorDebyeWaller *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DTriangle *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorMaterial *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DVoigt *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorPositionFactor *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DCauchy *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorRotation *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DGauss *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DCauchy *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DVoigt *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DGauss *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DCauchy *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DTriangle *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DCosine *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DVoigt *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DGate *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DCauchy *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DGauss *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DGauss *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DTriangle *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DVoigt *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DVoigt *)
 ";
 
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DCauchy *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DGauss *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DCone *)
 ";
 
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DGate *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DCone *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DGauss *)
 ";
 
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DVoigt *)
 ";
 
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const GISASSimulation *)
+";
+
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const HexagonalLattice *)
+";
+
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IAbstractParticle *)
+";
+
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IClusteredParticles *)
+";
+
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IFormFactor *)
+";
+
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IFormFactorBorn *)
+";
+
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IFormFactorDecorator *)
+";
+
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IInterferenceFunction *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunction1DLattice *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ILayout *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunctionRadialParaCrystal *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const INode *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunction2DLattice *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Instrument *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunction2DParaCrystal *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IntensityNormalizer *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunctionNone *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IntensityScaleAndShiftNormalizer *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const LayerRoughness *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunction1DLattice *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IRotation *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunction2DLattice *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationX *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunction2DParaCrystal *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationY *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunctionNone *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationZ *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunctionRadialParaCrystal *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationEuler *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IParticle *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Instrument *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IRotation *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FitSuiteObjects *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ISample *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FitObject *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IsGISAXSDetector *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const GISASSimulation *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Layer *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const OffSpecSimulation *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const LayerInterface *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IntensityNormalizer *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const LayerRoughness *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IntensityScaleAndShiftNormalizer *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const MesoCrystal *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const BasicLattice *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const MultiLayer *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const SquareLattice *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const OffSpecSimulation *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const HexagonalLattice *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Particle *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DCauchy *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleComposition *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DGauss *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleCoreShell *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DGate *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleDistribution *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DTriangle *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleLayout *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DCosine *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RectangularDetector *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DVoigt *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ResolutionFunction2DGaussian *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionGate *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationEuler *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionLorentz *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationX *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionGaussian *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationY *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionLogNormal *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationZ *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionCosine *)
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const SphericalDetector *)
+";
+
+%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const SquareLattice *)
 ";
 
 %feature("docstring")  INodeVisitor::depth "int INodeVisitor::depth() const
@@ -8442,7 +8452,7 @@ C++ includes: IParameterized.h
 %feature("docstring")  IParameterized::~IParameterized "IParameterized::~IParameterized()
 ";
 
-%feature("docstring")  IParameterized::getParameterPool "ParameterPool* IParameterized::getParameterPool() const
+%feature("docstring")  IParameterized::parameterPool "ParameterPool* IParameterized::parameterPool() const
 
 Returns pointer to the parameter pool. 
 ";
@@ -8463,7 +8473,7 @@ Returns multiline string representing available parameters.
 %feature("docstring")  IParameterized::setParameterValue "void IParameterized::setParameterValue(const std::string &name, double value)
 ";
 
-%feature("docstring")  IParameterized::getParameter "RealParameter * IParameterized::getParameter(const std::string &name) const
+%feature("docstring")  IParameterized::parameter "RealParameter * IParameterized::parameter(const std::string &name) const
 
 Returns parameter with given 'name'. 
 ";
@@ -8683,25 +8693,6 @@ Returns vector of children of type T.
 ";
 
 
-// File: classISampleIteratorStrategy.xml
-%feature("docstring") ISampleIteratorStrategy "";
-
-%feature("docstring")  ISampleIteratorStrategy::~ISampleIteratorStrategy "virtual ISampleIteratorStrategy::~ISampleIteratorStrategy()
-";
-
-%feature("docstring")  ISampleIteratorStrategy::clone "virtual ISampleIteratorStrategy* ISampleIteratorStrategy::clone() const =0
-";
-
-%feature("docstring")  ISampleIteratorStrategy::first "virtual IteratorMemento ISampleIteratorStrategy::first(const INode *p_root)=0
-";
-
-%feature("docstring")  ISampleIteratorStrategy::next "virtual void ISampleIteratorStrategy::next(IteratorMemento &iterator_stack) const =0
-";
-
-%feature("docstring")  ISampleIteratorStrategy::isDone "virtual bool ISampleIteratorStrategy::isDone(IteratorMemento &iterator_stack) const =0
-";
-
-
 // File: classISelectionRule.xml
 %feature("docstring") ISelectionRule "
 
@@ -8829,12 +8820,31 @@ C++ includes: ISquaredFunction.h
 ";
 
 
+// File: classIterationStrategy.xml
+%feature("docstring") IterationStrategy "";
+
+%feature("docstring")  IterationStrategy::~IterationStrategy "virtual IterationStrategy::~IterationStrategy()
+";
+
+%feature("docstring")  IterationStrategy::clone "virtual IterationStrategy* IterationStrategy::clone() const =0
+";
+
+%feature("docstring")  IterationStrategy::first "virtual IteratorMemento IterationStrategy::first(const INode *p_root)=0
+";
+
+%feature("docstring")  IterationStrategy::next "virtual void IterationStrategy::next(IteratorMemento &iterator_stack) const =0
+";
+
+%feature("docstring")  IterationStrategy::isDone "virtual bool IterationStrategy::isDone(IteratorMemento &iterator_stack) const =0
+";
+
+
 // File: classIteratorMemento.xml
 %feature("docstring") IteratorMemento "
 
-Holds all iterator states encountered for  SampleTreeIterator.
+Holds all iterator states encountered for SampleTreeIterator.
 
-C++ includes: SampleTreeIterator.h
+C++ includes: NodeIterator.h
 ";
 
 %feature("docstring")  IteratorMemento::IteratorMemento "IteratorMemento::IteratorMemento()
@@ -8871,9 +8881,9 @@ C++ includes: SampleTreeIterator.h
 // File: classIteratorState.xml
 %feature("docstring") IteratorState "
 
-Holds state of iterator at single level for  SampleTreeIterator.
+Holds state of iterator at single level for SampleTreeIterator.
 
-C++ includes: SampleTreeIterator.h
+C++ includes: NodeIterator.h
 ";
 
 %feature("docstring")  IteratorState::IteratorState "IteratorState::IteratorState(const INode *single_element)
@@ -9839,6 +9849,38 @@ C++ includes: MultipleLayoutBuilder.h
 ";
 
 
+// File: classNodeIterator.xml
+%feature("docstring") NodeIterator "
+
+Iterator through  INode tree of objects.
+
+Usage example: SampleTreeIterator<Strategy> it(&sample); it.first(); while( !it.is_done() ) {  INode *p_sample = it.get_current(); it.next(); }
+
+C++ includes: NodeIterator.h
+";
+
+%feature("docstring")  NodeIterator::NodeIterator "NodeIterator< Strategy >::NodeIterator(const INode *root)
+";
+
+%feature("docstring")  NodeIterator::~NodeIterator "virtual NodeIterator< Strategy >::~NodeIterator()
+";
+
+%feature("docstring")  NodeIterator::first "void NodeIterator< Strategy >::first()
+";
+
+%feature("docstring")  NodeIterator::next "void NodeIterator< Strategy >::next()
+";
+
+%feature("docstring")  NodeIterator::getCurrent "const INode * NodeIterator< Strategy >::getCurrent()
+";
+
+%feature("docstring")  NodeIterator::isDone "bool NodeIterator< Strategy >::isDone() const 
+";
+
+%feature("docstring")  NodeIterator::depth "size_t NodeIterator< Strategy >::depth() const 
+";
+
+
 // File: classExceptions_1_1NotImplementedException.xml
 %feature("docstring") Exceptions::NotImplementedException "";
 
@@ -9931,7 +9973,7 @@ C++ includes: ZLimits.h
 // File: classOutputData.xml
 %feature("docstring") OutputData "
 
-Template class to store data of any type in multi-dimensional space.Used with data type double to hold simulation results. Used with data type  CumulativeValue in  IHistogram classes. Used with data type bool to hold a detector mask (-> class  DetectorMask)
+Template class to store data of any type in multi-dimensional space.
 
 C++ includes: OutputData.h
 ";
@@ -10516,17 +10558,17 @@ Adds parameter to the pool, and returns reference to the input pointer.
 Returning the input pointer allows us to concatenate function calls like pool->addParameter( new  RealParameter(...) ).setLimits(-1,+1).setFixed().setUnit(\"nm\") 
 ";
 
-%feature("docstring")  ParameterPool::getParameter "RealParameter * ParameterPool::getParameter(const std::string &name)
+%feature("docstring")  ParameterPool::parameter "RealParameter * ParameterPool::parameter(const std::string &name)
 
 Returns parameter with given  name. 
 ";
 
-%feature("docstring")  ParameterPool::getParameter "const RealParameter * ParameterPool::getParameter(const std::string &name) const
+%feature("docstring")  ParameterPool::parameter "const RealParameter * ParameterPool::parameter(const std::string &name) const
 
 Returns parameter with given  name. 
 ";
 
-%feature("docstring")  ParameterPool::getParameters "const std::vector<RealParameter*> ParameterPool::getParameters() const
+%feature("docstring")  ParameterPool::parameters "const std::vector<RealParameter*> ParameterPool::parameters() const
 
 Returns full vector of parameters. 
 ";
@@ -11146,6 +11188,28 @@ C++ includes: FormFactorPolyhedron.h
 ";
 
 
+// File: classPostorderStrategy.xml
+%feature("docstring") PostorderStrategy "";
+
+%feature("docstring")  PostorderStrategy::PostorderStrategy "PostorderStrategy::PostorderStrategy()
+";
+
+%feature("docstring")  PostorderStrategy::clone "PostorderStrategy * PostorderStrategy::clone() const 
+";
+
+%feature("docstring")  PostorderStrategy::~PostorderStrategy "PostorderStrategy::~PostorderStrategy()
+";
+
+%feature("docstring")  PostorderStrategy::first "IteratorMemento PostorderStrategy::first(const INode *p_root)
+";
+
+%feature("docstring")  PostorderStrategy::next "void PostorderStrategy::next(IteratorMemento &iterator_stack) const 
+";
+
+%feature("docstring")  PostorderStrategy::isDone "bool PostorderStrategy::isDone(IteratorMemento &iterator_stack) const 
+";
+
+
 // File: classPrecomputed.xml
 %feature("docstring") Precomputed "
 
@@ -11155,6 +11219,28 @@ C++ includes: Precomputed.h
 ";
 
 
+// File: classPreorderStrategy.xml
+%feature("docstring") PreorderStrategy "";
+
+%feature("docstring")  PreorderStrategy::PreorderStrategy "PreorderStrategy::PreorderStrategy()
+";
+
+%feature("docstring")  PreorderStrategy::clone "PreorderStrategy * PreorderStrategy::clone() const 
+";
+
+%feature("docstring")  PreorderStrategy::~PreorderStrategy "PreorderStrategy::~PreorderStrategy()
+";
+
+%feature("docstring")  PreorderStrategy::first "IteratorMemento PreorderStrategy::first(const INode *p_root)
+";
+
+%feature("docstring")  PreorderStrategy::next "void PreorderStrategy::next(IteratorMemento &iterator_stack) const 
+";
+
+%feature("docstring")  PreorderStrategy::isDone "bool PreorderStrategy::isDone(IteratorMemento &iterator_stack) const 
+";
+
+
 // File: classProgressHandler.xml
 %feature("docstring") ProgressHandler "
 
@@ -11241,7 +11327,7 @@ C++ includes: RealParameter.h
 Sets value of wrapped parameter and emit signal. 
 ";
 
-%feature("docstring")  RealParameter::getValue "double RealParameter::getValue() const
+%feature("docstring")  RealParameter::value "double RealParameter::value() const
 
 Returns value of wrapped parameter. 
 ";
@@ -11249,7 +11335,7 @@ Returns value of wrapped parameter.
 %feature("docstring")  RealParameter::setLimits "RealParameter& RealParameter::setLimits(const RealLimits &limits)
 ";
 
-%feature("docstring")  RealParameter::getLimits "RealLimits RealParameter::getLimits() const 
+%feature("docstring")  RealParameter::limits "RealLimits RealParameter::limits() const 
 ";
 
 %feature("docstring")  RealParameter::setLimited "RealParameter & RealParameter::setLimited(double lower, double upper)
@@ -11584,6 +11670,21 @@ Calls the  INodeVisitor's visit method.
 ";
 
 
+// File: classRotatedCylindersBuilder.xml
+%feature("docstring") RotatedCylindersBuilder "
+
+Builds sample: cylinder formfactor in DWBA (IsGISAXS example #3, part I).
+
+C++ includes: CylindersBuilder.h
+";
+
+%feature("docstring")  RotatedCylindersBuilder::RotatedCylindersBuilder "RotatedCylindersBuilder::RotatedCylindersBuilder()
+";
+
+%feature("docstring")  RotatedCylindersBuilder::buildSample "MultiLayer * RotatedCylindersBuilder::buildSample() const 
+";
+
+
 // File: classRotatedPyramidsBuilder.xml
 %feature("docstring") RotatedPyramidsBuilder "
 
@@ -11837,50 +11938,6 @@ Retrieves a SampleBuilder from the registry, does the build, and returns the res
 ";
 
 
-// File: classSampleIteratorPostorderStrategy.xml
-%feature("docstring") SampleIteratorPostorderStrategy "";
-
-%feature("docstring")  SampleIteratorPostorderStrategy::SampleIteratorPostorderStrategy "SampleIteratorPostorderStrategy::SampleIteratorPostorderStrategy()
-";
-
-%feature("docstring")  SampleIteratorPostorderStrategy::clone "SampleIteratorPostorderStrategy * SampleIteratorPostorderStrategy::clone() const 
-";
-
-%feature("docstring")  SampleIteratorPostorderStrategy::~SampleIteratorPostorderStrategy "SampleIteratorPostorderStrategy::~SampleIteratorPostorderStrategy()
-";
-
-%feature("docstring")  SampleIteratorPostorderStrategy::first "IteratorMemento SampleIteratorPostorderStrategy::first(const INode *p_root)
-";
-
-%feature("docstring")  SampleIteratorPostorderStrategy::next "void SampleIteratorPostorderStrategy::next(IteratorMemento &iterator_stack) const 
-";
-
-%feature("docstring")  SampleIteratorPostorderStrategy::isDone "bool SampleIteratorPostorderStrategy::isDone(IteratorMemento &iterator_stack) const 
-";
-
-
-// File: classSampleIteratorPreorderStrategy.xml
-%feature("docstring") SampleIteratorPreorderStrategy "";
-
-%feature("docstring")  SampleIteratorPreorderStrategy::SampleIteratorPreorderStrategy "SampleIteratorPreorderStrategy::SampleIteratorPreorderStrategy()
-";
-
-%feature("docstring")  SampleIteratorPreorderStrategy::clone "SampleIteratorPreorderStrategy * SampleIteratorPreorderStrategy::clone() const 
-";
-
-%feature("docstring")  SampleIteratorPreorderStrategy::~SampleIteratorPreorderStrategy "SampleIteratorPreorderStrategy::~SampleIteratorPreorderStrategy()
-";
-
-%feature("docstring")  SampleIteratorPreorderStrategy::first "IteratorMemento SampleIteratorPreorderStrategy::first(const INode *p_root)
-";
-
-%feature("docstring")  SampleIteratorPreorderStrategy::next "void SampleIteratorPreorderStrategy::next(IteratorMemento &iterator_stack) const 
-";
-
-%feature("docstring")  SampleIteratorPreorderStrategy::isDone "bool SampleIteratorPreorderStrategy::isDone(IteratorMemento &iterator_stack) const 
-";
-
-
 // File: classSampleLabelHandler.xml
 %feature("docstring") SampleLabelHandler "
 
@@ -12001,38 +12058,6 @@ C++ includes: SampleLabelHandler.h
 ";
 
 
-// File: classSampleTreeIterator.xml
-%feature("docstring") SampleTreeIterator "
-
-Iterator through  INode tree of objects.
-
-Usage example: SampleTreeIterator<Strategy> it(&sample); it.first(); while( !it.is_done() ) {  INode *p_sample = it.get_current(); it.next(); }
-
-C++ includes: SampleTreeIterator.h
-";
-
-%feature("docstring")  SampleTreeIterator::SampleTreeIterator "SampleTreeIterator< Strategy >::SampleTreeIterator(const INode *root)
-";
-
-%feature("docstring")  SampleTreeIterator::~SampleTreeIterator "virtual SampleTreeIterator< Strategy >::~SampleTreeIterator()
-";
-
-%feature("docstring")  SampleTreeIterator::first "void SampleTreeIterator< Strategy >::first()
-";
-
-%feature("docstring")  SampleTreeIterator::next "void SampleTreeIterator< Strategy >::next()
-";
-
-%feature("docstring")  SampleTreeIterator::getCurrent "const INode * SampleTreeIterator< Strategy >::getCurrent()
-";
-
-%feature("docstring")  SampleTreeIterator::isDone "bool SampleTreeIterator< Strategy >::isDone() const 
-";
-
-%feature("docstring")  SampleTreeIterator::depth "size_t SampleTreeIterator< Strategy >::depth() const 
-";
-
-
 // File: classScalarFresnelMap.xml
 %feature("docstring") ScalarFresnelMap "
 
@@ -12597,6 +12622,21 @@ C++ includes: Slice.h
 ";
 
 
+// File: classSlicedCompositionBuilder.xml
+%feature("docstring") SlicedCompositionBuilder "
+
+Builds sample: spherical composition made of top+bottom spherical cups
+
+C++ includes: SlicedParticleBuilder.h
+";
+
+%feature("docstring")  SlicedCompositionBuilder::SlicedCompositionBuilder "SlicedCompositionBuilder::SlicedCompositionBuilder()
+";
+
+%feature("docstring")  SlicedCompositionBuilder::buildSample "MultiLayer * SlicedCompositionBuilder::buildSample() const 
+";
+
+
 // File: classSlicedFormFactorList.xml
 %feature("docstring") SlicedFormFactorList "
 
@@ -13116,6 +13156,21 @@ Clones the transformation.
 Calculates the Euler angles corresponding to the rotation. 
 ";
 
+%feature("docstring")  Transform3D::calculateRotateXAngle "double Transform3D::calculateRotateXAngle() const
+
+Calculates the rotation angle for a rotation around the x-axis alone Only meaningfull if the actual rotation is around the x-axis 
+";
+
+%feature("docstring")  Transform3D::calculateRotateYAngle "double Transform3D::calculateRotateYAngle() const
+
+Calculates the rotation angle for a rotation around the y-axis alone Only meaningfull if the actual rotation is around the y-axis 
+";
+
+%feature("docstring")  Transform3D::calculateRotateZAngle "double Transform3D::calculateRotateZAngle() const
+
+Calculates the rotation angle for a rotation around the z-axis alone Only meaningfull if the actual rotation is around the z-axis 
+";
+
 %feature("docstring")  Transform3D::getInverse "Transform3D Transform3D::getInverse() const
 
 Returns the inverse transformation. 
@@ -13467,13 +13522,13 @@ C++ includes: ZLimits.h
 // File: namespace_0D310.xml
 
 
-// File: namespace_0D325.xml
+// File: namespace_0D331.xml
 
 
-// File: namespace_0D364.xml
+// File: namespace_0D370.xml
 
 
-// File: namespace_0D478.xml
+// File: namespace_0D480.xml
 
 
 // File: namespace_0D54.xml
@@ -15047,6 +15102,22 @@ Recursive bisection to determine the number of the deepest layer where RT comput
 // File: INode_8h.xml
 
 
+// File: INodeVisitor_8cpp.xml
+%feature("docstring")  VisitNodesPreorder "void VisitNodesPreorder(const INode &node, INodeVisitor &visitor)
+";
+
+%feature("docstring")  VisitNodesPostorder "void VisitNodesPostorder(const INode &node, INodeVisitor &visitor)
+";
+
+
+// File: INodeVisitor_8h.xml
+%feature("docstring")  VisitNodesPreorder "BA_CORE_API_ void VisitNodesPreorder(const INode &node, INodeVisitor &visitor)
+";
+
+%feature("docstring")  VisitNodesPostorder "BA_CORE_API_ void VisitNodesPostorder(const INode &node, INodeVisitor &visitor)
+";
+
+
 // File: IParameter_8h.xml
 
 
@@ -15056,6 +15127,18 @@ Recursive bisection to determine the number of the deepest layer where RT comput
 // File: IParameterized_8h.xml
 
 
+// File: IterationStrategy_8cpp.xml
+
+
+// File: IterationStrategy_8h.xml
+
+
+// File: NodeIterator_8cpp.xml
+
+
+// File: NodeIterator_8h.xml
+
+
 // File: NodeUtils_8cpp.xml
 
 
@@ -15240,34 +15323,12 @@ Global function that creates a  SlicedFormFactorList from an  IParticle in a mul
 // File: IFormFactorBorn_8h.xml
 
 
-// File: INodeVisitor_8cpp.xml
-%feature("docstring")  VisitSampleTreePreorder "void VisitSampleTreePreorder(const INode &node, INodeVisitor &visitor)
-";
-
-%feature("docstring")  VisitSampleTreePostorder "void VisitSampleTreePostorder(const INode &node, INodeVisitor &visitor)
-";
-
-
-// File: INodeVisitor_8h.xml
-%feature("docstring")  VisitSampleTreePreorder "BA_CORE_API_ void VisitSampleTreePreorder(const INode &node, INodeVisitor &visitor)
-";
-
-%feature("docstring")  VisitSampleTreePostorder "BA_CORE_API_ void VisitSampleTreePostorder(const INode &node, INodeVisitor &visitor)
-";
-
-
 // File: ISample_8cpp.xml
 
 
 // File: ISample_8h.xml
 
 
-// File: ISampleIteratorStrategy_8cpp.xml
-
-
-// File: ISampleIteratorStrategy_8h.xml
-
-
 // File: Rotations_8cpp.xml
 %feature("docstring")  createProduct "IRotation* createProduct(const IRotation &left, const IRotation &right)
 
@@ -15288,12 +15349,6 @@ Returns concatenated rotation (first right, then left).
 ";
 
 
-// File: SampleTreeIterator_8cpp.xml
-
-
-// File: SampleTreeIterator_8h.xml
-
-
 // File: AnisoPyramid_8cpp.xml
 
 
@@ -15617,6 +15672,12 @@ Generate vertices of centered ellipse with given semi-axes at height z.
 // File: SizeDistributionModelsBuilder_8h.xml
 
 
+// File: SlicedParticleBuilder_8cpp.xml
+
+
+// File: SlicedParticleBuilder_8h.xml
+
+
 // File: StandardSimulations_8cpp.xml
 
 
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index 1d3d2f24c139dfb32a58a0759faf4d3316fe6028..8a190374a477e70261e7cc6c5457a1876afb6d7c 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -1927,7 +1927,14 @@ class IParameterized(INamed):
     __del__ = lambda self: None
 
     def parameterPool(self):
-        """parameterPool(IParameterized self) -> ParameterPool"""
+        """
+        parameterPool(IParameterized self) -> ParameterPool
+
+        ParameterPool* IParameterized::parameterPool() const
+
+        Returns pointer to the parameter pool. 
+
+        """
         return _libBornAgainCore.IParameterized_parameterPool(self)
 
 
@@ -1976,7 +1983,14 @@ class IParameterized(INamed):
 
 
     def parameter(self, name):
-        """parameter(IParameterized self, std::string const & name) -> RealParameter"""
+        """
+        parameter(IParameterized self, std::string const & name) -> RealParameter
+
+        RealParameter * IParameterized::parameter(const std::string &name) const
+
+        Returns parameter with given 'name'. 
+
+        """
         return _libBornAgainCore.IParameterized_parameter(self, name)
 
 
@@ -6162,7 +6176,7 @@ class FitParameter(libBornAgainFit.IFitParameter):
         __init__(FitParameter self, double value, AttLimits lim) -> FitParameter
         __init__(FitParameter self, double value) -> FitParameter
 
-        FitParameter::FitParameter(const std::string &pattern, double value, const AttLimits &lim=AttLimits::limitless(), double step=0.0)
+        FitParameter::FitParameter(double value, const AttLimits &lim=AttLimits::limitless(), double step=0.0)
 
         """
         this = _libBornAgainCore.new_FitParameter(*args)
@@ -7499,7 +7513,7 @@ class INodeVisitor(_object):
         visit(INodeVisitor self, SphericalDetector arg2)
         visit(INodeVisitor self, SquareLattice arg2)
 
-        virtual void INodeVisitor::visit(const DistributionCosine *)
+        virtual void INodeVisitor::visit(const SquareLattice *)
 
         """
         return _libBornAgainCore.INodeVisitor_visit(self, *args)
@@ -7533,11 +7547,21 @@ INodeVisitor_swigregister(INodeVisitor)
 
 
 def VisitNodesPreorder(node, visitor):
-    """VisitNodesPreorder(INode node, INodeVisitor visitor)"""
+    """
+    VisitNodesPreorder(INode node, INodeVisitor visitor)
+
+    BA_CORE_API_ void VisitNodesPreorder(const INode &node, INodeVisitor &visitor)
+
+    """
     return _libBornAgainCore.VisitNodesPreorder(node, visitor)
 
 def VisitNodesPostorder(node, visitor):
-    """VisitNodesPostorder(INode node, INodeVisitor visitor)"""
+    """
+    VisitNodesPostorder(INode node, INodeVisitor visitor)
+
+    BA_CORE_API_ void VisitNodesPostorder(const INode &node, INodeVisitor &visitor)
+
+    """
     return _libBornAgainCore.VisitNodesPostorder(node, visitor)
 class IClusteredParticles(ISample):
     """
@@ -22725,7 +22749,7 @@ class IntensityData(_object):
     """
 
 
-    Template class to store data of any type in multi-dimensional space.Used with data type double to hold simulation results. Used with data type  CumulativeValue in  IHistogram classes. Used with data type bool to hold a detector mask (-> class  DetectorMask)
+    Template class to store data of any type in multi-dimensional space.
 
     C++ includes: OutputData.h
 
@@ -23451,12 +23475,24 @@ class ParameterPool(ICloneable):
         """
         parameter(ParameterPool self, std::string const & name) -> RealParameter
         parameter(ParameterPool self, std::string const & name) -> RealParameter
+
+        const RealParameter * ParameterPool::parameter(const std::string &name) const
+
+        Returns parameter with given  name. 
+
         """
         return _libBornAgainCore.ParameterPool_parameter(self, *args)
 
 
     def parameters(self):
-        """parameters(ParameterPool self) -> std::vector< RealParameter *,std::allocator< RealParameter * > > const"""
+        """
+        parameters(ParameterPool self) -> std::vector< RealParameter *,std::allocator< RealParameter * > > const
+
+        const std::vector<RealParameter*> ParameterPool::parameters() const
+
+        Returns full vector of parameters. 
+
+        """
         return _libBornAgainCore.ParameterPool_parameters(self)
 
 
@@ -24682,7 +24718,14 @@ class RealParameter(IParameterReal):
 
 
     def value(self):
-        """value(RealParameter self) -> double"""
+        """
+        value(RealParameter self) -> double
+
+        double RealParameter::value() const
+
+        Returns value of wrapped parameter. 
+
+        """
         return _libBornAgainCore.RealParameter_value(self)
 
 
@@ -24697,7 +24740,12 @@ class RealParameter(IParameterReal):
 
 
     def limits(self):
-        """limits(RealParameter self) -> RealLimits"""
+        """
+        limits(RealParameter self) -> RealLimits
+
+        RealLimits RealParameter::limits() const 
+
+        """
         return _libBornAgainCore.RealParameter_limits(self)
 
 
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index c5cb1616abe8e9b0b868ad786c6f423a84310095..bdbe0ef8591688a4f397d3177b89565173befb97 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -5989,7 +5989,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/home/pospelov/software/local/share/swig/3.0.8/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig3.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
@@ -109857,7 +109857,14 @@ static PyMethodDef SwigMethods[] = {
 		"IParameterized::~IParameterized()\n"
 		"\n"
 		""},
-	 { (char *)"IParameterized_parameterPool", _wrap_IParameterized_parameterPool, METH_VARARGS, (char *)"IParameterized_parameterPool(IParameterized self) -> ParameterPool"},
+	 { (char *)"IParameterized_parameterPool", _wrap_IParameterized_parameterPool, METH_VARARGS, (char *)"\n"
+		"IParameterized_parameterPool(IParameterized self) -> ParameterPool\n"
+		"\n"
+		"ParameterPool* IParameterized::parameterPool() const\n"
+		"\n"
+		"Returns pointer to the parameter pool. \n"
+		"\n"
+		""},
 	 { (char *)"IParameterized_createParameterTree", _wrap_IParameterized_createParameterTree, METH_VARARGS, (char *)"\n"
 		"IParameterized_createParameterTree(IParameterized self) -> ParameterPool\n"
 		"\n"
@@ -109886,7 +109893,14 @@ static PyMethodDef SwigMethods[] = {
 		"void IParameterized::setParameterValue(const std::string &name, double value)\n"
 		"\n"
 		""},
-	 { (char *)"IParameterized_parameter", _wrap_IParameterized_parameter, METH_VARARGS, (char *)"IParameterized_parameter(IParameterized self, std::string const & name) -> RealParameter"},
+	 { (char *)"IParameterized_parameter", _wrap_IParameterized_parameter, METH_VARARGS, (char *)"\n"
+		"IParameterized_parameter(IParameterized self, std::string const & name) -> RealParameter\n"
+		"\n"
+		"RealParameter * IParameterized::parameter(const std::string &name) const\n"
+		"\n"
+		"Returns parameter with given 'name'. \n"
+		"\n"
+		""},
 	 { (char *)"IParameterized_onChange", _wrap_IParameterized_onChange, METH_VARARGS, (char *)"\n"
 		"IParameterized_onChange(IParameterized self)\n"
 		"\n"
@@ -111870,7 +111884,7 @@ static PyMethodDef SwigMethods[] = {
 		"FitParameter(double value, AttLimits lim)\n"
 		"new_FitParameter(double value) -> FitParameter\n"
 		"\n"
-		"FitParameter::FitParameter(const std::string &pattern, double value, const AttLimits &lim=AttLimits::limitless(), double step=0.0)\n"
+		"FitParameter::FitParameter(double value, const AttLimits &lim=AttLimits::limitless(), double step=0.0)\n"
 		"\n"
 		""},
 	 { (char *)"delete_FitParameter", _wrap_delete_FitParameter, METH_VARARGS, (char *)"\n"
@@ -112741,7 +112755,7 @@ static PyMethodDef SwigMethods[] = {
 		"visit(SphericalDetector arg2)\n"
 		"INodeVisitor_visit(INodeVisitor self, SquareLattice arg3)\n"
 		"\n"
-		"virtual void INodeVisitor::visit(const DistributionCosine *)\n"
+		"virtual void INodeVisitor::visit(const SquareLattice *)\n"
 		"\n"
 		""},
 	 { (char *)"INodeVisitor_depth", _wrap_INodeVisitor_depth, METH_VARARGS, (char *)"\n"
@@ -112761,8 +112775,18 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"INodeVisitor_swigregister", INodeVisitor_swigregister, METH_VARARGS, NULL},
-	 { (char *)"VisitNodesPreorder", _wrap_VisitNodesPreorder, METH_VARARGS, (char *)"VisitNodesPreorder(INode node, INodeVisitor visitor)"},
-	 { (char *)"VisitNodesPostorder", _wrap_VisitNodesPostorder, METH_VARARGS, (char *)"VisitNodesPostorder(INode node, INodeVisitor visitor)"},
+	 { (char *)"VisitNodesPreorder", _wrap_VisitNodesPreorder, METH_VARARGS, (char *)"\n"
+		"VisitNodesPreorder(INode node, INodeVisitor visitor)\n"
+		"\n"
+		"BA_CORE_API_ void VisitNodesPreorder(const INode &node, INodeVisitor &visitor)\n"
+		"\n"
+		""},
+	 { (char *)"VisitNodesPostorder", _wrap_VisitNodesPostorder, METH_VARARGS, (char *)"\n"
+		"VisitNodesPostorder(INode node, INodeVisitor visitor)\n"
+		"\n"
+		"BA_CORE_API_ void VisitNodesPostorder(const INode &node, INodeVisitor &visitor)\n"
+		"\n"
+		""},
 	 { (char *)"IClusteredParticles_clone", _wrap_IClusteredParticles_clone, METH_VARARGS, (char *)"\n"
 		"IClusteredParticles_clone(IClusteredParticles self) -> IClusteredParticles\n"
 		"\n"
@@ -121286,8 +121310,20 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"ParameterPool_parameter", _wrap_ParameterPool_parameter, METH_VARARGS, (char *)"\n"
 		"parameter(std::string const & name) -> RealParameter\n"
 		"ParameterPool_parameter(ParameterPool self, std::string const & name) -> RealParameter\n"
+		"\n"
+		"const RealParameter * ParameterPool::parameter(const std::string &name) const\n"
+		"\n"
+		"Returns parameter with given  name. \n"
+		"\n"
+		""},
+	 { (char *)"ParameterPool_parameters", _wrap_ParameterPool_parameters, METH_VARARGS, (char *)"\n"
+		"ParameterPool_parameters(ParameterPool self) -> std::vector< RealParameter *,std::allocator< RealParameter * > > const\n"
+		"\n"
+		"const std::vector<RealParameter*> ParameterPool::parameters() const\n"
+		"\n"
+		"Returns full vector of parameters. \n"
+		"\n"
 		""},
-	 { (char *)"ParameterPool_parameters", _wrap_ParameterPool_parameters, METH_VARARGS, (char *)"ParameterPool_parameters(ParameterPool self) -> std::vector< RealParameter *,std::allocator< RealParameter * > > const"},
 	 { (char *)"ParameterPool_getMatchedParameters", _wrap_ParameterPool_getMatchedParameters, METH_VARARGS, (char *)"\n"
 		"ParameterPool_getMatchedParameters(ParameterPool self, std::string const & wildcards) -> std::vector< RealParameter *,std::allocator< RealParameter * > >\n"
 		"\n"
@@ -121914,14 +121950,26 @@ static PyMethodDef SwigMethods[] = {
 		"Sets value of wrapped parameter and emit signal. \n"
 		"\n"
 		""},
-	 { (char *)"RealParameter_value", _wrap_RealParameter_value, METH_VARARGS, (char *)"RealParameter_value(RealParameter self) -> double"},
+	 { (char *)"RealParameter_value", _wrap_RealParameter_value, METH_VARARGS, (char *)"\n"
+		"RealParameter_value(RealParameter self) -> double\n"
+		"\n"
+		"double RealParameter::value() const\n"
+		"\n"
+		"Returns value of wrapped parameter. \n"
+		"\n"
+		""},
 	 { (char *)"RealParameter_setLimits", _wrap_RealParameter_setLimits, METH_VARARGS, (char *)"\n"
 		"RealParameter_setLimits(RealParameter self, RealLimits limits) -> RealParameter\n"
 		"\n"
 		"RealParameter& RealParameter::setLimits(const RealLimits &limits)\n"
 		"\n"
 		""},
-	 { (char *)"RealParameter_limits", _wrap_RealParameter_limits, METH_VARARGS, (char *)"RealParameter_limits(RealParameter self) -> RealLimits"},
+	 { (char *)"RealParameter_limits", _wrap_RealParameter_limits, METH_VARARGS, (char *)"\n"
+		"RealParameter_limits(RealParameter self) -> RealLimits\n"
+		"\n"
+		"RealLimits RealParameter::limits() const \n"
+		"\n"
+		""},
 	 { (char *)"RealParameter_setLimited", _wrap_RealParameter_setLimited, METH_VARARGS, (char *)"\n"
 		"RealParameter_setLimited(RealParameter self, double lower, double upper) -> RealParameter\n"
 		"\n"
diff --git a/auto/Wrap/libBornAgainFit_wrap.cpp b/auto/Wrap/libBornAgainFit_wrap.cpp
index 980a19744c597e8ce4355eef1f3bbad544cc94ca..182abc5541c99f92f98a78439a7f630a79c6657c 100644
--- a/auto/Wrap/libBornAgainFit_wrap.cpp
+++ b/auto/Wrap/libBornAgainFit_wrap.cpp
@@ -5627,7 +5627,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/home/pospelov/software/local/share/swig/3.0.8/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig3.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&