diff --git a/GUI/coregui/Models/GroupPropertyRegistry.cpp b/GUI/coregui/Models/GroupPropertyRegistry.cpp
index eced6bbb83f3dda1dfe82ba7302331951c20396e..28ef9b182ef041ab3be17ea736ee9717dfdb82b7 100644
--- a/GUI/coregui/Models/GroupPropertyRegistry.cpp
+++ b/GUI/coregui/Models/GroupPropertyRegistry.cpp
@@ -50,6 +50,14 @@ GroupPropertyRegistry::SelectableGroupMap_t initializeSelectableGroupMap()
     detectors[Constants::PhiAlphaDetectorType] = "[Phi, Alpha] plane";
     result[Constants::DetectorGroup] = detectors;
 
+    QMap<QString, QString> distributions;
+    distributions[Constants::DistributionGateType] = "Gate distribution";
+    distributions[Constants::DistributionLorentzType] = "Lorentz distribution";
+    distributions[Constants::DistributionGaussianType] = "Gaussian distribution";
+    distributions[Constants::DistributionLogNormalType] = "Log Normal distribution";
+    distributions[Constants::DistributionCosineType] = "Cosine distribution";
+    result[Constants::DistributionGroup] = distributions;
+
     QMap<QString, QString> pdfs_1d;
     pdfs_1d[Constants::FTDistribution1DCauchyType] = "Cauchy 1D";
     pdfs_1d[Constants::FTDistribution1DGaussType] = "Gauss 1D";
diff --git a/GUI/coregui/Models/ItemFactory.cpp b/GUI/coregui/Models/ItemFactory.cpp
index e6a6f0e81263b3377c6a5078ffebbba7e5373f38..ab8e005fc83cfcdcbe686cff05943d29364bab9f 100644
--- a/GUI/coregui/Models/ItemFactory.cpp
+++ b/GUI/coregui/Models/ItemFactory.cpp
@@ -22,6 +22,7 @@
 #include "RotationItems.h"
 #include "ParticleCoreShellItem.h"
 #include "ParticleDistributionItem.h"
+#include "DistributionItem.h"
 #include "InterferenceFunctionItems.h"
 #include "InstrumentItem.h"
 #include "BeamItem.h"
@@ -89,6 +90,12 @@ ItemFactory::ItemMap_t initializeItemMap() {
     result[Constants::DetectorType] = &createInstance<DetectorItem>;
     result[Constants::PhiAlphaDetectorType] = &createInstance<PhiAlphaDetectorItem>;
 
+    result[Constants::DistributionGateType] = &createInstance<DistributionGateItem>;
+    result[Constants::DistributionLorentzType] = &createInstance<DistributionLorentzItem>;
+    result[Constants::DistributionGaussianType] = &createInstance<DistributionGaussianItem>;
+    result[Constants::DistributionLogNormalType] = &createInstance<DistributionLogNormalItem>;
+    result[Constants::DistributionCosineType] = &createInstance<DistributionCosineItem>;
+
     result[Constants::FTDistribution1DCauchyType] = &createInstance<FTDistribution1DCauchyItem>;
     result[Constants::FTDistribution1DGaussType] = &createInstance<FTDistribution1DGaussItem>;
     result[Constants::FTDistribution1DGateType] = &createInstance<FTDistribution1DGateItem>;
diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp
index 885838e45ef800d794bdaf8aac388092107e4ba0..08b3dc01ddb2f8e65da3529260ec7b41d02e5a09 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.cpp
+++ b/GUI/coregui/Models/ParticleDistributionItem.cpp
@@ -33,14 +33,11 @@ ParticleDistributionItem::ParticleDistributionItem(ParameterizedItem *parent)
     par_name << "Radius" << "Height";
     registerProperty(P_DISTRIBUTED_PARAMETER, par_name.getVariant());
     registerGroupProperty(P_DISTRIBUTION, Constants::DistributionGroup);
-    registerProperty(P_SAMPLE_NUMBER, 5.0);
+    registerProperty(P_SAMPLE_NUMBER, 5);
     registerProperty(P_SIGMA_FACTOR, 2.0);
 
     addToValidChildren(Constants::ParticleType, PortInfo::Port0);
     addToValidChildren(Constants::ParticleCoreShellType, PortInfo::Port0);
-
-    setPropertyAppearance(ParameterizedItem::P_NAME,
-                          PropertyAttribute::VisibleProperty);
 }
 
 ParticleDistributionItem::~ParticleDistributionItem()
diff --git a/GUI/coregui/Views/Components/SampleDesigner/DesignerHelper.cpp b/GUI/coregui/Views/Components/SampleDesigner/DesignerHelper.cpp
index e4734dfdc00925e585ebd755ccd6b4e850da738d..600b515a19290fa2be283eb65827ef335ebb4208 100644
--- a/GUI/coregui/Views/Components/SampleDesigner/DesignerHelper.cpp
+++ b/GUI/coregui/Views/Components/SampleDesigner/DesignerHelper.cpp
@@ -146,7 +146,10 @@ QRectF DesignerHelper::getDefaultBoundingRect(const QString &name)
     else  if (name==Constants::TransformationType) {
         return QRectF(0, 0, getDefaultTransformationWidth(), getDefaultTransformationHeight());
     }
-    else  if (name.startsWith(Constants::FormFactorType) || name==Constants::ParticleType || name==Constants::ParticleCoreShellType) {
+    else  if (name.startsWith(Constants::FormFactorType)
+              || name==Constants::ParticleType
+              || name==Constants::ParticleCoreShellType
+              || name==Constants::ParticleDistributionType) {
         return QRectF(0, 0, getDefaultParticleWidth(), getDefaultParticleHeight());
     }
     else  if (name.startsWith("InterferenceFunction")) {
diff --git a/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.cpp b/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.cpp
index 9079720e09fe5a340af6d637017ccd81f37e7690..8a3a51f3aa74d9c3a54a2926bdfa40ea57cee972 100644
--- a/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.cpp
+++ b/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.cpp
@@ -11,8 +11,7 @@ ParticleDistributionView::ParticleDistributionView(QGraphicsItem *parent)
     setColor(DesignerHelper::getDefaultParticleColor());
     setRectangle(DesignerHelper::getDefaultBoundingRect(Constants::ParticleDistributionType));
     addPort("out", NodeEditorPort::Output, NodeEditorPort::FormFactor);
-    addPort("core", NodeEditorPort::Input, NodeEditorPort::FormFactor);
-    addPort("shell", NodeEditorPort::Input, NodeEditorPort::FormFactor);
+    addPort("particle", NodeEditorPort::Input, NodeEditorPort::FormFactor);
     m_roundpar = 5;
     m_label_vspace = 45;
 }