diff --git a/Base/Axis/MakeScale.cpp b/Base/Axis/MakeScale.cpp
index da46a79afa6bf8c07411ac36d028d2d522251b67..c1be942e0cadc4b3f5420dd03b80e235e70d20c1 100644
--- a/Base/Axis/MakeScale.cpp
+++ b/Base/Axis/MakeScale.cpp
@@ -16,49 +16,22 @@
 #include "Base/Axis/Scale.h"
 #include "Base/Util/Assert.h"
 
-namespace {
-
-std::vector<Bin1D> limits2bins(const std::vector<double>& limits)
+Scale* newGenericScale(const std::string& name, const std::vector<double>& limits)
 {
-    std::vector<Bin1D> result;
+    std::vector<Bin1D> vec;
     ASSERT(!(limits.size() & 1)); // must be an even number
     for (size_t i = 0; i < limits.size(); i += 2)
-        result.emplace_back(Bin1D::FromTo(limits[i], limits[i + 1]));
-    return result;
-}
-
-std::vector<Bin1D> centers2bins(const std::vector<double>& centers)
-{
-    std::vector<Bin1D> result;
-    for (double c : centers)
-        result.emplace_back(Bin1D::At(c));
-    return result;
-}
-
-std::vector<Bin1D> bounds2division(size_t N, double start, double end)
-{
-    ASSERT(N > 0);
-    ASSERT(start <= end);
-    std::vector<Bin1D> result;
-    for (size_t i = 0; i < N; ++i)
-        result.emplace_back(Bin1D::FromTo((N - i) * (start / N) + i * (end / N),
-                                          (N - i - 1) * (start / N) + (i + 1) * (end / N)));
-    ASSERT(result.size() == N);
-    return result;
-}
-
-} // namespace
-
-
-Scale* newGenericScale(const std::string& name, const std::vector<double>& limits)
-{
-    return new Scale(name, limits2bins(limits));
+        vec.emplace_back(Bin1D::FromTo(limits[i], limits[i + 1]));
+    return new Scale(name, vec);
 }
 
 
 Scale ListScan(const std::string& name, const std::vector<double>& points)
 {
-    return Scale(name, centers2bins(points));
+    std::vector<Bin1D> vec;
+    for (double p : points)
+        vec.emplace_back(Bin1D::At(p));
+    return Scale(name, vec);
 }
 
 Scale* newListScan(const std::string& name, const std::vector<double>& points)
@@ -67,50 +40,58 @@ Scale* newListScan(const std::string& name, const std::vector<double>& points)
 }
 
 
-Scale EquiDivision(const std::string& name, size_t nbins, double start, double end)
+Scale EquiDivision(const std::string& name, size_t N, double start, double end)
 {
-    return Scale(name, bounds2division(nbins, start, end));
+    ASSERT(N > 0);
+    ASSERT(start <= end);
+    std::vector<Bin1D> vec;
+    for (size_t i = 0; i < N; ++i)
+        vec.emplace_back(Bin1D::FromTo((N - i) * (start / N) + i * (end / N),
+                                       (N - i - 1) * (start / N) + (i + 1) * (end / N)));
+    ASSERT(vec.size() == N);
+
+    return Scale(name, vec);
 }
 
-Scale* newEquiDivision(const std::string& name, size_t nbins, double start, double end)
+Scale* newEquiDivision(const std::string& name, size_t N, double start, double end)
 {
-    return new Scale(EquiDivision(name, nbins, start, end));
+    return new Scale(EquiDivision(name, N, start, end));
 }
 
-std::shared_ptr<Scale> sharedEquiDivision(const std::string& name, size_t nbins, double start,
+std::shared_ptr<Scale> sharedEquiDivision(const std::string& name, size_t N, double start,
                                           double end)
 {
-    return std::shared_ptr<Scale>(newEquiDivision(name, nbins, start, end));
+    return std::shared_ptr<Scale>(newEquiDivision(name, N, start, end));
 }
 
-std::unique_ptr<Scale> uniqueEquiDivision(const std::string& name, size_t nbins, double start,
+std::unique_ptr<Scale> uniqueEquiDivision(const std::string& name, size_t N, double start,
                                           double end)
 {
-    return std::unique_ptr<Scale>(newEquiDivision(name, nbins, start, end));
+    return std::unique_ptr<Scale>(newEquiDivision(name, N, start, end));
 }
 
 
-Scale EquiScan(const std::string& name, size_t nbins, double start, double end)
+Scale EquiScan(const std::string& name, size_t N, double start, double end)
 {
-    if (nbins < 2)
+    if (N < 2)
         throw std::runtime_error("Cannot scan axis with less than two points");
-    const double delta = (end - start) / (nbins - 1);
-    return EquiDivision(name, nbins, start - delta / 2, end + delta / 2);
+    const double delta = (end - start) / (N - 1);
+    return EquiDivision(name, N, start - delta / 2, end + delta / 2);
 }
 
-Scale* newEquiScan(const std::string& name, size_t nbins, double start, double end)
+Scale* newEquiScan(const std::string& name, size_t N, double start, double end)
 {
-    return new Scale(EquiScan(name, nbins, start, end));
+    return new Scale(EquiScan(name, N, start, end));
 }
 
-std::shared_ptr<Scale> sharedEquiScan(const std::string& name, size_t nbins, double start,
+std::shared_ptr<Scale> sharedEquiScan(const std::string& name, size_t N, double start,
                                       double end)
 {
-    return std::shared_ptr<Scale>(newEquiDivision(name, nbins, start, end));
+    return std::shared_ptr<Scale>(newEquiDivision(name, N, start, end));
 }
 
-std::unique_ptr<Scale> uniqueEquiScan(const std::string& name, size_t nbins, double start,
+std::unique_ptr<Scale> uniqueEquiScan(const std::string& name, size_t N, double start,
                                       double end)
 {
-    return std::unique_ptr<Scale>(newEquiDivision(name, nbins, start, end));
+    return std::unique_ptr<Scale>(newEquiDivision(name, N, start, end));
 }
diff --git a/Base/Axis/MakeScale.h b/Base/Axis/MakeScale.h
index 997addb8ca74244974f2274db4f7f2da223ebad8..a879f259fecae19192d220fb9a3ff175692ea746 100644
--- a/Base/Axis/MakeScale.h
+++ b/Base/Axis/MakeScale.h
@@ -31,22 +31,22 @@ Scale* newListScan(const std::string& name, const std::vector<double>& points);
 #endif // SWIG
 
 //! Returns axis with fixed bin size.
-Scale EquiDivision(const std::string& name, size_t nbins, double start, double end);
+Scale EquiDivision(const std::string& name, size_t N, double start, double end);
 #ifndef SWIG
-Scale* newEquiDivision(const std::string& name, size_t nbins, double start, double end);
-std::shared_ptr<Scale> sharedEquiDivision(const std::string& name, size_t nbins, double start,
+Scale* newEquiDivision(const std::string& name, size_t N, double start, double end);
+std::shared_ptr<Scale> sharedEquiDivision(const std::string& name, size_t N, double start,
                                           double end);
-std::unique_ptr<Scale> uniqueEquiDivision(const std::string& name, size_t nbins, double start,
+std::unique_ptr<Scale> uniqueEquiDivision(const std::string& name, size_t N, double start,
                                           double end);
 #endif // SWIG
 
 #ifndef SWIG
 //! Returns a EquiDivision determined by first and last point in scan.
-Scale EquiScan(const std::string& name, size_t nbins, double start, double end);
-Scale* newEquiScan(const std::string& name, size_t nbins, double start, double end);
-std::shared_ptr<Scale> sharedEquiScan(const std::string& name, size_t nbins, double start,
+Scale EquiScan(const std::string& name, size_t N, double start, double end);
+Scale* newEquiScan(const std::string& name, size_t N, double start, double end);
+std::shared_ptr<Scale> sharedEquiScan(const std::string& name, size_t N, double start,
                                       double end);
-std::unique_ptr<Scale> uniqueEquiScan(const std::string& name, size_t nbins, double start,
+std::unique_ptr<Scale> uniqueEquiScan(const std::string& name, size_t N, double start,
                                       double end);
 #endif // SWIG
 
diff --git a/auto/Wrap/libBornAgainBase.py b/auto/Wrap/libBornAgainBase.py
index 25f1d41316b9e39184be88cfac36c77bd366345d..b5addf320345ddbd276f02b6d3bca8f9b5222fe2 100644
--- a/auto/Wrap/libBornAgainBase.py
+++ b/auto/Wrap/libBornAgainBase.py
@@ -1949,9 +1949,9 @@ def ListScan(name, points):
     r"""ListScan(std::string const & name, vdouble1d_t points) -> Scale"""
     return _libBornAgainBase.ListScan(name, points)
 
-def EquiDivision(name, nbins, start, end):
-    r"""EquiDivision(std::string const & name, size_t nbins, double start, double end) -> Scale"""
-    return _libBornAgainBase.EquiDivision(name, nbins, start, end)
+def EquiDivision(name, N, start, end):
+    r"""EquiDivision(std::string const & name, size_t N, double start, double end) -> Scale"""
+    return _libBornAgainBase.EquiDivision(name, N, start, end)
 class Frame(ICloneable):
     r"""Proxy of C++ Frame class."""
 
diff --git a/auto/Wrap/libBornAgainBase_wrap.cpp b/auto/Wrap/libBornAgainBase_wrap.cpp
index 9593b580ca4842861eb8ade133806502b793017a..104060094069d4252905b998bb548afb568c2522 100644
--- a/auto/Wrap/libBornAgainBase_wrap.cpp
+++ b/auto/Wrap/libBornAgainBase_wrap.cpp
@@ -28717,7 +28717,7 @@ static PyMethodDef SwigMethods[] = {
 	 { "Scale_swigregister", Scale_swigregister, METH_O, NULL},
 	 { "Scale_swiginit", Scale_swiginit, METH_VARARGS, NULL},
 	 { "ListScan", _wrap_ListScan, METH_VARARGS, "ListScan(std::string const & name, vdouble1d_t points) -> Scale"},
-	 { "EquiDivision", _wrap_EquiDivision, METH_VARARGS, "EquiDivision(std::string const & name, size_t nbins, double start, double end) -> Scale"},
+	 { "EquiDivision", _wrap_EquiDivision, METH_VARARGS, "EquiDivision(std::string const & name, size_t N, double start, double end) -> Scale"},
 	 { "new_Frame", _wrap_new_Frame, METH_VARARGS, "\n"
 		"Frame(std::vector< Scale const *,std::allocator< Scale const * > > && axes)\n"
 		"Frame(Scale const *&& ax0)\n"