diff --git a/GUI/coregui/Models/BeamItems.cpp b/GUI/coregui/Models/BeamItems.cpp
index 70590c911609d19749b1833fecb6919f11ccb952..f5bc558dc8e6ce6ea41b1f45868108e6d870408b 100644
--- a/GUI/coregui/Models/BeamItems.cpp
+++ b/GUI/coregui/Models/BeamItems.cpp
@@ -103,6 +103,11 @@ void BeamItem::setAzimuthalAngle(double value)
     item<BeamDistributionItem>(P_AZIMUTHAL_ANGLE)->resetToValue(value);
 }
 
+BeamAzimuthalAngleItem* BeamItem::azimuthalAngleItem() const
+{
+    return item<BeamAzimuthalAngleItem>(P_AZIMUTHAL_ANGLE);
+}
+
 std::unique_ptr<Beam> BeamItem::createBeam() const
 {
     double lambda = wavelength();
@@ -145,7 +150,7 @@ SpecularBeamItem::SpecularBeamItem() : BeamItem("SpecularBeam")
     initInclinationAngle<SpecularBeamInclinationItem>();
     initWavelength<SpecularBeamWavelengthItem>();
 
-    getItem(P_AZIMUTHAL_ANGLE)->setVisible(false);
+    azimuthalAngleItem()->setVisible(false);
     getItem(P_POLARIZATION)->setVisible(false);
 
     auto item = addGroupProperty(P_FOOPTPRINT, "Footprint group");
diff --git a/GUI/coregui/Models/BeamItems.h b/GUI/coregui/Models/BeamItems.h
index c7df4a7c640d7cc690ca4aef88b41d0dfdeb2105..ef8889caa7823ada9d4e884409ac49839a83cfa4 100644
--- a/GUI/coregui/Models/BeamItems.h
+++ b/GUI/coregui/Models/BeamItems.h
@@ -19,6 +19,7 @@
 
 class BasicAxisItem;
 class Beam;
+class BeamAzimuthalAngleItem;
 class BeamDistributionItem;
 class BeamWavelengthItem;
 class FootprintItem;
@@ -30,8 +31,8 @@ private:
     static const QString P_INTENSITY;
     static const QString P_WAVELENGTH;
     static const QString P_INCLINATION_ANGLE;
-public:
     static const QString P_AZIMUTHAL_ANGLE;
+public:
     static const QString P_POLARIZATION;
 
     ~BeamItem() override;
@@ -50,6 +51,7 @@ public:
     
     double getAzimuthalAngle() const;
     void setAzimuthalAngle(double value);
+    BeamAzimuthalAngleItem* azimuthalAngleItem() const;
 
     std::unique_ptr<Beam> createBeam() const;
 
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index ed2c2edf30b8f0e0aeafbdc9c88ed5b48aa87202..b33fe5581609585e1974e862e9e800602cd53433 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -74,10 +74,6 @@ void setPositionVariance(SessionItem* item, const IInterferenceFunction& iff);
 void setDistribution(SessionItem* item, ParameterDistribution par_distr, QString group_name,
                      double factor = 1.0);
 
-void addDistributionToBeamItem(ParameterDistribution::WhichParameter which,
-                               const QString& item_name, const ParameterDistribution& distribution,
-                               const BeamItem* beam_item);
-
 void addDistributionToBeamItem(ParameterDistribution::WhichParameter which,
                                BeamDistributionItem* item,
                                const ParameterDistribution& distribution);
@@ -233,7 +229,8 @@ void TransformFromDomain::setGISASBeamItem(BeamItem* beam_item, const GISASSimul
                                   beam_item->inclinationAngleItem(),
                                   distributions[i]);
         addDistributionToBeamItem(ParameterDistribution::BeamAzimuthalAngle,
-                                  BeamItem::P_AZIMUTHAL_ANGLE, distributions[i], beam_item);
+                                  beam_item->azimuthalAngleItem(),
+                                  distributions[i]);
     }
 
     // polarization parameters
@@ -807,17 +804,6 @@ void setDistribution(SessionItem* part_distr_item, ParameterDistribution par_dis
         distItem->init_limits_group(par_distr.getLimits(), factor);
 }
 
-void addDistributionToBeamItem(ParameterDistribution::WhichParameter which,
-                               const QString& item_name, const ParameterDistribution& distribution,
-                               const BeamItem* beam_item)
-{
-    if (distribution.whichParameter() != which)
-        return;
-
-    const auto beam_parameter = dynamic_cast<BeamDistributionItem*>(beam_item->getItem(item_name));
-    TransformFromDomain::setItemFromSample(beam_parameter, distribution);
-}
-
 void addDistributionToBeamItem(ParameterDistribution::WhichParameter which,
                                BeamDistributionItem* item,
                                const ParameterDistribution& distribution)
diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp
index 8eed27c9c761b38256a30e86c2d260f4ffeec0f6..4aee56429abdf6dab0e861d3bce32aa20c501d82 100644
--- a/GUI/coregui/Models/TransformToDomain.cpp
+++ b/GUI/coregui/Models/TransformToDomain.cpp
@@ -149,8 +149,8 @@ void TransformToDomain::addDistributionParametersToSimulation(const BeamItem& be
         ParameterDistribution::BeamInclinationAngle,
         beam_item.inclinationAngleItem(), simulation);
     setParameterDistributionToSimulation<BeamAzimuthalAngleItem>(
-        ParameterDistribution::BeamAzimuthalAngle, beam_item.getItem(BeamItem::P_AZIMUTHAL_ANGLE),
-        simulation);
+        ParameterDistribution::BeamAzimuthalAngle,
+        beam_item.azimuthalAngleItem(), simulation);
 }
 
 void TransformToDomain::addBeamDivergencesToScan(const BeamItem& beam_item,
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
index 19dd1252fa175fad072ee97571326b46734c5f76..70fa36ad97a3204e54feb57a957ad0b6cc40d300 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.h"
+#include "GUI/coregui/Models/BeamAngleItems.h"
 #include "GUI/coregui/Models/BeamDistributionItem.h"
 #include "GUI/coregui/Models/BeamWavelengthItem.h"
 #include "GUI/coregui/Models/InstrumentItems.h"
@@ -70,7 +71,7 @@ void GISASBeamEditor::subscribeToItem()
     auto inclinationItem = beamItem()->inclinationAngleItem();
     m_inclinationEditor->setItem(inclinationItem->getItem(BeamDistributionItem::P_DISTRIBUTION));
 
-    auto azimuthalItem = beamItem()->getItem(BeamItem::P_AZIMUTHAL_ANGLE);
+    auto azimuthalItem = beamItem()->azimuthalAngleItem();
     m_azimuthalEditor->setItem(azimuthalItem->getItem(BeamDistributionItem::P_DISTRIBUTION));
 }
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/OffSpecularBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/OffSpecularBeamEditor.cpp
index 2fad56c60667b54588b85eaf05763d6b180c8a18..a93cd28a0ddb554a027e482787d304da0aa0f127 100644
--- a/GUI/coregui/Views/InstrumentWidgets/OffSpecularBeamEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/OffSpecularBeamEditor.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/coregui/Views/InstrumentWidgets/OffSpecularBeamEditor.h"
+#include "GUI/coregui/Models/BeamAngleItems.h"
 #include "GUI/coregui/Models/BeamDistributionItem.h"
 #include "GUI/coregui/Models/BeamWavelengthItem.h"
 #include "GUI/coregui/Models/InstrumentItems.h"
@@ -70,7 +71,7 @@ void OffSpecularBeamEditor::subscribeToItem()
     auto inclinationItem = instrumentItem()->getItem(OffSpecularInstrumentItem::P_ALPHA_AXIS);
     m_inclinationEditor->setItem(inclinationItem);
 
-    auto azimuthalItem = beamItem()->getItem(BeamItem::P_AZIMUTHAL_ANGLE);
+    auto azimuthalItem = beamItem()->azimuthalAngleItem();
     m_azimuthalEditor->setItem(azimuthalItem->getItem(BeamDistributionItem::P_DISTRIBUTION));
 }