diff --git a/Core/Computation/DelayedProgressCounter.cpp b/Base/Progress/DelayedProgressCounter.cpp
similarity index 84%
rename from Core/Computation/DelayedProgressCounter.cpp
rename to Base/Progress/DelayedProgressCounter.cpp
index 6946615c747431356f65037e2ac15232daf2b041..44e55a926acadba0f28bcdfa9d4ac1aa55b0209b 100644
--- a/Core/Computation/DelayedProgressCounter.cpp
+++ b/Base/Progress/DelayedProgressCounter.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Computation/DelayedProgressCounter.cpp
+//! @file      Base/Progress/DelayedProgressCounter.cpp
 //! @brief     Implements class DelayedProgressCounter.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Core/Computation/DelayedProgressCounter.h"
-#include "Core/Computation/ProgressHandler.h"
+#include "Base/Progress/DelayedProgressCounter.h"
+#include "Base/Progress/ProgressHandler.h"
 
 DelayedProgressCounter::DelayedProgressCounter(ProgressHandler* p_progress, size_t interval)
     : m_progress(p_progress), m_interval(interval), m_count(0)
diff --git a/Core/Computation/DelayedProgressCounter.h b/Base/Progress/DelayedProgressCounter.h
similarity index 95%
rename from Core/Computation/DelayedProgressCounter.h
rename to Base/Progress/DelayedProgressCounter.h
index c45e33fc0958c63a38bcc744f997ecb7fb0661a8..aa71f1013b8c62f6583224c7eef84fd5ae2cd65d 100644
--- a/Core/Computation/DelayedProgressCounter.h
+++ b/Base/Progress/DelayedProgressCounter.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Computation/DelayedProgressCounter.h
+//! @file      Base/Progress/DelayedProgressCounter.h
 //! @brief     Defines class DelayedProgressCounter.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/Computation/ProgressHandler.cpp b/Base/Progress/ProgressHandler.cpp
similarity index 94%
rename from Core/Computation/ProgressHandler.cpp
rename to Base/Progress/ProgressHandler.cpp
index 56b42337b74feea19f3df2e834b2fa8a5737f793..38dcafeb6970545958e76108a91d2a07f7ef7bf9 100644
--- a/Core/Computation/ProgressHandler.cpp
+++ b/Base/Progress/ProgressHandler.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Computation/ProgressHandler.cpp
+//! @file      Base/Progress/ProgressHandler.cpp
 //! @brief     Implements class ProgressHandler.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Core/Computation/ProgressHandler.h"
+#include "Base/Progress/ProgressHandler.h"
 #include <mutex>
 #include <stdexcept>
 
diff --git a/Core/Computation/ProgressHandler.h b/Base/Progress/ProgressHandler.h
similarity index 97%
rename from Core/Computation/ProgressHandler.h
rename to Base/Progress/ProgressHandler.h
index 4ed9d6394d825c98911d1ab320ef984b4a13d0f4..be57a632cf30074735f34f0ff787e38cbce7948e 100644
--- a/Core/Computation/ProgressHandler.h
+++ b/Base/Progress/ProgressHandler.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Computation/ProgressHandler.h
+//! @file      Base/Progress/ProgressHandler.h
 //! @brief     Defines class ProgressHandler.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/Computation/DWBAComputation.cpp b/Core/Computation/DWBAComputation.cpp
index e1a25a622bfbff760caba37b50178be795a24fc7..1331c2ae0f81664dbd8f9350b0ea7a23212c9da8 100644
--- a/Core/Computation/DWBAComputation.cpp
+++ b/Core/Computation/DWBAComputation.cpp
@@ -18,7 +18,7 @@
 #include "Core/Computation/ParticleLayoutComputation.h"
 #include "Sample/Fresnel/ProcessedLayout.h"
 #include "Sample/Fresnel/ProcessedSample.h"
-#include "Core/Computation/ProgressHandler.h"
+#include "Base/Progress/ProgressHandler.h"
 #include "Core/Computation/RoughMultiLayerComputation.h"
 #include "Sample/Fresnel/IFresnelMap.h"
 #include "Sample/Multilayer/MultiLayer.h"
diff --git a/Core/Computation/DWBASingleComputation.cpp b/Core/Computation/DWBASingleComputation.cpp
index fc183db8492c4f50c1ae52515e69cae239d25371..1a14aee8413e8c1121639a7ee3187f4a98c64503 100644
--- a/Core/Computation/DWBASingleComputation.cpp
+++ b/Core/Computation/DWBASingleComputation.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "Core/Computation/DWBASingleComputation.h"
-#include "Core/Computation/DelayedProgressCounter.h"
+#include "Base/Progress/DelayedProgressCounter.h"
 #include "Core/Computation/GISASSpecularComputation.h"
 #include "Core/Computation/ParticleLayoutComputation.h"
 #include "Core/Computation/RoughMultiLayerComputation.h"
diff --git a/Core/Computation/DepthProbeComputation.cpp b/Core/Computation/DepthProbeComputation.cpp
index 99d3e429833d6d1971ce19328784c04e4cf32ce8..4808781bb70a80d4a8760df10a62657e0ec7c49b 100644
--- a/Core/Computation/DepthProbeComputation.cpp
+++ b/Core/Computation/DepthProbeComputation.cpp
@@ -14,7 +14,7 @@
 
 #include "Core/Computation/DepthProbeComputation.h"
 #include "Core/Computation/DepthProbeElement.h"
-#include "Core/Computation/ProgressHandler.h"
+#include "Base/Progress/ProgressHandler.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 static_assert(std::is_copy_constructible<DepthProbeComputation>::value == false,
diff --git a/Core/Computation/DepthProbeComputationTerm.cpp b/Core/Computation/DepthProbeComputationTerm.cpp
index 1b061e9ae2ac8cf0d68c41b4f8fade0d4b4975c6..a0a4966ef4dd2c5aa233cb01a2b7ebdf1a5e9d20 100644
--- a/Core/Computation/DepthProbeComputationTerm.cpp
+++ b/Core/Computation/DepthProbeComputationTerm.cpp
@@ -14,7 +14,7 @@
 
 #include "Core/Computation/DepthProbeComputationTerm.h"
 #include "Base/Axis/IAxis.h"
-#include "Core/Computation/DelayedProgressCounter.h"
+#include "Base/Progress/DelayedProgressCounter.h"
 #include "Core/Computation/DepthProbeElement.h"
 #include "Sample/Fresnel/ProcessedSample.h"
 #include "Sample/Fresnel/IFresnelMap.h"
diff --git a/Core/Computation/IComputation.cpp b/Core/Computation/IComputation.cpp
index 5ecef5ed13dc3251a09cd07687f8e42b7a09cd6a..2ab92a94d357685ca9780d5f1a00bd7809f82d75 100644
--- a/Core/Computation/IComputation.cpp
+++ b/Core/Computation/IComputation.cpp
@@ -15,7 +15,7 @@
 #include "Core/Computation/IComputation.h"
 #include "Base/Pixel/SimulationElement.h"
 #include "Sample/Fresnel/ProcessedSample.h"
-#include "Core/Computation/ProgressHandler.h"
+#include "Base/Progress/ProgressHandler.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 IComputation::IComputation(const MultiLayer& sample, const SimulationOptions& options,
diff --git a/Core/Simulation/ISimulation.h b/Core/Simulation/ISimulation.h
index 90ce97bd4579cc022e3d9275a31b44a1dc2a0e6c..98661fd882c6cfa7b608243dbed313e4b372dcb4 100644
--- a/Core/Simulation/ISimulation.h
+++ b/Core/Simulation/ISimulation.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_SIMULATION_ISIMULATION_H
 #define BORNAGAIN_CORE_SIMULATION_ISIMULATION_H
 
-#include "Core/Computation/ProgressHandler.h"
+#include "Base/Progress/ProgressHandler.h"
 #include "Device/Detector/IDetector2D.h"
 #include "Device/Histo/SimulationResult.h"
 #include "Device/Instrument/Instrument.h"
diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp
index 6364c8e893a1b5dc207a760cdfb40da409cc4a36..072ab3ec92e10515d4b1f82de7d1396df4ce9b81 100644
--- a/Core/Simulation/SpecularSimulation.cpp
+++ b/Core/Simulation/SpecularSimulation.cpp
@@ -15,7 +15,7 @@
 #include "Core/Simulation/SpecularSimulation.h"
 #include "Base/Axis/PointwiseAxis.h"
 #include "Core/Computation/IBackground.h"
-#include "Core/Computation/SpecularComputation.h"
+#include "Core/XX/SpecularComputation.h"
 #include "Core/Scan/AngularSpecScan.h"
 #include "Core/Scan/SpecularSimulationElement.h"
 #include "Core/Scan/UnitConverter1D.h"
diff --git a/Core/Computation/SpecularComputation.cpp b/Core/XX/SpecularComputation.cpp
similarity index 91%
rename from Core/Computation/SpecularComputation.cpp
rename to Core/XX/SpecularComputation.cpp
index 66b434baeeb1265781d62f67802f716644274bf4..db8b6db75a63ee489ba61b1bf03caeb280e01639 100644
--- a/Core/Computation/SpecularComputation.cpp
+++ b/Core/XX/SpecularComputation.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Computation/SpecularComputation.cpp
+//! @file      Core/XX/SpecularComputation.cpp
 //! @brief     Implements class SpecularComputation.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Core/Computation/SpecularComputation.h"
+#include "Core/XX/SpecularComputation.h"
 #include "Sample/Fresnel/ProcessedSample.h"
-#include "Core/Computation/ProgressHandler.h"
-#include "Core/Computation/SpecularComputationTerm.h"
+#include "Base/Progress/ProgressHandler.h"
+#include "Core/XX/SpecularComputationTerm.h"
 #include "Sample/Specular/SpecularStrategyBuilder.h"
 #include "Core/Scan/SpecularSimulationElement.h"
 
diff --git a/Core/Computation/SpecularComputation.h b/Core/XX/SpecularComputation.h
similarity index 96%
rename from Core/Computation/SpecularComputation.h
rename to Core/XX/SpecularComputation.h
index 3e9f9d58d2b9ab2c95e17770ae99f14b66ff9a75..1248752739e679eba2bdecdec6631b87227e8af4 100644
--- a/Core/Computation/SpecularComputation.h
+++ b/Core/XX/SpecularComputation.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Computation/SpecularComputation.h
+//! @file      Core/XX/SpecularComputation.h
 //! @brief     Defines class SpecularComputation.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/Computation/SpecularComputationTerm.cpp b/Core/XX/SpecularComputationTerm.cpp
similarity index 95%
rename from Core/Computation/SpecularComputationTerm.cpp
rename to Core/XX/SpecularComputationTerm.cpp
index f2cd0391d67a4459f03dbbcf018476824a1b90b2..aad4c18f83cb6a36968e7e4a368c8f4c405a08a2 100644
--- a/Core/Computation/SpecularComputationTerm.cpp
+++ b/Core/XX/SpecularComputationTerm.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Computation/SpecularComputationTerm.cpp
+//! @file      Core/XX/SpecularComputationTerm.cpp
 //! @brief     Implements functor SpecularComputationTerm.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Core/Computation/SpecularComputationTerm.h"
-#include "Core/Computation/DelayedProgressCounter.h"
+#include "Core/XX/SpecularComputationTerm.h"
+#include "Base/Progress/DelayedProgressCounter.h"
 #include "Core/Scan/SpecularSimulationElement.h"
 #include "Sample/RT/ILayerRTCoefficients.h"
 
diff --git a/Core/Computation/SpecularComputationTerm.h b/Core/XX/SpecularComputationTerm.h
similarity index 97%
rename from Core/Computation/SpecularComputationTerm.h
rename to Core/XX/SpecularComputationTerm.h
index 04f125ac261cb8926646d078e7c26d996e3fabbb..d396d057557a379cdbeaf7121044e2dae8a0fd8b 100644
--- a/Core/Computation/SpecularComputationTerm.h
+++ b/Core/XX/SpecularComputationTerm.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Computation/SpecularComputationTerm.h
+//! @file      Core/XX/SpecularComputationTerm.h
 //! @brief     Defines classes SpecularComputationTerm, SpecularScalarTerm, SpecularMatrixTerm
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/auto/Wrap/doxygenBase.i b/auto/Wrap/doxygenBase.i
index cc0a38f05397b628bcd19a5ef16e9e13b3ec0744..426c30ae010ae04e1f5b95aecefae655cf596d01 100644
--- a/auto/Wrap/doxygenBase.i
+++ b/auto/Wrap/doxygenBase.i
@@ -376,6 +376,26 @@ Creates a new clipped axis.
 ";
 
 
+// File: classDelayedProgressCounter.xml
+%feature("docstring") DelayedProgressCounter "
+
+Counter for reporting progress (with delay interval) in a threaded computation.
+
+C++ includes: DelayedProgressCounter.h
+";
+
+%feature("docstring")  DelayedProgressCounter::DelayedProgressCounter "DelayedProgressCounter::DelayedProgressCounter(ProgressHandler *p_progress, size_t interval)
+";
+
+%feature("docstring")  DelayedProgressCounter::~DelayedProgressCounter "DelayedProgressCounter::~DelayedProgressCounter()
+";
+
+%feature("docstring")  DelayedProgressCounter::stepProgress "void DelayedProgressCounter::stepProgress()
+
+Increments inner counter; at regular intervals updates progress handler. 
+";
+
+
 // File: classExceptions_1_1DomainErrorException.xml
 %feature("docstring") Exceptions::DomainErrorException "";
 
@@ -784,6 +804,38 @@ Gets the polarization analyzer operator (in spin basis along z-axis)
 ";
 
 
+// File: classProgressHandler.xml
+%feature("docstring") ProgressHandler "
+
+Maintains information about progress of a computation. Owner is the computation, which periodically calls the thread-safe function incrementDone(..). An application (GUI or script) may subscribe(..) to be informed about progress. It is then periodically called back by inform(..). The return value of inform(..) can be used to request termination of the computation.
+
+C++ includes: ProgressHandler.h
+";
+
+%feature("docstring")  ProgressHandler::ProgressHandler "ProgressHandler::ProgressHandler()
+";
+
+%feature("docstring")  ProgressHandler::ProgressHandler "ProgressHandler::ProgressHandler(const ProgressHandler &other)
+";
+
+%feature("docstring")  ProgressHandler::subscribe "void ProgressHandler::subscribe(ProgressHandler::Callback_t callback)
+";
+
+%feature("docstring")  ProgressHandler::reset "void ProgressHandler::reset()
+";
+
+%feature("docstring")  ProgressHandler::setExpectedNTicks "void ProgressHandler::setExpectedNTicks(size_t n)
+";
+
+%feature("docstring")  ProgressHandler::incrementDone "void ProgressHandler::incrementDone(size_t ticks_done)
+
+Increments number of completed computation steps (ticks). Performs callback (method m_inform) to inform the subscriber about the state of the computation and to obtain as return value a flag that indicates whether to continue the computation. 
+";
+
+%feature("docstring")  ProgressHandler::alive "bool ProgressHandler::alive()
+";
+
+
 // File: classRealIntegrator.xml
 %feature("docstring") RealIntegrator "
 
@@ -1137,7 +1189,7 @@ Creates a new clipped axis.
 ";
 
 
-// File: namespace_0d30.xml
+// File: namespace_0d34.xml
 
 
 // File: namespacealgo.xml
@@ -1513,6 +1565,18 @@ global helper function for comparison of axes
 // File: SimulationElement_8h.xml
 
 
+// File: DelayedProgressCounter_8cpp.xml
+
+
+// File: DelayedProgressCounter_8h.xml
+
+
+// File: ProgressHandler_8cpp.xml
+
+
+// File: ProgressHandler_8h.xml
+
+
 // File: CloneableVector_8h.xml
 
 
@@ -1645,6 +1709,9 @@ Creates a vector<double> as a wavevector with given wavelength and angles. Speci
 // File: dir_ec49f598ebf9445998ce86a14e7c0417.xml
 
 
+// File: dir_218b7a826f06e97e45b5c3355c035233.xml
+
+
 // File: dir_38a5ec4dd9a60e867dacdb92549a13e0.xml
 
 
diff --git a/auto/Wrap/doxygenCore.i b/auto/Wrap/doxygenCore.i
index 9da439c9a8fe4f88549f41a0e770214ef49840c7..23f2a5f44cf0fa1f608d1446a23d2abd26d2856f 100644
--- a/auto/Wrap/doxygenCore.i
+++ b/auto/Wrap/doxygenCore.i
@@ -237,26 +237,6 @@ C++ includes: ConstantBackground.h
 ";
 
 
-// File: classDelayedProgressCounter.xml
-%feature("docstring") DelayedProgressCounter "
-
-Counter for reporting progress (with delay interval) in a threaded computation.
-
-C++ includes: DelayedProgressCounter.h
-";
-
-%feature("docstring")  DelayedProgressCounter::DelayedProgressCounter "DelayedProgressCounter::DelayedProgressCounter(ProgressHandler *p_progress, size_t interval)
-";
-
-%feature("docstring")  DelayedProgressCounter::~DelayedProgressCounter "DelayedProgressCounter::~DelayedProgressCounter()
-";
-
-%feature("docstring")  DelayedProgressCounter::stepProgress "void DelayedProgressCounter::stepProgress()
-
-Increments inner counter; at regular intervals updates progress handler. 
-";
-
-
 // File: classDepthProbeComputation.xml
 %feature("docstring") DepthProbeComputation "
 
@@ -821,7 +801,7 @@ C++ includes: IBackground.h
 // File: classIComputation.xml
 %feature("docstring") IComputation "
 
-Interface for a single-threaded computation with given range of SimulationElements and  ProgressHandler.
+Interface for a single-threaded computation with given range of SimulationElements and ProgressHandler.
 
 Controlled by the multi-threading machinery in ISimulation::runSingleSimulation().
 
@@ -1545,99 +1525,6 @@ C++ includes: PoissonNoiseBackground.h
 ";
 
 
-// File: classProcessedLayout.xml
-%feature("docstring") ProcessedLayout "
-
-Data structure that contains preprocessed data for a single layout.
-
-If particles in the layout crossed the limits of the layer slices, these particles will be sliced themselves.
-
-C++ includes: ProcessedLayout.h
-";
-
-%feature("docstring")  ProcessedLayout::ProcessedLayout "ProcessedLayout::ProcessedLayout(const ParticleLayout &layout, const std::vector< Slice > &slices, double z_ref, const IFresnelMap *p_fresnel_map, bool polarized)
-";
-
-%feature("docstring")  ProcessedLayout::ProcessedLayout "ProcessedLayout::ProcessedLayout(ProcessedLayout &&other)
-";
-
-%feature("docstring")  ProcessedLayout::~ProcessedLayout "ProcessedLayout::~ProcessedLayout()
-";
-
-%feature("docstring")  ProcessedLayout::numberOfSlices "size_t ProcessedLayout::numberOfSlices() const
-";
-
-%feature("docstring")  ProcessedLayout::surfaceDensity "double ProcessedLayout::surfaceDensity() const
-";
-
-%feature("docstring")  ProcessedLayout::formFactorList "const std::vector< FormFactorCoherentSum > & ProcessedLayout::formFactorList() const
-";
-
-%feature("docstring")  ProcessedLayout::interferenceFunction "const IInterferenceFunction * ProcessedLayout::interferenceFunction() const
-";
-
-%feature("docstring")  ProcessedLayout::regionMap "std::map< size_t, std::vector< HomogeneousRegion > > ProcessedLayout::regionMap() const
-";
-
-
-// File: classProcessedSample.xml
-%feature("docstring") ProcessedSample "
-
-Data structure that contains all the necessary data for scattering calculations.
-
-If the usage of average materials is requested, layers and particles are sliced into multiple slices and the average material is calculated for each slice.
-
-C++ includes: ProcessedSample.h
-";
-
-%feature("docstring")  ProcessedSample::ProcessedSample "ProcessedSample::ProcessedSample(const MultiLayer &sample, const SimulationOptions &options)
-";
-
-%feature("docstring")  ProcessedSample::~ProcessedSample "ProcessedSample::~ProcessedSample()
-";
-
-%feature("docstring")  ProcessedSample::numberOfSlices "size_t ProcessedSample::numberOfSlices() const
-";
-
-%feature("docstring")  ProcessedSample::slices "const std::vector< Slice > & ProcessedSample::slices() const
-";
-
-%feature("docstring")  ProcessedSample::averageSlices "const std::vector< Slice > & ProcessedSample::averageSlices() const
-";
-
-%feature("docstring")  ProcessedSample::layouts "const std::vector< ProcessedLayout > & ProcessedSample::layouts() const
-";
-
-%feature("docstring")  ProcessedSample::fresnelMap "const IFresnelMap * ProcessedSample::fresnelMap() const
-";
-
-%feature("docstring")  ProcessedSample::crossCorrelationLength "double ProcessedSample::crossCorrelationLength() const
-";
-
-%feature("docstring")  ProcessedSample::externalField "kvector_t ProcessedSample::externalField() const
-";
-
-%feature("docstring")  ProcessedSample::bottomRoughness "const LayerRoughness * ProcessedSample::bottomRoughness(size_t i) const
-";
-
-%feature("docstring")  ProcessedSample::sliceTopZ "double ProcessedSample::sliceTopZ(size_t i) const
-";
-
-%feature("docstring")  ProcessedSample::sliceBottomZ "double ProcessedSample::sliceBottomZ(size_t i) const
-";
-
-%feature("docstring")  ProcessedSample::containsMagneticMaterial "bool ProcessedSample::containsMagneticMaterial() const
-";
-
-%feature("docstring")  ProcessedSample::hasRoughness "bool ProcessedSample::hasRoughness() const
-";
-
-%feature("docstring")  ProcessedSample::crossCorrSpectralFun "double ProcessedSample::crossCorrSpectralFun(const kvector_t kvec, size_t j, size_t k) const
-
-Fourier transform of the correlation function of roughnesses between the interfaces 
-";
-
-
 // File: classProfileHelper.xml
 %feature("docstring") ProfileHelper "
 
@@ -1661,38 +1548,6 @@ C++ includes: ProfileHelper.h
 ";
 
 
-// File: classProgressHandler.xml
-%feature("docstring") ProgressHandler "
-
-Maintains information about progress of a computation. Owner is the computation, which periodically calls the thread-safe function incrementDone(..). An application (GUI or script) may subscribe(..) to be informed about progress. It is then periodically called back by inform(..). The return value of inform(..) can be used to request termination of the computation.
-
-C++ includes: ProgressHandler.h
-";
-
-%feature("docstring")  ProgressHandler::ProgressHandler "ProgressHandler::ProgressHandler()
-";
-
-%feature("docstring")  ProgressHandler::ProgressHandler "ProgressHandler::ProgressHandler(const ProgressHandler &other)
-";
-
-%feature("docstring")  ProgressHandler::subscribe "void ProgressHandler::subscribe(ProgressHandler::Callback_t callback)
-";
-
-%feature("docstring")  ProgressHandler::reset "void ProgressHandler::reset()
-";
-
-%feature("docstring")  ProgressHandler::setExpectedNTicks "void ProgressHandler::setExpectedNTicks(size_t n)
-";
-
-%feature("docstring")  ProgressHandler::incrementDone "void ProgressHandler::incrementDone(size_t ticks_done)
-
-Increments number of completed computation steps (ticks). Performs callback (method m_inform) to inform the subscriber about the state of the computation and to obtain as return value a flag that indicates whether to continue the computation. 
-";
-
-%feature("docstring")  ProgressHandler::alive "bool ProgressHandler::alive()
-";
-
-
 // File: classPyBuilderCallback.xml
 %feature("docstring") PyBuilderCallback "
 
@@ -2366,10 +2221,6 @@ Returns kz values for Abeles computation of reflection/transition coefficients.
 ";
 
 
-// File: classSpecularStrategyBuilder.xml
-%feature("docstring") SpecularStrategyBuilder "";
-
-
 // File: classUnitConverter1D.xml
 %feature("docstring") UnitConverter1D "
 
@@ -2481,58 +2332,52 @@ Returns default units to convert to.
 ";
 
 
-// File: namespace_0d23.xml
+// File: namespace_0d21.xml
 
 
-// File: namespace_0d27.xml
-
+// File: namespace_0d25.xml
 
-// File: namespace_0d29.xml
 
-
-// File: namespace_0d31.xml
+// File: namespace_0d27.xml
 
 
-// File: namespace_0d35.xml
+// File: namespace_0d29.xml
 
 
-// File: namespace_0d39.xml
+// File: namespace_0d37.xml
 
 
-// File: namespace_0d43.xml
+// File: namespace_0d42.xml
 
 
 // File: namespace_0d51.xml
 
 
-// File: namespace_0d56.xml
+// File: namespace_0d53.xml
 
 
-// File: namespace_0d65.xml
+// File: namespace_0d57.xml
 
 
-// File: namespace_0d67.xml
+// File: namespace_0d59.xml
 
 
-// File: namespace_0d71.xml
+// File: namespace_0d66.xml
 
 
-// File: namespace_0d73.xml
+// File: namespace_0d68.xml
 
 
-// File: namespace_0d80.xml
+// File: namespace_0d72.xml
 
 
 // File: namespace_0d82.xml
 
 
-// File: namespace_0d86.xml
-
+// File: namespace_0d84.xml
 
-// File: namespace_0d96.xml
 
-
-// File: namespace_0d98.xml
+// File: namespace_0d90.xml
 
 
 // File: namespaceExportToPython.xml
@@ -2814,12 +2659,6 @@ Helper factory function to use in  GISASSimulation. Depending on the type of det
 // File: ConstantBackground_8h.xml
 
 
-// File: DelayedProgressCounter_8cpp.xml
-
-
-// File: DelayedProgressCounter_8h.xml
-
-
 // File: DepthProbeComputation_8cpp.xml
 
 
@@ -2914,54 +2753,18 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: PoissonNoiseBackground_8h.xml
 
 
-// File: ProcessedLayout_8cpp.xml
-
-
-// File: ProcessedLayout_8h.xml
-
-
-// File: ProcessedSample_8cpp.xml
-
-
-// File: ProcessedSample_8h.xml
-
-
 // File: ProfileHelper_8cpp.xml
 
 
 // File: ProfileHelper_8h.xml
 
 
-// File: ProgressHandler_8cpp.xml
-
-
-// File: ProgressHandler_8h.xml
-
-
 // File: RoughMultiLayerComputation_8cpp.xml
 
 
 // File: RoughMultiLayerComputation_8h.xml
 
 
-// File: SpecularComputation_8cpp.xml
-
-
-// File: SpecularComputation_8h.xml
-
-
-// File: SpecularComputationTerm_8cpp.xml
-
-
-// File: SpecularComputationTerm_8h.xml
-
-
-// File: SpecularStrategyBuilder_8cpp.xml
-
-
-// File: SpecularStrategyBuilder_8h.xml
-
-
 // File: ExportToPython_8cpp.xml
 
 
@@ -3139,6 +2942,18 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: UnitConverterUtils_8h.xml
 
 
+// File: SpecularComputation_8cpp.xml
+
+
+// File: SpecularComputation_8h.xml
+
+
+// File: SpecularComputationTerm_8cpp.xml
+
+
+// File: SpecularComputationTerm_8h.xml
+
+
 // File: dir_7de90f35ae2a2c7b4fa95823d333cc96.xml
 
 
@@ -3156,3 +2971,6 @@ Generate z values (equidistant) for use in MaterialProfile.
 
 // File: dir_d7a24665a95cfc15308ebd7b07b5ebd6.xml
 
+
+// File: dir_49930062dfb561cacffacc2dcfa9823e.xml
+
diff --git a/auto/Wrap/doxygenSample.i b/auto/Wrap/doxygenSample.i
index 55b5904278ccac32ab85cb7a81915129e2b4726f..de6b537b076e6df6b78b397857c3f3560ea78f04 100644
--- a/auto/Wrap/doxygenSample.i
+++ b/auto/Wrap/doxygenSample.i
@@ -6349,6 +6349,99 @@ needed for topZ, bottomZ computation
 ";
 
 
+// File: classProcessedLayout.xml
+%feature("docstring") ProcessedLayout "
+
+Data structure that contains preprocessed data for a single layout.
+
+If particles in the layout crossed the limits of the layer slices, these particles will be sliced themselves.
+
+C++ includes: ProcessedLayout.h
+";
+
+%feature("docstring")  ProcessedLayout::ProcessedLayout "ProcessedLayout::ProcessedLayout(const ParticleLayout &layout, const std::vector< Slice > &slices, double z_ref, const IFresnelMap *p_fresnel_map, bool polarized)
+";
+
+%feature("docstring")  ProcessedLayout::ProcessedLayout "ProcessedLayout::ProcessedLayout(ProcessedLayout &&other)
+";
+
+%feature("docstring")  ProcessedLayout::~ProcessedLayout "ProcessedLayout::~ProcessedLayout()
+";
+
+%feature("docstring")  ProcessedLayout::numberOfSlices "size_t ProcessedLayout::numberOfSlices() const
+";
+
+%feature("docstring")  ProcessedLayout::surfaceDensity "double ProcessedLayout::surfaceDensity() const
+";
+
+%feature("docstring")  ProcessedLayout::formFactorList "const std::vector< FormFactorCoherentSum > & ProcessedLayout::formFactorList() const
+";
+
+%feature("docstring")  ProcessedLayout::interferenceFunction "const IInterferenceFunction * ProcessedLayout::interferenceFunction() const
+";
+
+%feature("docstring")  ProcessedLayout::regionMap "std::map< size_t, std::vector< HomogeneousRegion > > ProcessedLayout::regionMap() const
+";
+
+
+// File: classProcessedSample.xml
+%feature("docstring") ProcessedSample "
+
+Data structure that contains all the necessary data for scattering calculations.
+
+If the usage of average materials is requested, layers and particles are sliced into multiple slices and the average material is calculated for each slice.
+
+C++ includes: ProcessedSample.h
+";
+
+%feature("docstring")  ProcessedSample::ProcessedSample "ProcessedSample::ProcessedSample(const MultiLayer &sample, const SimulationOptions &options)
+";
+
+%feature("docstring")  ProcessedSample::~ProcessedSample "ProcessedSample::~ProcessedSample()
+";
+
+%feature("docstring")  ProcessedSample::numberOfSlices "size_t ProcessedSample::numberOfSlices() const
+";
+
+%feature("docstring")  ProcessedSample::slices "const std::vector< Slice > & ProcessedSample::slices() const
+";
+
+%feature("docstring")  ProcessedSample::averageSlices "const std::vector< Slice > & ProcessedSample::averageSlices() const
+";
+
+%feature("docstring")  ProcessedSample::layouts "const std::vector< ProcessedLayout > & ProcessedSample::layouts() const
+";
+
+%feature("docstring")  ProcessedSample::fresnelMap "const IFresnelMap * ProcessedSample::fresnelMap() const
+";
+
+%feature("docstring")  ProcessedSample::crossCorrelationLength "double ProcessedSample::crossCorrelationLength() const
+";
+
+%feature("docstring")  ProcessedSample::externalField "kvector_t ProcessedSample::externalField() const
+";
+
+%feature("docstring")  ProcessedSample::bottomRoughness "const LayerRoughness * ProcessedSample::bottomRoughness(size_t i) const
+";
+
+%feature("docstring")  ProcessedSample::sliceTopZ "double ProcessedSample::sliceTopZ(size_t i) const
+";
+
+%feature("docstring")  ProcessedSample::sliceBottomZ "double ProcessedSample::sliceBottomZ(size_t i) const
+";
+
+%feature("docstring")  ProcessedSample::containsMagneticMaterial "bool ProcessedSample::containsMagneticMaterial() const
+";
+
+%feature("docstring")  ProcessedSample::hasRoughness "bool ProcessedSample::hasRoughness() const
+";
+
+%feature("docstring")  ProcessedSample::crossCorrSpectralFun "double ProcessedSample::crossCorrSpectralFun(const kvector_t kvec, size_t j, size_t k) const
+
+Fourier transform of the correlation function of roughnesses between the interfaces 
+";
+
+
 // File: classRadialParaCrystalBuilder.xml
 %feature("docstring") RadialParaCrystalBuilder "
 
@@ -7265,6 +7358,10 @@ C++ includes: SpecularScalarTanhStrategy.h
 ";
 
 
+// File: classSpecularStrategyBuilder.xml
+%feature("docstring") SpecularStrategyBuilder "";
+
+
 // File: classSpheresWithLimitsDistributionBuilder.xml
 %feature("docstring") SpheresWithLimitsDistributionBuilder "
 
@@ -7514,13 +7611,10 @@ C++ includes: ZLimits.h
 ";
 
 
-// File: namespace_0d112.xml
+// File: namespace_0d116.xml
 
 
-// File: namespace_0d115.xml
-
-
-// File: namespace_0d139.xml
+// File: namespace_0d119.xml
 
 
 // File: namespace_0d143.xml
@@ -7529,10 +7623,7 @@ C++ includes: ZLimits.h
 // File: namespace_0d147.xml
 
 
-// File: namespace_0d157.xml
-
-
-// File: namespace_0d159.xml
+// File: namespace_0d151.xml
 
 
 // File: namespace_0d16.xml
@@ -7541,43 +7632,43 @@ C++ includes: ZLimits.h
 // File: namespace_0d161.xml
 
 
-// File: namespace_0d171.xml
+// File: namespace_0d163.xml
 
 
-// File: namespace_0d192.xml
+// File: namespace_0d165.xml
 
 
-// File: namespace_0d194.xml
+// File: namespace_0d175.xml
 
 
-// File: namespace_0d2.xml
+// File: namespace_0d196.xml
 
 
-// File: namespace_0d204.xml
+// File: namespace_0d198.xml
 
 
-// File: namespace_0d220.xml
+// File: namespace_0d2.xml
 
 
-// File: namespace_0d222.xml
+// File: namespace_0d208.xml
 
 
-// File: namespace_0d229.xml
+// File: namespace_0d224.xml
 
 
-// File: namespace_0d247.xml
+// File: namespace_0d226.xml
 
 
-// File: namespace_0d25.xml
+// File: namespace_0d233.xml
 
 
-// File: namespace_0d255.xml
+// File: namespace_0d25.xml
 
 
-// File: namespace_0d265.xml
+// File: namespace_0d251.xml
 
 
-// File: namespace_0d267.xml
+// File: namespace_0d259.xml
 
 
 // File: namespace_0d269.xml
@@ -7589,31 +7680,37 @@ C++ includes: ZLimits.h
 // File: namespace_0d273.xml
 
 
-// File: namespace_0d277.xml
+// File: namespace_0d275.xml
 
 
-// File: namespace_0d279.xml
+// File: namespace_0d277.xml
 
 
 // File: namespace_0d281.xml
 
 
-// File: namespace_0d293.xml
+// File: namespace_0d283.xml
+
+
+// File: namespace_0d287.xml
 
 
 // File: namespace_0d299.xml
 
 
-// File: namespace_0d303.xml
+// File: namespace_0d305.xml
+
+
+// File: namespace_0d309.xml
 
 
 // File: namespace_0d31.xml
 
 
-// File: namespace_0d321.xml
+// File: namespace_0d327.xml
 
 
-// File: namespace_0d340.xml
+// File: namespace_0d346.xml
 
 
 // File: namespace_0d37.xml
@@ -7625,6 +7722,12 @@ C++ includes: ZLimits.h
 // File: namespace_0d4.xml
 
 
+// File: namespace_0d49.xml
+
+
+// File: namespace_0d51.xml
+
+
 // File: namespacebake.xml
 %feature("docstring")  bake::CubicLattice "Lattice3D bake::CubicLattice(double a)
 
@@ -7954,6 +8057,18 @@ Used by the hard sphere and by several soft sphere classes.
 // File: MatrixFresnelMap_8h.xml
 
 
+// File: ProcessedLayout_8cpp.xml
+
+
+// File: ProcessedLayout_8h.xml
+
+
+// File: ProcessedSample_8cpp.xml
+
+
+// File: ProcessedSample_8h.xml
+
+
 // File: ScalarFresnelMap_8cpp.xml
 
 
@@ -8776,6 +8891,12 @@ Generate vertices of centered ellipse with given semi-axes at height z.
 // File: SpecularScalarTanhStrategy_8h.xml
 
 
+// File: SpecularStrategyBuilder_8cpp.xml
+
+
+// File: SpecularStrategyBuilder_8h.xml
+
+
 // File: BoxCompositionBuilder_8cpp.xml