diff --git a/Device/Coord/CoordSystem1D.cpp b/Device/Coord/CoordSystem1D.cpp
index f49617ee1e52d0642e26410db3f7b1df98f89162..272bf817624a6fcb345647f42a87f2793321e1c7 100644
--- a/Device/Coord/CoordSystem1D.cpp
+++ b/Device/Coord/CoordSystem1D.cpp
@@ -50,12 +50,6 @@ CoordSystem1D::CoordSystem1D(const Scale* axis)
 {
 }
 
-Scale* CoordSystem1D::convertedAxis(size_t i_axis) const
-{
-    ASSERT(i_axis == 0);
-    return m_axes[0]->clone();
-}
-
 
 //  ************************************************************************************************
 //  class AngularReflectometryCoords
diff --git a/Device/Coord/CoordSystem1D.h b/Device/Coord/CoordSystem1D.h
index 8e56fb13ff47ba18c14ee84589c568d5956b139c..ae8ca7b1f072414fad3eba6f8ee240b87383d5b5 100644
--- a/Device/Coord/CoordSystem1D.h
+++ b/Device/Coord/CoordSystem1D.h
@@ -30,9 +30,6 @@ public:
     ~CoordSystem1D() override = default;
 
     CoordSystem1D* clone() const override = 0;
-
-    //! Creates axis in converted units.
-    Scale* convertedAxis(size_t i_axis) const override;
 };
 
 
diff --git a/Device/Coord/CoordSystem2D.cpp b/Device/Coord/CoordSystem2D.cpp
index f3a3b559885d52a29d199a29a9068806787291c6..94a513686212658a175d9bb68aab4b2da1290cbe 100644
--- a/Device/Coord/CoordSystem2D.cpp
+++ b/Device/Coord/CoordSystem2D.cpp
@@ -38,13 +38,6 @@ CoordSystem2D::CoordSystem2D(const CoordSystem2D& other)
 {
 }
 
-Scale* CoordSystem2D::convertedAxis(size_t i_axis) const
-{
-    const auto& axis_name = nameOfAxis(i_axis);
-    const auto axis_size = m_axes[i_axis]->size();
-    return newEquiDivision(axis_name, axis_size, m_axes[i_axis]->min(), m_axes[i_axis]->max());
-}
-
 //  ************************************************************************************************
 //  class SphericalCoords
 //  ************************************************************************************************
diff --git a/Device/Coord/CoordSystem2D.h b/Device/Coord/CoordSystem2D.h
index 8a192ecc34868bbb2501569b860d4271785fcb30..ab65ce7003f30895bccb2ea69071baddb2907e94 100644
--- a/Device/Coord/CoordSystem2D.h
+++ b/Device/Coord/CoordSystem2D.h
@@ -32,8 +32,6 @@ public:
     CoordSystem2D(std::vector<const Scale*>&& axes);
     ~CoordSystem2D() override = default;
 
-    Scale* convertedAxis(size_t i_axis) const override;
-
 protected:
     CoordSystem2D(const CoordSystem2D& other);
 
diff --git a/Device/Coord/ICoordSystem.h b/Device/Coord/ICoordSystem.h
index 6abd7704f4dc6023b38291bfd576b94159e1d2a2..2ed2d638fe6f8ccaaf4e479effa0560b95920c4e 100644
--- a/Device/Coord/ICoordSystem.h
+++ b/Device/Coord/ICoordSystem.h
@@ -32,8 +32,6 @@ public:
 
     virtual std::string nameOfAxis(size_t i_axis) const = 0;
 
-    virtual Scale* convertedAxis(size_t i_axis) const = 0;
-
     std::vector<const Scale*> convertedAxes() const;
 };
 
diff --git a/Device/Histo/SimulationResult.cpp b/Device/Histo/SimulationResult.cpp
index 692c19f41355e8584f614d74d3515c1ea6f7f1bd..8b16c1ee5e685676faa798c58a96af8478a3165d 100644
--- a/Device/Histo/SimulationResult.cpp
+++ b/Device/Histo/SimulationResult.cpp
@@ -76,8 +76,7 @@ std::vector<double> SimulationResult::convertedBinCenters() const
 std::vector<double> SimulationResult::convertedBinCenters(size_t i_axis) const
 {
     ASSERT(i_axis < converter().rank());
-    auto* axis = converter().convertedAxis(i_axis); // TODO memory leak
-    return axis->binCenters();
+    return converter().axis(i_axis).binCenters();
 }
 
 void SimulationResult::setTitle(const std::string& title)
diff --git a/GUI/Model/Device/InstrumentItems.cpp b/GUI/Model/Device/InstrumentItems.cpp
index c31a34b66e1552101289d4c675f967ca34fbf8fd..55a7e2896a296bc4a0cded29ce418ac7f5155d9e 100644
--- a/GUI/Model/Device/InstrumentItems.cpp
+++ b/GUI/Model/Device/InstrumentItems.cpp
@@ -429,9 +429,9 @@ ISimulation* SpecularInstrumentItem::createSimulation(const MultiLayer& sample)
     BasicAxisItem* const axis_item = scanItem()->inclinationAxisItem();
 
     const auto converter = createCoordSystem();
-    std::unique_ptr<Scale> converted_axis(converter->convertedAxis(0));
+    const Scale& ax = converter->axis(0);
 
-    std::unique_ptr<Scale> axis = axis_item->itemToAxis(Units::deg, *converted_axis);
+    std::unique_ptr<Scale> axis = axis_item->itemToAxis(Units::deg, ax);
     std::unique_ptr<IBeamScan> scan = createScan(*axis);
     if (withPolarizer())
         scan->setPolarization(m_polarizerBlochVector);