diff --git a/Base/Axis/MakeScale.cpp b/Base/Axis/MakeScale.cpp
index 5671e728e2cf0747d5c9cae266df5189cd5060fd..7056980bec920c77264d5e54a563b4b02fd4f629 100644
--- a/Base/Axis/MakeScale.cpp
+++ b/Base/Axis/MakeScale.cpp
@@ -3,7 +3,7 @@
 //  BornAgain: simulate and fit reflection and scattering
 //
 //! @file      Base/Axis/MakeScale.cpp
-//! @brief     Implement class FixedBinAxis.
+//! @brief     Implements functions that create instances of class IAxis.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "Base/Axis/MakeScale.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Util/Assert.h"
 
 namespace {
diff --git a/Base/Axis/MakeScale.h b/Base/Axis/MakeScale.h
index 53e670d23863f455f7cb6deaccda48ee2aa13032..6901d9b974dc44b28db03ff2916f6a397ffc4a42 100644
--- a/Base/Axis/MakeScale.h
+++ b/Base/Axis/MakeScale.h
@@ -3,7 +3,7 @@
 //  BornAgain: simulate and fit reflection and scattering
 //
 //! @file      Base/Axis/MakeScale.h
-//! @brief     Defines class FixedBinAxis.
+//! @brief     Declares functions that create instances of class IAxis.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -15,8 +15,10 @@
 #ifndef BORNAGAIN_BASE_AXIS_MAKESCALE_H
 #define BORNAGAIN_BASE_AXIS_MAKESCALE_H
 
-#include "Base/Axis/IAxis.h"
 #include <memory>
+#include <vector>
+
+class IAxis;
 
 IAxis DiscreteAxis(const std::string& name, const std::vector<double>& points);
 IAxis* newDiscreteAxis(const std::string& name, const std::vector<double>& points);
diff --git a/Device/Coord/CoordSystem1D.cpp b/Device/Coord/CoordSystem1D.cpp
index d0a3ff9d6236940dadc30f0ff93e6f18f59da066..037acae7fae7907715cb61d5a4ebb8ee30c2ccc1 100644
--- a/Device/Coord/CoordSystem1D.cpp
+++ b/Device/Coord/CoordSystem1D.cpp
@@ -13,14 +13,16 @@
 //  ************************************************************************************************
 
 #include "Device/Coord/CoordSystem1D.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Base/Util/Assert.h"
 #include <cmath>
+#include <numbers>
 #include <stdexcept>
 
+using std::numbers::pi;
+
 namespace {
 
 double getQ(double wavelength, double angle)
diff --git a/Device/Coord/CoordSystem2D.cpp b/Device/Coord/CoordSystem2D.cpp
index 8ca92571c6f3ce22a2e9b3d1ba40422a92510b6a..32428e4c147f139dafbc2c368b9a494c047e128f 100644
--- a/Device/Coord/CoordSystem2D.cpp
+++ b/Device/Coord/CoordSystem2D.cpp
@@ -13,15 +13,17 @@
 //  ************************************************************************************************
 
 #include "Device/Coord/CoordSystem2D.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Base/Pixel/RectangularPixel.h"
 #include "Base/Util/Assert.h"
 #include "Base/Vector/GisasDirection.h"
 #include <algorithm>
 #include <cmath>
+#include <numbers>
+
+using std::numbers::pi;
 
 namespace {
 
diff --git a/Device/Data/ArrayUtil.cpp b/Device/Data/ArrayUtil.cpp
index 16df796b90025d206cc2631c6064439c24bfe0e2..61b1d87fa7bd15b30e6e6d2beacfb4559f65ad80 100644
--- a/Device/Data/ArrayUtil.cpp
+++ b/Device/Data/ArrayUtil.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "Device/Data/ArrayUtil.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Util/Assert.h"
 #include "Device/Data/Datafield.h"
diff --git a/Device/Data/DataUtil.cpp b/Device/Data/DataUtil.cpp
index d6e559d438483cdae2ae1bdaaea7a634c7ab74e4..219e8a04d8e031253c8b8ccd04ebd899a1deb370 100644
--- a/Device/Data/DataUtil.cpp
+++ b/Device/Data/DataUtil.cpp
@@ -14,6 +14,7 @@
 
 #include "Device/Data/DataUtil.h"
 #include "Base/Axis/Frame.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Math/FourierTransform.h"
 #include "Base/Util/Assert.h"
diff --git a/Device/Detector/OffspecDetector.cpp b/Device/Detector/OffspecDetector.cpp
index 11b16fbd9fa68f7a2b44075e92a1eaaa1bce1e11..9eaaae9081e99f6da269805d4b8b777f92ce5996 100644
--- a/Device/Detector/OffspecDetector.cpp
+++ b/Device/Detector/OffspecDetector.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "Device/Detector/OffspecDetector.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Pixel/SphericalPixel.h"
 #include "Base/Util/Assert.h"
diff --git a/Device/Detector/RectangularDetector.cpp b/Device/Detector/RectangularDetector.cpp
index 710dccf4685225c2fc097403655728e53b496988..485c9e09e34d0ba65e7a60d86ce652d2e7ac57f9 100644
--- a/Device/Detector/RectangularDetector.cpp
+++ b/Device/Detector/RectangularDetector.cpp
@@ -13,15 +13,17 @@
 //  ************************************************************************************************
 
 #include "Device/Detector/RectangularDetector.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Base/Pixel/RectangularPixel.h"
 #include "Base/Util/Assert.h"
 #include "Device/Beam/Beam.h"
 #include "Device/Coord/CoordSystem2D.h"
 #include "Device/Resolution/IDetectorResolution.h"
+#include <numbers>
+
+using std::numbers::pi;
 
 RectangularDetector::RectangularDetector(std::array<std::shared_ptr<IAxis>, 2> axes)
     : IDetector(axes)
diff --git a/Device/Detector/SphericalDetector.cpp b/Device/Detector/SphericalDetector.cpp
index da895f2fafd1700cdfa0c3b8bd554225bc335de5..35fbf57bb45955829c17790267bc285d7d8035ae 100644
--- a/Device/Detector/SphericalDetector.cpp
+++ b/Device/Detector/SphericalDetector.cpp
@@ -13,15 +13,17 @@
 //  ************************************************************************************************
 
 #include "Device/Detector/SphericalDetector.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Base/Pixel/SphericalPixel.h"
 #include "Base/Util/Assert.h"
 #include "Device/Beam/Beam.h"
 #include "Device/Coord/CoordSystem2D.h"
 #include "Device/Resolution/IDetectorResolution.h"
+#include <numbers>
+
+using std::numbers::pi;
 
 SphericalDetector::SphericalDetector(std::array<std::shared_ptr<IAxis>, 2> axes)
     : IDetector(axes)
diff --git a/Device/IO/ReadWriteTiff.cpp b/Device/IO/ReadWriteTiff.cpp
index 44019324c0977d9de8c73559507b266333148e38..7f7ad5a7f24a7d70da1b6aaf8b4458136f4b1688 100644
--- a/Device/IO/ReadWriteTiff.cpp
+++ b/Device/IO/ReadWriteTiff.cpp
@@ -16,6 +16,7 @@
 
 #include "Device/IO/ReadWriteTiff.h"
 #include "Base/Axis/Frame.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Util/Assert.h"
 #include "Base/Util/SysUtil.h"
diff --git a/GUI/Model/Axis/BasicAxisItem.cpp b/GUI/Model/Axis/BasicAxisItem.cpp
index 6eb2a19c8b2dbeef9a22cc40b383f718b5a39931..c466a15239a7fb6656fa71d9239eb8d5ed6fd16d 100644
--- a/GUI/Model/Axis/BasicAxisItem.cpp
+++ b/GUI/Model/Axis/BasicAxisItem.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Axis/BasicAxisItem.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "GUI/Support/XML/UtilXML.h"
 
diff --git a/GUI/Model/Axis/PointwiseAxisItem.cpp b/GUI/Model/Axis/PointwiseAxisItem.cpp
index bbcafeeba6ff589382197910eb776bf520924007..bcde2a8d990249cdc8390e770a3f762e1681255a 100644
--- a/GUI/Model/Axis/PointwiseAxisItem.cpp
+++ b/GUI/Model/Axis/PointwiseAxisItem.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Axis/PointwiseAxisItem.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Device/Coord/ICoordSystem.h"
 #include "Device/Data/Datafield.h"
diff --git a/GUI/Model/Descriptor/AxisProperty.cpp b/GUI/Model/Descriptor/AxisProperty.cpp
index a87c3c3cd8c2d791329ed72f30b85f6deb98a7ba..66cc57ed1dd708aa9b45ef9541834600d6b58876 100644
--- a/GUI/Model/Descriptor/AxisProperty.cpp
+++ b/GUI/Model/Descriptor/AxisProperty.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Descriptor/AxisProperty.h"
+#include "Base/Axis/IAxis.h"
 #include "GUI/Support/XML/UtilXML.h"
 
 namespace {
diff --git a/GUI/Model/Device/InstrumentItems.cpp b/GUI/Model/Device/InstrumentItems.cpp
index b9ad16b44a541e7b374088f61147b58e09afa60d..3559361302418d7b6e5e078f1f3a437f72623df2 100644
--- a/GUI/Model/Device/InstrumentItems.cpp
+++ b/GUI/Model/Device/InstrumentItems.cpp
@@ -13,9 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Device/InstrumentItems.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Device/Beam/Beam.h"
 #include "Device/Beam/IFootprintFactor.h"
 #include "Device/Coord/CoordSystem1D.h"
@@ -45,6 +44,9 @@ using std::numbers::pi;
 #include "Sim/Background/IBackground.h"
 #include "Sim/Scan/AlphaScan.h"
 #include "Sim/Simulation/includeSimulations.h"
+#include <numbers>
+
+using std::numbers::pi;
 
 namespace {
 namespace Tag {
diff --git a/GUI/Model/FromCore/ItemizeSimulation.cpp b/GUI/Model/FromCore/ItemizeSimulation.cpp
index d2e75fcabce1cbe8df1115a40f6f08faf3435dc1..640f0d89efe58391e5b5cba24e8f397313002cbc 100644
--- a/GUI/Model/FromCore/ItemizeSimulation.cpp
+++ b/GUI/Model/FromCore/ItemizeSimulation.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/FromCore/ItemizeSimulation.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Const/Units.h"
 #include "Device/Beam/Beam.h"
 #include "Device/Detector/OffspecDetector.h"
diff --git a/Sim/Export/PyFmt2.cpp b/Sim/Export/PyFmt2.cpp
index 1992bb224772047500dc1e7d35aa02d25d3c12a9..5200061ca842d568cd88165577634c02f7241a1b 100644
--- a/Sim/Export/PyFmt2.cpp
+++ b/Sim/Export/PyFmt2.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "Sim/Export/PyFmt2.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
 #include "Base/Py/PyFmt.h"
diff --git a/Sim/Scan/AlphaScan.cpp b/Sim/Scan/AlphaScan.cpp
index a4a7a784ad7d37101fd8ac1537f309e5e7f6ebd4..9cdfc68eb4f7efc5b7d95aaa6c1d09ba07db0e0e 100644
--- a/Sim/Scan/AlphaScan.cpp
+++ b/Sim/Scan/AlphaScan.cpp
@@ -13,7 +13,8 @@
 //  ************************************************************************************************
 
 #include "Sim/Scan/AlphaScan.h"
-#include "Base/Axis/MakeScale.h" // FixedScanAxis
+#include "Base/Axis/IAxis.h"
+#include "Base/Axis/MakeScale.h"
 #include "Device/Beam/IFootprintFactor.h"
 #include "Device/Coord/CoordSystem1D.h"
 #include "Device/Pol/PolFilter.h"
@@ -22,6 +23,7 @@
 #include "Resample/Element/SpecularElement.h"
 #include <algorithm>
 #include <numbers>
+
 using std::numbers::pi;
 
 namespace {
diff --git a/Sim/Scan/QzScan.cpp b/Sim/Scan/QzScan.cpp
index fbdef5d9995e0afab268c155ab8d352d0f78322c..4b002deadfe10875de3e6d7975b8a5eb9ea99f68 100644
--- a/Sim/Scan/QzScan.cpp
+++ b/Sim/Scan/QzScan.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "Sim/Scan/QzScan.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Util/Assert.h"
 #include "Device/Coord/CoordSystem1D.h"
diff --git a/Tests/SimFactory/MakeSimulations.cpp b/Tests/SimFactory/MakeSimulations.cpp
index c0d31b22ee005b606cf7d3b60d700e28f859e575..195056f828ef0c55382e1737f4c4346712cc2030 100644
--- a/Tests/SimFactory/MakeSimulations.cpp
+++ b/Tests/SimFactory/MakeSimulations.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "Tests/SimFactory/MakeSimulations.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
 #include "Device/Beam/Beam.h"
diff --git a/Tests/Unit/Device/ArrayUtilsTest.cpp b/Tests/Unit/Device/ArrayUtilsTest.cpp
index f4463b3c38d20bf6a26867bd5f8bbe9c25fdc509..45f3d8f30d28e8d5df3154e0f7d7672226c73335 100644
--- a/Tests/Unit/Device/ArrayUtilsTest.cpp
+++ b/Tests/Unit/Device/ArrayUtilsTest.cpp
@@ -1,3 +1,4 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Device/Data/ArrayUtil.h"
 #include "Device/Data/Datafield.h"
diff --git a/Tests/Unit/Device/DepthprobeConverterTest.cpp b/Tests/Unit/Device/DepthprobeConverterTest.cpp
index 1fc3cb3578820eb3261f0553ee2239c242e583b9..64a7d9abd336514cbf758005c8db7392a98f7b40 100644
--- a/Tests/Unit/Device/DepthprobeConverterTest.cpp
+++ b/Tests/Unit/Device/DepthprobeConverterTest.cpp
@@ -1,9 +1,11 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Device/Coord/CoordSystem2D.h"
 #include "Tests/GTestWrapper/google_test.h"
+#include <numbers>
+
+using std::numbers::pi;
 
 class DepthprobeCoordsTest : public ::testing::Test {
 protected:
diff --git a/Tests/Unit/Device/FixedBinAxisTest.cpp b/Tests/Unit/Device/FixedBinAxisTest.cpp
index e0306b1692cd6560d2cf34fb33108a8ad0b33075..a87950d396dec2f93a7fdce39cd89b8a4682e5e0 100644
--- a/Tests/Unit/Device/FixedBinAxisTest.cpp
+++ b/Tests/Unit/Device/FixedBinAxisTest.cpp
@@ -1,3 +1,4 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Device/IO/DataFormatUtil.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/Device/IOReaderWriterTest.cpp b/Tests/Unit/Device/IOReaderWriterTest.cpp
index 9a5ffcc55ccfeec29e5a7312ae7790a67b11f075..f5b967504a99097201d36b0e75b8978d0e0384be 100644
--- a/Tests/Unit/Device/IOReaderWriterTest.cpp
+++ b/Tests/Unit/Device/IOReaderWriterTest.cpp
@@ -1,3 +1,4 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Device/Data/Datafield.h"
 #include "Device/IO/ReadWriteINT.h"
diff --git a/Tests/Unit/Device/IntensityDataFunctionsTest.cpp b/Tests/Unit/Device/IntensityDataFunctionsTest.cpp
index 489c3e926dd49a3c2d5af2c37c0ca5648d0f3a4d..4a9017fd9b7a235700f45a92259f7382c829ef17 100644
--- a/Tests/Unit/Device/IntensityDataFunctionsTest.cpp
+++ b/Tests/Unit/Device/IntensityDataFunctionsTest.cpp
@@ -1,5 +1,6 @@
 #include "Base/Axis/Frame.h"
 #include "Base/Axis/FrameUtil.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Device/Data/DataUtil.h"
 #include "Device/Data/Datafield.h"
diff --git a/Tests/Unit/Device/OffspecConverterTest.cpp b/Tests/Unit/Device/OffspecConverterTest.cpp
index 7ec29b840ad4e96fb2b5426cb03f552716b6f0a7..1abe3755dc5c751d91d889e1622901b1829e453e 100644
--- a/Tests/Unit/Device/OffspecConverterTest.cpp
+++ b/Tests/Unit/Device/OffspecConverterTest.cpp
@@ -1,3 +1,4 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
 #include "Device/Beam/Beam.h"
diff --git a/Tests/Unit/Device/PointwiseAxisTest.cpp b/Tests/Unit/Device/PointwiseAxisTest.cpp
index f194bd9e2cb0cb802bac8e67e9e4034bcedf5249..ba888d1bde4eafe47cf511c6018cec021f3db06a 100644
--- a/Tests/Unit/Device/PointwiseAxisTest.cpp
+++ b/Tests/Unit/Device/PointwiseAxisTest.cpp
@@ -1,3 +1,4 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Device/IO/DataFormatUtil.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/Device/RectangularConverterTest.cpp b/Tests/Unit/Device/RectangularConverterTest.cpp
index 95605c5a8fea23755615108b9e4b7403358672e2..345698ffe44203f1e1157d10606a9eb88ad52ead 100644
--- a/Tests/Unit/Device/RectangularConverterTest.cpp
+++ b/Tests/Unit/Device/RectangularConverterTest.cpp
@@ -1,13 +1,15 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Base/Pixel/RectangularPixel.h"
 #include "Device/Beam/Beam.h"
 #include "Device/Coord/CoordSystem2D.h"
 #include "Device/Detector/RectangularDetector.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <cmath>
+#include <numbers>
+
+using std::numbers::pi;
 
 namespace {
 
diff --git a/Tests/Unit/Device/SphericalConverterTest.cpp b/Tests/Unit/Device/SphericalConverterTest.cpp
index 24865ad2d64f66c4cfc61db21d94e11b18f37a0e..e182a222f4aff37fa4d87bd67551703ab7963e47 100644
--- a/Tests/Unit/Device/SphericalConverterTest.cpp
+++ b/Tests/Unit/Device/SphericalConverterTest.cpp
@@ -1,3 +1,4 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
 #include "Device/Beam/Beam.h"
diff --git a/Tests/Unit/Device/SphericalDetectorTest.cpp b/Tests/Unit/Device/SphericalDetectorTest.cpp
index 4b24c94e0eb0fff885b387791082df1884b7274a..16db4853e63903f47b8e338572ac4e4c1d4b41bc 100644
--- a/Tests/Unit/Device/SphericalDetectorTest.cpp
+++ b/Tests/Unit/Device/SphericalDetectorTest.cpp
@@ -1,4 +1,5 @@
 #include "Device/Detector/SphericalDetector.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
 #include "Device/Beam/Beam.h"
diff --git a/Tests/Unit/Sim/CoordSystem1DTest.cpp b/Tests/Unit/Sim/CoordSystem1DTest.cpp
index a8c9c987954196a8672d5180b5647f80f4dc00dc..cdf623ff402e6cf507730bd09cbddcf417d59800 100644
--- a/Tests/Unit/Sim/CoordSystem1DTest.cpp
+++ b/Tests/Unit/Sim/CoordSystem1DTest.cpp
@@ -1,11 +1,13 @@
 #include "Device/Coord/CoordSystem1D.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Sim/Scan/QzScan.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <algorithm>
+#include <numbers>
+
+using std::numbers::pi;
 
 class CoordSystem1DTest : public ::testing::Test {
 public:
diff --git a/Tests/Unit/Sim/SpecularScanTest.cpp b/Tests/Unit/Sim/SpecularScanTest.cpp
index 1cd97a0d2831aca5ae13975902745fc5d51cd8c5..26a92e346f4c26e6e59625a91d094836720a015d 100644
--- a/Tests/Unit/Sim/SpecularScanTest.cpp
+++ b/Tests/Unit/Sim/SpecularScanTest.cpp
@@ -1,3 +1,4 @@
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Param/Distrib/Distributions.h"
 #include "Param/Distrib/ParameterSample.h"
diff --git a/Tests/Unit/Sim/SpecularSimulationTest.cpp b/Tests/Unit/Sim/SpecularSimulationTest.cpp
index 7c7679c77450f956a2cbf491e7515a1060a703b8..814193a62ac142b0239a3d8ff1a114d9be65f7be 100644
--- a/Tests/Unit/Sim/SpecularSimulationTest.cpp
+++ b/Tests/Unit/Sim/SpecularSimulationTest.cpp
@@ -1,8 +1,7 @@
 #include "Sim/Simulation/SpecularSimulation.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
-#include <numbers>
-using std::numbers::pi;
 #include "Device/Beam/Beam.h"
 #include "Device/Data/Datafield.h"
 #include "Device/Detector/IDetector.h"
@@ -16,6 +15,9 @@ using std::numbers::pi;
 #include "Sim/Scan/QzScan.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <iostream>
+#include <numbers>
+
+using std::numbers::pi;
 
 class SpecularSimulationTest : public ::testing::Test {
 protected:
diff --git a/Wrap/Swig/libBornAgainBase.i b/Wrap/Swig/libBornAgainBase.i
index 723786bfa42abb766337d55ebaf1ed6395348630..9893a36a3f2d915a66a2bdfb0ca5670e90e97757 100644
--- a/Wrap/Swig/libBornAgainBase.i
+++ b/Wrap/Swig/libBornAgainBase.i
@@ -18,7 +18,9 @@
 
 %{
 #include <heinz/Complex.h>
+#include "Base/Axis/Bin.h"
 #include "Base/Axis/Frame.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
 #include "Base/Types/ICloneable.h"
diff --git a/auto/Wrap/libBornAgainBase_wrap.cpp b/auto/Wrap/libBornAgainBase_wrap.cpp
index fb6cba1503008a827c230b7495bf196659118d75..eeb096539b51d58925bd0e3cdbc546104b3ac503 100644
--- a/auto/Wrap/libBornAgainBase_wrap.cpp
+++ b/auto/Wrap/libBornAgainBase_wrap.cpp
@@ -6982,7 +6982,9 @@ SWIGINTERN std::vector< std::pair< double,double > >::iterator std_vector_Sl_std
 SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_1(std::vector< std::pair< double,double > > *self,std::vector< std::pair< double,double > >::iterator pos,std::vector< std::pair< double,double > >::size_type n,std::vector< std::pair< double,double > >::value_type const &x){ self->insert(pos, n, x); }
 
 #include <heinz/Complex.h>
+#include "Base/Axis/Bin.h"
 #include "Base/Axis/Frame.h"
+#include "Base/Axis/IAxis.h"
 #include "Base/Axis/MakeScale.h"
 #include "Base/Const/Units.h"
 #include "Base/Types/ICloneable.h"