diff --git a/Base/Axis/Frame.cpp b/Base/Axis/Frame.cpp
index 4e0a931ecefe1a69ca9ec869b2e06bdf4df02ec1..6bfff0e0740bc16d55ce10f7b1276ae620e0d2f2 100644
--- a/Base/Axis/Frame.cpp
+++ b/Base/Axis/Frame.cpp
@@ -29,7 +29,7 @@ Frame::Frame(const std::vector<const IAxis*>& axes)
 
 Frame::~Frame() = default;
 
-std::vector<const IAxis*> Frame::cloned_axes() const
+std::vector<const IAxis*> Frame::clonedAxes() const
 {
     return m_axes.cloned_vector();
 }
diff --git a/Base/Axis/Frame.h b/Base/Axis/Frame.h
index 904f1eac710382b20caa512c996a5e8eafe24a59..24a3499f745503704714870972e06fd4fc455ca5 100644
--- a/Base/Axis/Frame.h
+++ b/Base/Axis/Frame.h
@@ -40,7 +40,7 @@ public:
     size_t projectedSize(size_t k_axis) const;
 
     //! Returns cloned axes.
-    std::vector<const IAxis*> cloned_axes() const;
+    std::vector<const IAxis*> clonedAxes() const;
 
     //! Returns axis with given serial number
     const IAxis& axis(size_t k_axis) const { return *m_axes.at(k_axis); }
diff --git a/Base/Element/IElement.h b/Base/Element/IElement.h
index bf323e45725bba654f1dc18dbdaada362231a6f9..c9de322f376f21d64495eca052b27a744542e9fd 100644
--- a/Base/Element/IElement.h
+++ b/Base/Element/IElement.h
@@ -20,14 +20,12 @@
 
 #include "Base/Element/PolMatrices.h"
 
-#include <utility>
-
 //! @ingroup simulation
 
 class IElement {
 public:
     explicit IElement(PolMatrices polMatrices)
-        : m_polMatrices(std::move(polMatrices))
+        : m_polMatrices(polMatrices)
     {
     }
 
diff --git a/Base/Vector/Direction.cpp b/Base/Vector/Direction.cpp
index f6d68bb920a1dd2157f493f89cd9e9ab4131f253..60bfba19806963d1c14df8504219e8b21fd7a4c4 100644
--- a/Base/Vector/Direction.cpp
+++ b/Base/Vector/Direction.cpp
@@ -18,11 +18,11 @@
 
 R3 vecOfLambdaAlphaPhi(double _lambda, double _alpha, double _phi)
 {
-    return M_TWOPI / _lambda * Direction(_alpha, _phi).vector();
+    return Direction(_alpha, -_phi).zFrameVector(M_TWOPI / _lambda);
 }
 
-R3 Direction::vector() const
+R3 Direction::zFrameVector(double length) const
 {
-    return {std::cos(m_alpha) * std::cos(m_phi), -std::cos(m_alpha) * std::sin(m_phi),
-            std::sin(m_alpha)};
+    return {length * std::cos(m_alpha) * std::cos(m_phi),
+            length * std::cos(m_alpha) * std::sin(m_phi), length * std::sin(m_alpha)};
 }
diff --git a/Base/Vector/Direction.h b/Base/Vector/Direction.h
index 2efd90b61da1f494fb2fcea530c36c2fcbb5ea5c..57ec31df52a20e78a2abb372f7f504a1251db763 100644
--- a/Base/Vector/Direction.h
+++ b/Base/Vector/Direction.h
@@ -35,8 +35,8 @@ public:
     double alpha() const { return m_alpha; }
     double phi() const { return m_phi; }
 
-    //! Returns Cartesian 3D vector
-    R3 vector() const;
+    //! Returns Cartesian 3D vector, in a frame where alpha=0 is on the +z axis.
+    R3 zFrameVector(double length) const;
 
     Direction zReflected() const { return {-m_alpha, m_phi}; }
 
diff --git a/Device/Data/Datafield.cpp b/Device/Data/Datafield.cpp
index 98e06cf14b17e737fb7b5fbe5e5e9f18a14bbf09..5c907667fe53ed92d33170732b8041ca3a8fb7d8 100644
--- a/Device/Data/Datafield.cpp
+++ b/Device/Data/Datafield.cpp
@@ -63,7 +63,7 @@ Datafield::~Datafield() = default;
 
 Datafield* Datafield::clone() const
 {
-    auto* data = new Datafield(m_frame->cloned_axes(), m_values, m_errSigmas);
+    auto* data = new Datafield(m_frame->clonedAxes(), m_values, m_errSigmas);
     return data;
 }
 
@@ -191,7 +191,7 @@ Datafield* Datafield::crop(double xmin, double ymin, double xmax, double ymax) c
         if (xaxis->contains(x) && yaxis->contains(y))
             out[iout++] = m_values[i];
     }
-    return new Datafield(m_frame->cloned_axes(), out);
+    return new Datafield(m_frame->clonedAxes(), out);
 }
 
 Datafield* Datafield::crop(double xmin, double xmax) const
@@ -205,7 +205,7 @@ Datafield* Datafield::crop(double xmin, double xmax) const
         if (xaxis->contains(x))
             out[iout++] = m_values[i];
     }
-    return new Datafield(m_frame->cloned_axes(), out);
+    return new Datafield(m_frame->clonedAxes(), out);
 }
 
 #ifdef BORNAGAIN_PYTHON
diff --git a/Device/Detector/IDetector.cpp b/Device/Detector/IDetector.cpp
index a9b943d7fe46423fea3c5086d2407fabc423039b..f3f5069ec433527b88c5d469ff68df84dad0a4ea 100644
--- a/Device/Detector/IDetector.cpp
+++ b/Device/Detector/IDetector.cpp
@@ -174,7 +174,7 @@ void IDetector::applyDetectorResolution(Datafield* intensity_map) const
         m_resolution->applyDetectorResolution(intensity_map);
         if (detectorMask() && detectorMask()->hasMasks()) {
             // sets amplitude in masked areas to zero
-            std::unique_ptr<Datafield> buff(new Datafield(intensity_map->frame().cloned_axes()));
+            std::unique_ptr<Datafield> buff(new Datafield(intensity_map->frame().clonedAxes()));
             iterateOverNonMaskedPoints([&](const_iterator it) {
                 (*buff)[it.roiIndex()] = (*intensity_map)[it.roiIndex()];
             });
diff --git a/Device/Detector/RectangularDetector.cpp b/Device/Detector/RectangularDetector.cpp
index e02dc69b42f66d31d90b7e4938b09903bb941f5a..3ff455c16f6511322b6069f6e51aad7d46572733 100644
--- a/Device/Detector/RectangularDetector.cpp
+++ b/Device/Detector/RectangularDetector.cpp
@@ -49,7 +49,7 @@ RectangularDetector* RectangularDetector::clone() const
 
 void RectangularDetector::setDetectorNormal(const Direction& direction)
 {
-    initNormalVector(direction.vector());
+    initNormalVector(direction.zFrameVector(1));
     initUandV(-direction.alpha());
 }
 
diff --git a/Device/Histo/DiffUtil.cpp b/Device/Histo/DiffUtil.cpp
index 2d143eda6001ac3822e00559cfe7293150787bdd..640e31eb448a5aa98b6f41a38a0427b2c8329166 100644
--- a/Device/Histo/DiffUtil.cpp
+++ b/Device/Histo/DiffUtil.cpp
@@ -42,7 +42,7 @@ Datafield* DiffUtil::relativeDifferenceField(const Datafield& dat, const Datafie
     std::vector<double> out(dat.size());
     for (size_t i = 0; i < dat.size(); ++i)
         out[i] = Numeric::relativeDifference(dat.valAt(i), ref.valAt(i));
-    return new Datafield(dat.frame().cloned_axes(), out);
+    return new Datafield(dat.frame().clonedAxes(), out);
 }
 
 //! Returns sum of relative differences between each pair of elements:
diff --git a/Doc/Doxygen/core/Doxyfile.in b/Doc/Doxygen/core/Doxyfile.in
index 534ab08d90acededdb94062fe54b48093e530b96..1b2db7d2a29cec9fcfe0e4500d7d1c725f941261 100644
--- a/Doc/Doxygen/core/Doxyfile.in
+++ b/Doc/Doxygen/core/Doxyfile.in
@@ -897,7 +897,7 @@ WARN_LOGFILE           =
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = @CMAKE_SOURCE_DIR@/Doc/Doxygen/long \
+INPUT                  = @CMAKE_SOURCE_DIR@/Doc/Doxygen/core \
                          @CMAKE_SOURCE_DIR@/Doc/Doxygen/common \
                          @CMAKE_SOURCE_DIR@/Base \
                          @CMAKE_SOURCE_DIR@/Fit \
@@ -1225,7 +1225,7 @@ GENERATE_HTML          = YES
 # The default directory is: html.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_OUTPUT            = @CMAKE_BINARY_DIR@/html/long
+HTML_OUTPUT            = @CMAKE_BINARY_DIR@/html/core
 
 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
 # generated HTML page (for example: .htm, .php, .asp).
diff --git a/Examples/varia/DepthProbe.py b/Examples/varia/DepthProbe.py
index 7952bfc2f039d85f5ebeb1792e56d5f3dd66b2fb..e6de2421b5dff9eb408faadbd594617001846d8e 100755
--- a/Examples/varia/DepthProbe.py
+++ b/Examples/varia/DepthProbe.py
@@ -75,7 +75,7 @@ def get_simulation(sample):
 
     simulation = ba.DepthProbeSimulation(sample)
     simulation.setBeamParameters(wl, na, ai_min, ai_max, footprint)
-    simulation.setZSpan(nz, z_min, z_max)
+    simulation.setzSpan(nz, z_min, z_max)
     simulation.addParameterDistribution(
         ba.ParameterDistribution.BeamInclinationAngle, alpha_distr,
         n_points, n_sig)
diff --git a/GUI/Model/Device/InstrumentItems.cpp b/GUI/Model/Device/InstrumentItems.cpp
index 6cf1eb3a1130249c35574a417c9deedf9723200b..5c02da68cb7897e6396c03c6ebce359573a1ce7b 100644
--- a/GUI/Model/Device/InstrumentItems.cpp
+++ b/GUI/Model/Device/InstrumentItems.cpp
@@ -427,7 +427,7 @@ DepthProbeSimulation* DepthProbeInstrumentItem::createSimulation(const MultiLaye
     simulation->setBeamParameters(beamItem()->wavelength(), static_cast<int>(axis->size()),
                                   axis->min(), axis->max());
 
-    simulation->setZSpan(m_zAxis.nbins(), m_zAxis.min(), m_zAxis.max());
+    simulation->setzSpan(m_zAxis.nbins(), m_zAxis.min(), m_zAxis.max());
 
     setBeamDistribution(ParameterDistribution::BeamWavelength, *beamItem()->wavelengthItem(),
                         *simulation);
diff --git a/Resample/Element/DiffuseElement.cpp b/Resample/Element/DiffuseElement.cpp
index 31a3b732481986763ceba1759008d2a73bc92887..c59c6b8f978c8ec86a2baac53458c94efb9352f8 100644
--- a/Resample/Element/DiffuseElement.cpp
+++ b/Resample/Element/DiffuseElement.cpp
@@ -105,23 +105,11 @@ R3 DiffuseElement::meanQ() const
     return getKi() - meanKf();
 }
 
-//! Returns scattering vector Q, with Kf determined from in-pixel coordinates x,y.
-//! In-pixel coordinates take values from 0 to 1.
-R3 DiffuseElement::getQ(double x, double y) const
-{
-    return getKi() - m_pixel->getK(x, y, m_wavelength);
-}
-
 double DiffuseElement::alpha(double x, double y) const
 {
     return M_PI_2 - R3Util::theta(getKf(x, y));
 }
 
-double DiffuseElement::getPhi(double x, double y) const
-{
-    return R3Util::phi(getKf(x, y));
-}
-
 WavevectorInfo DiffuseElement::wavevectorInfo() const
 {
     return {getKi(), meanKf(), wavelength()};
diff --git a/Resample/Element/DiffuseElement.h b/Resample/Element/DiffuseElement.h
index 32bde2ebb690033fefadedfbedd465e06d24327d..70348fe3f4faecf653c9ff7f6fa467c166b534ee 100644
--- a/Resample/Element/DiffuseElement.h
+++ b/Resample/Element/DiffuseElement.h
@@ -50,30 +50,25 @@ public:
 
     double wavelength() const { return m_wavelength; }
     double alphaI() const { return m_alpha_i; }
-    double getPhiI() const { return m_phi_i; }
     double alphaMean() const { return alpha(0.5, 0.5); }
-    double getPhiMean() const { return getPhi(0.5, 0.5); }
     void setIntensity(double intensity) { m_intensity = intensity; }
     void addIntensity(double intensity) { m_intensity += intensity; }
     double intensity() const { return m_intensity; }
     R3 getKi() const;
     R3 meanKf() const;
     R3 meanQ() const;
-    R3 getQ(double x, double y) const;
 
     double integrationFactor(double x, double y) const;
 
     double solidAngle() const;
 
-    double alpha(double x, double y) const;
-    double getPhi(double x, double y) const;
-
     WavevectorInfo wavevectorInfo() const;
 
     //! Tells if simulation element corresponds to a specular peak
     bool isSpecular() const { return m_is_specular; }
 
 private:
+    double alpha(double x, double y) const;
     R3 getKf(double x, double y) const;
 
     const double m_wavelength; //!< wavelength of beam
diff --git a/Resample/Particle/IReParticle.h b/Resample/Particle/IReParticle.h
index 0d9e0c9a6b40dc71c26bee4eb01e151b8df51638..dfa9b42e119790b95757f8870bf7bb1cf95a35dc 100644
--- a/Resample/Particle/IReParticle.h
+++ b/Resample/Particle/IReParticle.h
@@ -60,7 +60,7 @@ public:
     //! form factor's shape. This is used for SSCA calculations
     virtual double radialExtension() const = 0;
 
-    virtual Span Z_span() const = 0;
+    virtual Span zSpan() const = 0;
 
     //! Returns the total volume of the particle of this form factor's shape
     virtual double volume() const;
diff --git a/Resample/Particle/ReCompound.cpp b/Resample/Particle/ReCompound.cpp
index 4601bccddd3f68dba8832eab8e60b8a45088362a..8f46d427d4922310447a0f9bcc12a5969ccbbad9 100644
--- a/Resample/Particle/ReCompound.cpp
+++ b/Resample/Particle/ReCompound.cpp
@@ -40,12 +40,12 @@ double ReCompound::radialExtension() const
     return result;
 }
 
-Span ReCompound::Z_span() const
+Span ReCompound::zSpan() const
 {
     ASSERT(!m_components.empty());
-    Span result = m_components[0]->Z_span();
+    Span result = m_components[0]->zSpan();
     for (size_t i = 1; i < m_components.size(); ++i)
-        result = Span::unite(result, m_components[i]->Z_span());
+        result = Span::unite(result, m_components[i]->zSpan());
     return result;
 }
 
diff --git a/Resample/Particle/ReCompound.h b/Resample/Particle/ReCompound.h
index 0ad67e1c4cf419af532ebb4c90cf2d1a35f28d08..7c9914e3255891357518a2ce71dba0bc0ed8919d 100644
--- a/Resample/Particle/ReCompound.h
+++ b/Resample/Particle/ReCompound.h
@@ -36,7 +36,7 @@ public:
 
     double radialExtension() const override;
 
-    Span Z_span() const override;
+    Span zSpan() const override;
 
     void addFormFactor(const IReParticle& formfactor);
 
diff --git a/Resample/Particle/ReMesocrystal.cpp b/Resample/Particle/ReMesocrystal.cpp
index 8d53a5b138fa9fe7f6e6ddc8b872c4d1dcbd1861..3ba83fcfec1d7b3ef316e179d87976a7a5dc35b8 100644
--- a/Resample/Particle/ReMesocrystal.cpp
+++ b/Resample/Particle/ReMesocrystal.cpp
@@ -48,9 +48,9 @@ double ReMesocrystal::radialExtension() const
     return m_outer_shape->radialExtension();
 }
 
-Span ReMesocrystal::Z_span() const
+Span ReMesocrystal::zSpan() const
 {
-    return m_outer_shape->Z_span();
+    return m_outer_shape->zSpan();
 }
 
 complex_t ReMesocrystal::theFF(const WavevectorInfo& wavevectors) const
diff --git a/Resample/Particle/ReMesocrystal.h b/Resample/Particle/ReMesocrystal.h
index 50783f66de9db31e80df939c064df6b482fa47b0..82ddd034b864b2339a157a8eb8da73ec1823333a 100644
--- a/Resample/Particle/ReMesocrystal.h
+++ b/Resample/Particle/ReMesocrystal.h
@@ -42,7 +42,7 @@ public:
     double volume() const override;
     double radialExtension() const override;
 
-    Span Z_span() const override;
+    Span zSpan() const override;
 
     complex_t theFF(const WavevectorInfo& wavevectors) const override;
     SpinMatrix thePolFF(const WavevectorInfo& wavevectors) const override;
diff --git a/Resample/Particle/ReParticle.cpp b/Resample/Particle/ReParticle.cpp
index 02249d1b62905c66471fb329fc79379fbaa48e11..bf5b7df190f03debfc7b5225ad3c75d39b0b4490 100644
--- a/Resample/Particle/ReParticle.cpp
+++ b/Resample/Particle/ReParticle.cpp
@@ -113,7 +113,7 @@ SpinMatrix ReParticle::thePolFF(const WavevectorInfo& wavevectors) const
     return result;
 }
 
-Span ReParticle::Z_span() const
+Span ReParticle::zSpan() const
 {
     RotMatrix transform = m_rotMatrix ? *m_rotMatrix : RotMatrix();
     std::unique_ptr<const IRotation> total_rotation(IRotation::createRotation(transform));
diff --git a/Resample/Particle/ReParticle.h b/Resample/Particle/ReParticle.h
index 85e9a7f3ed9deab1e07901fccadbb48d734edd21..b36299554d5da2c739cc08b2e3af2f815f872f9a 100644
--- a/Resample/Particle/ReParticle.h
+++ b/Resample/Particle/ReParticle.h
@@ -48,7 +48,7 @@ public:
 
     double radialExtension() const override;
 
-    Span Z_span() const override;
+    Span zSpan() const override;
 
     const IFormFactor* iformfactor() const;
 
diff --git a/Sim/Fitting/SimDataPair.cpp b/Sim/Fitting/SimDataPair.cpp
index 6495f7185a8aaf1a2f2c8c339e3e892e448e911c..cbafacbb67e0200cf3127ed8f2d47a6a53f5a88c 100644
--- a/Sim/Fitting/SimDataPair.cpp
+++ b/Sim/Fitting/SimDataPair.cpp
@@ -36,7 +36,7 @@ namespace {
 
 std::unique_ptr<Datafield> initUserWeights(const Datafield& shape, double value)
 {
-    auto result = std::make_unique<Datafield>(shape.frame().cloned_axes());
+    auto result = std::make_unique<Datafield>(shape.frame().clonedAxes());
     result->setAllTo(value);
     return result;
 }
diff --git a/Sim/Simulation/DepthProbeSimulation.cpp b/Sim/Simulation/DepthProbeSimulation.cpp
index 89cba1ead4b80a2e16716254f2b1abbe0015656e..3a0df140ad27fa2573ea0fc871ab79b8e0d93bd1 100644
--- a/Sim/Simulation/DepthProbeSimulation.cpp
+++ b/Sim/Simulation/DepthProbeSimulation.cpp
@@ -94,7 +94,7 @@ SimulationResult DepthProbeSimulation::pack_result() const
     return {*data, *coordsSystem};
 }
 
-void DepthProbeSimulation::setZSpan(size_t n_bins, double z_min, double z_max)
+void DepthProbeSimulation::setzSpan(size_t n_bins, double z_min, double z_max)
 {
     if (z_max <= z_min)
         throw std::runtime_error("Error in DepthProbeSimulation::setZSpan: maximum on-axis value "
diff --git a/Sim/Simulation/DepthProbeSimulation.h b/Sim/Simulation/DepthProbeSimulation.h
index fbd2f42d2ec00a59076d09dae028b5dd68a3c0f8..19e8b3edb8592a70e227ca4064c19477d6b21938 100644
--- a/Sim/Simulation/DepthProbeSimulation.h
+++ b/Sim/Simulation/DepthProbeSimulation.h
@@ -52,7 +52,7 @@ public:
 
     //! Set z positions for intensity calculations. Negative z's correspond to the area
     //! under sample surface. The more negative z is, the deeper layer corresponds to it.
-    void setZSpan(size_t n_bins, double z_min, double z_max);
+    void setzSpan(size_t n_bins, double z_min, double z_max);
 
     //! Returns a pointer to incident angle axis.
     const IAxis* alphaAxis() const;
diff --git a/Tests/SimFactory/MakeSimulations.cpp b/Tests/SimFactory/MakeSimulations.cpp
index c80012ab06a9f2ed93a8f49bcee52280a32293f5..4794d3c81fec82ae126b1de924229046e1109cf7 100644
--- a/Tests/SimFactory/MakeSimulations.cpp
+++ b/Tests/SimFactory/MakeSimulations.cpp
@@ -492,7 +492,7 @@ test::makeSimulation::BasicDepthProbe(const MultiLayer& sample)
     auto result = std::make_unique<DepthProbeSimulation>(sample);
 
     result->setBeamParameters(wavelength, n_alpha, alpha_min, alpha_max);
-    result->setZSpan(n_z, z_min, z_max);
+    result->setzSpan(n_z, z_min, z_max);
 
     return result;
 }
diff --git a/Tests/Unit/Device/RectangularConverterTest.cpp b/Tests/Unit/Device/RectangularConverterTest.cpp
index 7a247872d14d07ce8cb3ad7dbca8cb338348f30e..39eccef63e24fd9ed1bcaae83124140b7f1acc7d 100644
--- a/Tests/Unit/Device/RectangularConverterTest.cpp
+++ b/Tests/Unit/Device/RectangularConverterTest.cpp
@@ -37,7 +37,7 @@ RectangularConverterTest::RectangularConverterTest()
     m_detector.setDetectorNormal(m_beam.direction().zReflected());
     m_phi = std::atan2(det_width / 2.0, det_distance);
     m_alpha = std::atan2(det_height, det_distance / std::cos(m_phi));
-    const auto k_i = M_TWOPI / m_beam.wavelength() * m_beam.direction().vector();
+    const auto k_i = m_beam.direction().zFrameVector(M_TWOPI / m_beam.wavelength());
     m_kiz = -k_i.z();
     double K = 2.0 * M_PI / m_beam.wavelength();
     m_kfy = K * std::sin(m_phi);
diff --git a/Tests/Unit/Device/SphericalConverterTest.cpp b/Tests/Unit/Device/SphericalConverterTest.cpp
index 1bc32d119cbfa475ee262db1c0a680e0ab01d9be..145fb29963afb3a8c1c4de5a087e505e37e8ae0a 100644
--- a/Tests/Unit/Device/SphericalConverterTest.cpp
+++ b/Tests/Unit/Device/SphericalConverterTest.cpp
@@ -20,7 +20,7 @@ SphericalConverterTest::SphericalConverterTest()
     : m_detector(100, 0.0, 5.0 * Units::deg, 70, -2.0 * Units::deg, 1.5)
     , m_beam(UnitBeam(1.0, 1 * Units::deg))
 {
-    const auto k_i = M_TWOPI / m_beam.wavelength() * m_beam.direction().vector();
+    const auto k_i = m_beam.direction().zFrameVector(M_TWOPI / m_beam.wavelength());
     m_kiz = -k_i.z();
     const double K = 2.0 * M_PI / m_beam.wavelength();
     m_kfy = K * std::sin(5.0 * Units::deg);
diff --git a/auto/Wrap/libBornAgainBase.py b/auto/Wrap/libBornAgainBase.py
index af786028872a551a6ba4ca34af37a54c43477a64..4b61d0b6d7db17271ae235b3006a3753dbd180dd 100644
--- a/auto/Wrap/libBornAgainBase.py
+++ b/auto/Wrap/libBornAgainBase.py
@@ -2147,9 +2147,9 @@ class Frame(object):
         r"""projectedSize(Frame self, size_t k_axis) -> size_t"""
         return _libBornAgainBase.Frame_projectedSize(self, k_axis)
 
-    def cloned_axes(self):
-        r"""cloned_axes(Frame self) -> std::vector< IAxis const *,std::allocator< IAxis const * > >"""
-        return _libBornAgainBase.Frame_cloned_axes(self)
+    def clonedAxes(self):
+        r"""clonedAxes(Frame self) -> std::vector< IAxis const *,std::allocator< IAxis const * > >"""
+        return _libBornAgainBase.Frame_clonedAxes(self)
 
     def axis(self, k_axis):
         r"""axis(Frame self, size_t k_axis) -> IAxis"""
diff --git a/auto/Wrap/libBornAgainBase_wrap.cpp b/auto/Wrap/libBornAgainBase_wrap.cpp
index f609eef63a68528abea4a8e646d5a55666293b45..d2bda1fa72be2f6bf9efcd1b6a5af3fefdbb5f1a 100644
--- a/auto/Wrap/libBornAgainBase_wrap.cpp
+++ b/auto/Wrap/libBornAgainBase_wrap.cpp
@@ -27352,7 +27352,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Frame_cloned_axes(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_clonedAxes(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Frame *arg1 = (Frame *) 0 ;
   void *argp1 = 0 ;
@@ -27364,10 +27364,10 @@ SWIGINTERN PyObject *_wrap_Frame_cloned_axes(PyObject *self, PyObject *args) {
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_cloned_axes" "', argument " "1"" of type '" "Frame const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_clonedAxes" "', argument " "1"" of type '" "Frame const *""'"); 
   }
   arg1 = reinterpret_cast< Frame * >(argp1);
-  result = ((Frame const *)arg1)->cloned_axes();
+  result = ((Frame const *)arg1)->clonedAxes();
   resultobj = SWIG_NewPointerObj((new std::vector< IAxis const *,std::allocator< IAxis const * > >(result)), SWIGTYPE_p_std__vectorT_IAxis_const_p_std__allocatorT_IAxis_const_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
@@ -29713,7 +29713,7 @@ static PyMethodDef SwigMethods[] = {
 	 { "Frame_rank", _wrap_Frame_rank, METH_O, "Frame_rank(Frame self) -> size_t"},
 	 { "Frame_size", _wrap_Frame_size, METH_O, "Frame_size(Frame self) -> size_t"},
 	 { "Frame_projectedSize", _wrap_Frame_projectedSize, METH_VARARGS, "Frame_projectedSize(Frame self, size_t k_axis) -> size_t"},
-	 { "Frame_cloned_axes", _wrap_Frame_cloned_axes, METH_O, "Frame_cloned_axes(Frame self) -> std::vector< IAxis const *,std::allocator< IAxis const * > >"},
+	 { "Frame_clonedAxes", _wrap_Frame_clonedAxes, METH_O, "Frame_clonedAxes(Frame self) -> std::vector< IAxis const *,std::allocator< IAxis const * > >"},
 	 { "Frame_axis", _wrap_Frame_axis, METH_VARARGS, "Frame_axis(Frame self, size_t k_axis) -> IAxis"},
 	 { "Frame_xAxis", _wrap_Frame_xAxis, METH_O, "Frame_xAxis(Frame self) -> IAxis"},
 	 { "Frame_yAxis", _wrap_Frame_yAxis, METH_O, "Frame_yAxis(Frame self) -> IAxis"},
diff --git a/auto/Wrap/libBornAgainSim.py b/auto/Wrap/libBornAgainSim.py
index d04e44bf639d2415d52131ad52a97a01d4a83f7d..814f310b352e64ffd17e38dc75d4753bec8aa4a2 100644
--- a/auto/Wrap/libBornAgainSim.py
+++ b/auto/Wrap/libBornAgainSim.py
@@ -3000,9 +3000,9 @@ class DepthProbeSimulation(ISimulation):
         r"""setBeamParameters(DepthProbeSimulation self, double _lambda, int nbins, double alpha_i_min, double alpha_i_max, IFootprintFactor const * beam_shape=None)"""
         return _libBornAgainSim.DepthProbeSimulation_setBeamParameters(self, _lambda, nbins, alpha_i_min, alpha_i_max, beam_shape)
 
-    def setZSpan(self, n_bins, z_min, z_max):
-        r"""setZSpan(DepthProbeSimulation self, size_t n_bins, double z_min, double z_max)"""
-        return _libBornAgainSim.DepthProbeSimulation_setZSpan(self, n_bins, z_min, z_max)
+    def setzSpan(self, n_bins, z_min, z_max):
+        r"""setzSpan(DepthProbeSimulation self, size_t n_bins, double z_min, double z_max)"""
+        return _libBornAgainSim.DepthProbeSimulation_setzSpan(self, n_bins, z_min, z_max)
 
     def alphaAxis(self):
         r"""alphaAxis(DepthProbeSimulation self) -> IAxis"""
diff --git a/auto/Wrap/libBornAgainSim_wrap.cpp b/auto/Wrap/libBornAgainSim_wrap.cpp
index 0a98ae84e837778f0be4f67eaa96b42cac53b2e7..eebfa84eccb52addf8cf330c4c17a968e3978dee 100644
--- a/auto/Wrap/libBornAgainSim_wrap.cpp
+++ b/auto/Wrap/libBornAgainSim_wrap.cpp
@@ -36619,7 +36619,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_DepthProbeSimulation_setZSpan(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_DepthProbeSimulation_setzSpan(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   DepthProbeSimulation *arg1 = (DepthProbeSimulation *) 0 ;
   size_t arg2 ;
@@ -36635,28 +36635,28 @@ SWIGINTERN PyObject *_wrap_DepthProbeSimulation_setZSpan(PyObject *self, PyObjec
   int ecode4 = 0 ;
   PyObject *swig_obj[4] ;
   
-  if (!SWIG_Python_UnpackTuple(args, "DepthProbeSimulation_setZSpan", 4, 4, swig_obj)) SWIG_fail;
+  if (!SWIG_Python_UnpackTuple(args, "DepthProbeSimulation_setzSpan", 4, 4, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_DepthProbeSimulation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DepthProbeSimulation_setZSpan" "', argument " "1"" of type '" "DepthProbeSimulation *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DepthProbeSimulation_setzSpan" "', argument " "1"" of type '" "DepthProbeSimulation *""'"); 
   }
   arg1 = reinterpret_cast< DepthProbeSimulation * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "DepthProbeSimulation_setZSpan" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "DepthProbeSimulation_setzSpan" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "DepthProbeSimulation_setZSpan" "', argument " "3"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "DepthProbeSimulation_setzSpan" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
   ecode4 = SWIG_AsVal_double(swig_obj[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "DepthProbeSimulation_setZSpan" "', argument " "4"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "DepthProbeSimulation_setzSpan" "', argument " "4"" of type '" "double""'");
   } 
   arg4 = static_cast< double >(val4);
-  (arg1)->setZSpan(arg2,arg3,arg4);
+  (arg1)->setzSpan(arg2,arg3,arg4);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -39743,7 +39743,7 @@ static PyMethodDef SwigMethods[] = {
 	 { "DepthProbeSimulation_className", _wrap_DepthProbeSimulation_className, METH_O, "DepthProbeSimulation_className(DepthProbeSimulation self) -> std::string"},
 	 { "DepthProbeSimulation_nodeChildren", _wrap_DepthProbeSimulation_nodeChildren, METH_O, "DepthProbeSimulation_nodeChildren(DepthProbeSimulation self) -> swig_dummy_type_const_inode_vector"},
 	 { "DepthProbeSimulation_setBeamParameters", _wrap_DepthProbeSimulation_setBeamParameters, METH_VARARGS, "DepthProbeSimulation_setBeamParameters(DepthProbeSimulation self, double _lambda, int nbins, double alpha_i_min, double alpha_i_max, IFootprintFactor const * beam_shape=None)"},
-	 { "DepthProbeSimulation_setZSpan", _wrap_DepthProbeSimulation_setZSpan, METH_VARARGS, "DepthProbeSimulation_setZSpan(DepthProbeSimulation self, size_t n_bins, double z_min, double z_max)"},
+	 { "DepthProbeSimulation_setzSpan", _wrap_DepthProbeSimulation_setzSpan, METH_VARARGS, "DepthProbeSimulation_setzSpan(DepthProbeSimulation self, size_t n_bins, double z_min, double z_max)"},
 	 { "DepthProbeSimulation_alphaAxis", _wrap_DepthProbeSimulation_alphaAxis, METH_O, "DepthProbeSimulation_alphaAxis(DepthProbeSimulation self) -> IAxis"},
 	 { "DepthProbeSimulation_zAxis", _wrap_DepthProbeSimulation_zAxis, METH_O, "DepthProbeSimulation_zAxis(DepthProbeSimulation self) -> IAxis"},
 	 { "DepthProbeSimulation_force_polarized", _wrap_DepthProbeSimulation_force_polarized, METH_O, "DepthProbeSimulation_force_polarized(DepthProbeSimulation self) -> bool"},