diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp
index 446ba4b478731af30c5187aec4687b67d12f0ef5..d082a0fba9f2d65515f258036ae9c84ab432d348 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.cpp
+++ b/GUI/coregui/Models/ParticleDistributionItem.cpp
@@ -104,7 +104,7 @@ void ParticleDistributionItem::updateParameterList()
         }
     }
     QString selected_par = combo_prop.getValue();
-    QStringList par_names = getChildParameterNames();
+    QStringList par_names = childParameterNames();
     par_names.removeAll(ParticleItem::P_ABUNDANCE);
     auto updated_prop = ComboProperty(par_names);
     updated_prop.setCachedValue(cached_par);
@@ -119,7 +119,7 @@ void ParticleDistributionItem::updateParameterList()
     setItemValue(P_DISTRIBUTED_PARAMETER, updated_prop.getVariant());
 }
 
-QStringList ParticleDistributionItem::getChildParameterNames() const
+QStringList ParticleDistributionItem::childParameterNames() const
 {
     QStringList result;
     QVector<SessionItem*> children = getItems();
@@ -136,13 +136,3 @@ QStringList ParticleDistributionItem::getChildParameterNames() const
     result.prepend(NO_SELECTION);
     return result;
 }
-
-QStringList ParticleDistributionItem::extractFromParameterPool(const ParameterPool *pool) const
-{
-    QStringList result;
-    std::vector<std::string> par_names = pool->parameterNames();
-    for (size_t i = 0; i < par_names.size(); ++i) {
-        result << QString(par_names[i].c_str());
-    }
-    return result;
-}
diff --git a/GUI/coregui/Models/ParticleDistributionItem.h b/GUI/coregui/Models/ParticleDistributionItem.h
index 82c91b65c0c915dd521cf63b4aaeb5056546edc3..748fd3f4c6dc0207596812a7f26e6414ccb72c7b 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.h
+++ b/GUI/coregui/Models/ParticleDistributionItem.h
@@ -20,27 +20,22 @@
 #include "SessionGraphicsItem.h"
 #include "ParticleDistribution.h"
 
-
-
 class BA_CORE_API_ ParticleDistributionItem : public SessionGraphicsItem
 {
-
 public:
     static const QString P_DISTRIBUTED_PARAMETER;
     static const QString P_DISTRIBUTION;
     static const QString NO_SELECTION;
     static const QString T_PARTICLES;
-    explicit ParticleDistributionItem();
+    ParticleDistributionItem();
     virtual ~ParticleDistributionItem();
 
     std::unique_ptr<ParticleDistribution> createParticleDistribution() const;
 
-public slots:
     void updateParameterList();
 
 private:
-    QStringList getChildParameterNames() const;
-    QStringList extractFromParameterPool(const ParameterPool *pool) const;
+    QStringList childParameterNames() const;
 };
 
 #endif // PARTICLEDISTRIBUTIONITEM_H
diff --git a/Tests/UnitTests/GUI/TestGUI.cpp b/Tests/UnitTests/GUI/TestGUI.cpp
index 0c4dda97d46b0a0d0966eeba71ebce08da404a12..6e0dedfcb46f018b35e9adab118a5f67b12d9678 100644
--- a/Tests/UnitTests/GUI/TestGUI.cpp
+++ b/Tests/UnitTests/GUI/TestGUI.cpp
@@ -37,13 +37,13 @@ int main(int argc, char** argv) {
     TestSessionItem testSessionItem;
     TestMapperCases testMapperCases;
     TestMapperForItem testMapperForItem;
-    TestParticleDistributionItem testParticleDistributionItem;
     TestGUIHelpers testGUIHelpers;
     TestFitParameterModel testFitParameterModel;
     TestMaterialModel testMaterialModel;
     TestComboProperty testComboProperty;
     TestTranslations testTranslations;
     TestGroupProperty testGroupProperty;
+    TestParticleDistributionItem testParticleDistributionItem;
 
     bool status(false);
 
@@ -59,13 +59,13 @@ int main(int argc, char** argv) {
     status |= QTest::qExec(&testMapperCases, argc, argv);
     status |= QTest::qExec(&testSessionModel, argc, argv);
     status |= QTest::qExec(&testMapperForItem, argc, argv);
-    status |= QTest::qExec(&testParticleDistributionItem, argc, argv);
     status |= QTest::qExec(&testGUIHelpers, argc, argv);
     status |= QTest::qExec(&testFitParameterModel, argc, argv);
     status |= QTest::qExec(&testMaterialModel, argc, argv);
     status |= QTest::qExec(&testComboProperty, argc, argv);
     status |= QTest::qExec(&testTranslations, argc, argv);
     status |= QTest::qExec(&testGroupProperty, argc, argv);
+    status |= QTest::qExec(&testParticleDistributionItem, argc, argv);
 
     return status;
 }
diff --git a/Tests/UnitTests/GUI/TestParticleDistributionItem.h b/Tests/UnitTests/GUI/TestParticleDistributionItem.h
index 39bee853bc5faf6e509226d53c02c4d184c5930e..32c26a786f551d25907b40045ed1470e156a2db2 100644
--- a/Tests/UnitTests/GUI/TestParticleDistributionItem.h
+++ b/Tests/UnitTests/GUI/TestParticleDistributionItem.h
@@ -2,6 +2,20 @@
 #include "SampleModel.h"
 #include "ParticleDistributionItem.h"
 #include "ComboProperty.h"
+#include "ParticleItem.h"
+
+namespace {
+    const QStringList expectedAnisoParams = {
+        "None", "Particle/AnisoPyramid/Length", "Particle/AnisoPyramid/Width",
+        "Particle/AnisoPyramid/Height", "Particle/AnisoPyramid/Alpha",
+        "Particle/Position Offset/X", "Particle/Position Offset/Y", "Particle/Position Offset/Z"};
+
+    const QStringList expectedBoxParams = {
+        "None", "Particle/Box/Length", "Particle/Box/Width",
+        "Particle/Box/Height", "Particle/Position Offset/X",
+        "Particle/Position Offset/Y", "Particle/Position Offset/Z"};
+}
+
 
 class TestParticleDistributionItem : public QObject {
     Q_OBJECT
@@ -9,25 +23,27 @@ class TestParticleDistributionItem : public QObject {
 private slots:
     void test_InitialState();
     void test_AddParticle();
-
 };
 
 inline void TestParticleDistributionItem::test_InitialState()
 {
     SampleModel model;
-    SessionItem *item = model.insertNewItem(Constants::ParticleDistributionType);
+    SessionItem *distItem = model.insertNewItem(Constants::ParticleDistributionType);
+
+    QCOMPARE(distItem->displayName(), Constants::ParticleDistributionType);
+    QCOMPARE(distItem->displayName(), distItem->itemName());
+
+    // xpos, ypos, P_ABUNDANCE, P_DISTRIBUTION, P_DISTRIBUTED_PARAMETER
+    QCOMPARE(distItem->childItems().size(), 5);
+
+    QCOMPARE(distItem->defaultTag(), ParticleDistributionItem::T_PARTICLES);
 
-    QCOMPARE(item->displayName(), Constants::ParticleDistributionType);
-    QCOMPARE(item->displayName(), item->itemName());
-    QCOMPARE(item->childItems().size(), 5); // xpos, ypos, P_ABUNDANCE, P_DISTRIBUTION, P_DISTRIBUTED_PARAMETER
-    QCOMPARE(item->defaultTag(), ParticleDistributionItem::T_PARTICLES);
-    QCOMPARE(item->acceptableDefaultItemTypes(),
+    QCOMPARE(distItem->acceptableDefaultItemTypes(),
              QVector<QString>() << Constants::ParticleType
              << Constants::ParticleCoreShellType << Constants::ParticleCompositionType);
 
-    ComboProperty prop = item->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER)
+    ComboProperty prop = distItem->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER)
                     .value<ComboProperty>();
-
     QCOMPARE(prop.getValues(), QStringList() << QStringLiteral("None"));
     QCOMPARE(prop.getValue(), QStringLiteral("None"));
     QVERIFY(prop.getCachedValue().isEmpty());
@@ -36,12 +52,26 @@ inline void TestParticleDistributionItem::test_InitialState()
 inline void TestParticleDistributionItem::test_AddParticle()
 {
     SampleModel model;
-    SessionItem *item = model.insertNewItem(Constants::ParticleDistributionType);
-    model.insertNewItem(Constants::ParticleType, item->index());
+    SessionItem *dist = model.insertNewItem(Constants::ParticleDistributionType);
+
+    // adding default particle and checking list of available parameters
+    SessionItem *particle = model.insertNewItem(Constants::ParticleType, dist->index());
+
+    QCOMPARE(dist->getItems().size(), 1);
+
+    ComboProperty prop = dist->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER)
+                    .value<ComboProperty>();
+
+    QCOMPARE(prop.getValues(), expectedAnisoParams);
+    QCOMPARE(prop.getValue(), QStringLiteral("None"));
 
-    QCOMPARE(item->childItems().size(), 6); // xpos, ypos, P_ABUNDANCE, P_DISTRIBUTION, T_PARTICLES, P_DISTRIBUTED_PARAMETER
+    // changing formfactor of the particle
+    particle->getGroupItem(ParticleItem::P_FORM_FACTOR, Constants::BoxType);
 
-    ComboProperty prop = item->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER)
+    qDebug() << expectedBoxParams << prop.getValues();
+    prop = dist->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER)
                     .value<ComboProperty>();
 
+    QCOMPARE(prop.getValues(), expectedAnisoParams);
+    QCOMPARE(prop.getValue(), QStringLiteral("None"));
 }