diff --git a/GUI/Model/Beam/BeamDistributionItem.cpp b/GUI/Model/Beam/BeamDistributionItem.cpp
index 72b988ad79b11ae33293b851f1891a3a1d56d86e..7812cd5c594f8497c29066f86caf034d82726315 100644
--- a/GUI/Model/Beam/BeamDistributionItem.cpp
+++ b/GUI/Model/Beam/BeamDistributionItem.cpp
@@ -25,7 +25,8 @@ const QString ExpandGroupbox("ExpandGroupbox"); // obsolete since v22.0
 } // namespace
 
 
-BeamDistributionItem::BeamDistributionItem()
+BeamDistributionItem::BeamDistributionItem(double scale)
+    : m_scale(scale)
 {
     m_distribution.simpleInit("Distribution", "", DistributionCatalog::Type::None);
 }
@@ -60,8 +61,3 @@ void BeamDistributionItem::resetToValue(double value)
     d->mean().setDVal(value);
     m_distribution.setCertainItem(d);
 }
-
-double BeamDistributionItem::scaleFactor() const
-{
-    return 1.0;
-}
diff --git a/GUI/Model/Beam/BeamDistributionItem.h b/GUI/Model/Beam/BeamDistributionItem.h
index 71ec4b9882c1cfc7b5c19a18431eaac7473bf0b3..56b3b1a8a67a5d8a5c7a9f7bb1e0acc93778c45f 100644
--- a/GUI/Model/Beam/BeamDistributionItem.h
+++ b/GUI/Model/Beam/BeamDistributionItem.h
@@ -25,7 +25,7 @@ class DistributionItem;
 
 class BeamDistributionItem {
 public:
-    BeamDistributionItem();
+    BeamDistributionItem(double scale);
     virtual ~BeamDistributionItem();
 
     virtual void writeTo(QXmlStreamWriter* w) const;
@@ -34,12 +34,13 @@ public:
     virtual double centralValue() const;
     void resetToValue(double value);
 
-    virtual double scaleFactor() const;
+    double scaleFactor() const { return m_scale; }
 
     DistributionItem* distributionItem() const { return m_distribution.certainItem(); }
     PolyItem<DistributionCatalog>& distributionSelection() { return m_distribution; }
 
 protected:
+    const double m_scale;
     PolyItem<DistributionCatalog> m_distribution;
 };
 
diff --git a/GUI/Model/Beam/GrazingScanItem.cpp b/GUI/Model/Beam/GrazingScanItem.cpp
index a97aff1cb7beb2bc1913ceb3cff7ffc92bf782fd..dccd47ba238f8bbdf80a8dbf89fd830ab1af1657 100644
--- a/GUI/Model/Beam/GrazingScanItem.cpp
+++ b/GUI/Model/Beam/GrazingScanItem.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Model/Beam/GrazingScanItem.h"
 #include "Base/Const/Units.h"
 
-double GrazingScanItem::scaleFactor() const
+GrazingScanItem::GrazingScanItem()
+    : BeamDistributionItem(Units::deg)
 {
-    return Units::deg;
 }
diff --git a/GUI/Model/Beam/GrazingScanItem.h b/GUI/Model/Beam/GrazingScanItem.h
index 8efa1e23c8e9c919fe6f3915609bc33debffe2b9..04ef787fe5bd74e7468441e036c21fbb930d3e13 100644
--- a/GUI/Model/Beam/GrazingScanItem.h
+++ b/GUI/Model/Beam/GrazingScanItem.h
@@ -20,7 +20,7 @@
 
 class GrazingScanItem : public BeamDistributionItem {
 public:
-    double scaleFactor() const override;
+    GrazingScanItem();
 };
 
 #endif // BORNAGAIN_GUI_MODEL_BEAM_GRAZINGSCANITEM_H
diff --git a/GUI/Model/Beam/SourceItems.cpp b/GUI/Model/Beam/SourceItems.cpp
index d1602b032856029d4da070b557f4cf18762b1618..5b19519674b9a65c6241001238cfa50e3aea522d 100644
--- a/GUI/Model/Beam/SourceItems.cpp
+++ b/GUI/Model/Beam/SourceItems.cpp
@@ -72,7 +72,7 @@ SourceItem::SourceItem()
     m_intensity.init("Intensity", "Beam intensity in neutrons/photons per sec.", 1e8, 3,
                      RealLimits::limited(0.0, 1e32), "intensity");
 
-    m_azimuthal_angle_item = std::make_unique<BeamDistributionItem>();
+    m_azimuthal_angle_item = std::make_unique<BeamDistributionItem>(1.);
     m_footprint.simpleInit("Type", "Footprint type", FootprintCatalog::Type::Gaussian);
 }
 
@@ -160,8 +160,8 @@ void SourceItem::setFootprint(const IFootprint* footprint)
 
 BeamItem::BeamItem()
 {
-    m_wavelength_item = std::make_unique<BeamDistributionItem>();
-    m_inclination_angle_item = std::make_unique<BeamDistributionItem>();
+    m_wavelength_item = std::make_unique<BeamDistributionItem>(1.);
+    m_inclination_angle_item = std::make_unique<BeamDistributionItem>(1.);
 }
 
 void BeamItem::writeTo(QXmlStreamWriter* w) const
@@ -219,7 +219,7 @@ ScanItem::ScanItem()
     : m_current_axis_is_uniform_axis(true)
 {
     m_grazing_scan_item = std::make_unique<GrazingScanItem>();
-    m_wavelength_item = std::make_unique<BeamDistributionItem>();
+    m_wavelength_item = std::make_unique<BeamDistributionItem>(1.);
 
     m_uniform_alpha_axis = std::make_unique<BasicAxisItem>();
     setAxisPresentationDefaults(m_uniform_alpha_axis.get());