diff --git a/GUI/Model/Beam/BeamAngleItems.cpp b/GUI/Model/Beam/BeamAngleItems.cpp
index e225e11edfe31c77cdc173dea672f56ac5b30acb..b0fc8655d4d9d6f15da8f65c8a1638d0ffa9939f 100644
--- a/GUI/Model/Beam/BeamAngleItems.cpp
+++ b/GUI/Model/Beam/BeamAngleItems.cpp
@@ -19,7 +19,7 @@
 
 BeamAzimuthalAngleItem::BeamAzimuthalAngleItem()
 {
-    m_distribution.initWithInitializer("Distribution", "", DistributionsCatalog::types(),
+    m_distribution.initWithInitializer("Distribution", "", DistributionCatalog::types(),
                                        initDistribution);
 }
 
@@ -59,7 +59,7 @@ double BeamAzimuthalAngleItem::scaleFactor() const
 
 BeamInclinationAngleItem::BeamInclinationAngleItem()
 {
-    m_distribution.initWithInitializer("Distribution", "", DistributionsCatalog::types(),
+    m_distribution.initWithInitializer("Distribution", "", DistributionCatalog::types(),
                                        initDistribution);
 }
 
diff --git a/GUI/Model/Beam/BeamDistributionItem.h b/GUI/Model/Beam/BeamDistributionItem.h
index 84d7e94cdae7de4fc385308ec97cc73a61e7a3b7..c13c83d3b3d347ef9ebe17c1dbbe41c6d61b8793 100644
--- a/GUI/Model/Beam/BeamDistributionItem.h
+++ b/GUI/Model/Beam/BeamDistributionItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_BEAM_BEAMDISTRIBUTIONITEM_H
 #define BORNAGAIN_GUI_MODEL_BEAM_BEAMDISTRIBUTIONITEM_H
 
-#include "GUI/Model/Beam/DistributionsCatalog.h"
+#include "GUI/Model/Beam/DistributionCatalog.h"
 #include "GUI/Model/Descriptor/PolyItem.h"
 #include "Param/Distrib/ParameterDistribution.h"
 
@@ -37,12 +37,12 @@ public:
     virtual double scaleFactor() const;
 
     DistributionItem* distributionItem() const { return m_distribution.certainItem(); }
-    PolyItem<DistributionsCatalog>& distributionSelection() { return m_distribution; }
+    PolyItem<DistributionCatalog>& distributionSelection() { return m_distribution; }
 
     virtual std::unique_ptr<IDistribution1D> createDistribution1D() const;
 
 protected:
-    PolyItem<DistributionsCatalog> m_distribution;
+    PolyItem<DistributionCatalog> m_distribution;
 };
 
 #endif // BORNAGAIN_GUI_MODEL_BEAM_BEAMDISTRIBUTIONITEM_H
diff --git a/GUI/Model/Beam/BeamWavelengthItem.cpp b/GUI/Model/Beam/BeamWavelengthItem.cpp
index edca8591bd7caafc592c5925c54e6d79fa5a4f0a..e490080928cc54140209e8140bd6ff5c88642136 100644
--- a/GUI/Model/Beam/BeamWavelengthItem.cpp
+++ b/GUI/Model/Beam/BeamWavelengthItem.cpp
@@ -43,8 +43,8 @@ BeamWavelengthItem::BeamWavelengthItem(bool onlySymmetricDistributions)
 {
     m_distribution.initWithInitializer("Distribution", "",
                                        onlySymmetricDistributions
-                                           ? DistributionsCatalog::symmetricTypes()
-                                           : DistributionsCatalog::types(),
+                                           ? DistributionCatalog::symmetricTypes()
+                                           : DistributionCatalog::types(),
                                        initDistribution);
 }
 
diff --git a/GUI/Model/Beam/DistributionsCatalog.cpp b/GUI/Model/Beam/DistributionCatalog.cpp
similarity index 83%
rename from GUI/Model/Beam/DistributionsCatalog.cpp
rename to GUI/Model/Beam/DistributionCatalog.cpp
index 140425988dfa291c7c336c2653d2f54b857438d7..c211b1fd3c8150387c7182a8213d8a08e82558ad 100644
--- a/GUI/Model/Beam/DistributionsCatalog.cpp
+++ b/GUI/Model/Beam/DistributionCatalog.cpp
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Beam/DistributionsCatalog.cpp
-//! @brief     Implements class DistributionsCatalog.
+//! @file      GUI/Model/Beam/DistributionCatalog.cpp
+//! @brief     Implements class DistributionCatalog.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Beam/DistributionsCatalog.h"
+#include "GUI/Model/Beam/DistributionCatalog.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Beam/DistributionItems.h"
 
-DistributionItem* DistributionsCatalog::create(Type type)
+DistributionItem* DistributionCatalog::create(Type type)
 {
     switch (type) {
     case Type::None:
@@ -37,18 +37,18 @@ DistributionItem* DistributionsCatalog::create(Type type)
     ASSERT_NEVER;
 }
 
-QVector<DistributionsCatalog::Type> DistributionsCatalog::types()
+QVector<DistributionCatalog::Type> DistributionCatalog::types()
 {
     return {Type::None,      Type::Gate,   Type::Lorentz,  Type::Gaussian,
             Type::LogNormal, Type::Cosine, Type::Trapezoid};
 }
 
-QVector<DistributionsCatalog::Type> DistributionsCatalog::symmetricTypes()
+QVector<DistributionCatalog::Type> DistributionCatalog::symmetricTypes()
 {
     return {Type::None, Type::Lorentz, Type::Gaussian, Type::Cosine};
 }
 
-UiInfo DistributionsCatalog::uiInfo(Type type)
+UiInfo DistributionCatalog::uiInfo(Type type)
 {
     switch (type) {
     case Type::None:
@@ -69,7 +69,7 @@ UiInfo DistributionsCatalog::uiInfo(Type type)
     ASSERT_NEVER;
 }
 
-DistributionsCatalog::Type DistributionsCatalog::type(const DistributionItem* item)
+DistributionCatalog::Type DistributionCatalog::type(const DistributionItem* item)
 {
     if (dynamic_cast<const DistributionNoneItem*>(item))
         return Type::None;
diff --git a/GUI/Model/Beam/DistributionsCatalog.h b/GUI/Model/Beam/DistributionCatalog.h
similarity index 81%
rename from GUI/Model/Beam/DistributionsCatalog.h
rename to GUI/Model/Beam/DistributionCatalog.h
index 85a5252ab139c368506739398bfe9b7c17d11a88..a1e84b7347ab1e7d3cbf08aefbaa772b2a73dedd 100644
--- a/GUI/Model/Beam/DistributionsCatalog.h
+++ b/GUI/Model/Beam/DistributionCatalog.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Beam/DistributionsCatalog.h
-//! @brief     Defines class DistributionsCatalog.
+//! @file      GUI/Model/Beam/DistributionCatalog.h
+//! @brief     Defines class DistributionCatalog.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -12,15 +12,15 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_BEAM_DISTRIBUTIONSCATALOG_H
-#define BORNAGAIN_GUI_MODEL_BEAM_DISTRIBUTIONSCATALOG_H
+#ifndef BORNAGAIN_GUI_MODEL_BEAM_DISTRIBUTIONCATALOG_H
+#define BORNAGAIN_GUI_MODEL_BEAM_DISTRIBUTIONCATALOG_H
 
 #include "GUI/Model/Type/UiInfo.h"
 #include <QVector>
 
 class DistributionItem;
 
-class DistributionsCatalog {
+class DistributionCatalog {
 public:
     // used in PolyItem<Catalog>
     using BaseType = DistributionItem;
@@ -51,4 +51,4 @@ public:
     static Type type(const DistributionItem* item);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_BEAM_DISTRIBUTIONSCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_BEAM_DISTRIBUTIONCATALOG_H
diff --git a/GUI/Model/Beam/GrazingScanItem.cpp b/GUI/Model/Beam/GrazingScanItem.cpp
index 0481d8048ced7a31b413c563f6728ea26063d5f3..752cef1d3de51d16f4b873e7061fd6f7b812d2a1 100644
--- a/GUI/Model/Beam/GrazingScanItem.cpp
+++ b/GUI/Model/Beam/GrazingScanItem.cpp
@@ -67,7 +67,7 @@ GrazingScanItem::GrazingScanItem()
     : BeamDistributionItem()
     , m_current_axis_is_uniform_axis(true)
 {
-    m_distribution.initWithInitializer("Distribution", "", DistributionsCatalog::symmetricTypes(),
+    m_distribution.initWithInitializer("Distribution", "", DistributionCatalog::symmetricTypes(),
                                        initDistribution);
 
     m_uniform_alpha_axis = std::make_unique<BasicAxisItem>();
diff --git a/GUI/Model/FromCore/ItemizeSimulation.cpp b/GUI/Model/FromCore/ItemizeSimulation.cpp
index 339766aff135738aab7a21f45cfd3a32c6427d2a..23f752f3b75726560d31947e33eeb7f7861b5dce 100644
--- a/GUI/Model/FromCore/ItemizeSimulation.cpp
+++ b/GUI/Model/FromCore/ItemizeSimulation.cpp
@@ -131,7 +131,7 @@ void setMaskStacks(DetectorItem* detector_item, const IDetector& detector)
 void setDistributionTypeAndPars(BeamDistributionItem* pdi, const IDistribution1D* d)
 {
     const double factor = 1 / pdi->scaleFactor();
-    PolyItem<DistributionsCatalog>& di = pdi->distributionSelection();
+    PolyItem<DistributionCatalog>& di = pdi->distributionSelection();
 
     if (const auto* dd = dynamic_cast<const DistributionGate*>(d)) {
         auto* item = di.createCertainItem<DistributionGateItem>();
diff --git a/GUI/Model/Job/ParameterTreeBuilder.cpp b/GUI/Model/Job/ParameterTreeBuilder.cpp
index ced6797b172230ac27dda320644efe2f49f6b015..a2926dd85dd0405dbaed7d0240e859b4e16c93db 100644
--- a/GUI/Model/Job/ParameterTreeBuilder.cpp
+++ b/GUI/Model/Job/ParameterTreeBuilder.cpp
@@ -363,8 +363,8 @@ void ParameterTreeBuilder::addBeamDistribution(ParameterLabelItem* parentLabel,
         if (withMean)
             addParameterItem(parentLabel, dn->mean(), label);
     } else {
-        const auto type = DistributionsCatalog::type(distribution);
-        const auto name = DistributionsCatalog::uiInfo(type).menuEntry;
+        const auto type = DistributionCatalog::type(distribution);
+        const auto name = DistributionCatalog::uiInfo(type).menuEntry;
         auto* item = new ParameterLabelItem(QString("%1 (%2 distribution)").arg(label).arg(name),
                                             parentLabel);
         for (auto* d : distribution->distributionValues(withMean))