diff --git a/GUI/coregui/Models/BeamDistributionItem.cpp b/GUI/coregui/Models/BeamDistributionItem.cpp
index 5d155bc4f0eff1ae3390fd0775821595d80135a0..44615c2678cf2850c7ae5e489547215e6570613e 100644
--- a/GUI/coregui/Models/BeamDistributionItem.cpp
+++ b/GUI/coregui/Models/BeamDistributionItem.cpp
@@ -19,8 +19,8 @@
 #include "Distributions.h"
 #include "ParameterDistribution.h"
 #include "Units.h"
+#include "GroupItem.h"
 #include "GUIHelpers.h"
-
 #include <QDebug>
 
 const QString BeamDistributionItem::P_DISTRIBUTION = "Distribution";
@@ -30,6 +30,24 @@ BeamDistributionItem::BeamDistributionItem(const QString name)
 {
     addGroupProperty(P_DISTRIBUTION, Constants::DistributionExtendedGroup);
     setGroupProperty(P_DISTRIBUTION, Constants::DistributionNoneType);
+
+
+    mapper()->setOnChildPropertyChange(
+                [this](SessionItem* item, const QString &name)
+    {
+        qDebug() << "AAAAA" << item->modelType() << name;
+        if(item->modelType() == Constants::GroupItemType) {
+            initDistributionItem();
+        }
+//        if (item->modelType() == Constants::IntensityDataType
+//            && name == IntensityDataItem::P_AXES_UNITS) {
+//            auto intensityItem = dynamic_cast<IntensityDataItem *>(item);
+//            JobItemHelper::updateDataAxes(intensityItem, getInstrumentItem());
+//            qDebug() << "QQQQ" << item->modelType() << name;
+
+//        }
+    });
+
 }
 
 //! returns parameter distribution to add into the Simulation
@@ -68,6 +86,33 @@ BeamDistributionItem::getParameterDistributionForName(const std::string &paramet
     return P_par_distr;
 }
 
+//! Propagates the value stored in DistributionNone type into currently activive distribution.
+
+void BeamDistributionItem::initDistributionItem()
+{
+    GroupItem *groupItem = dynamic_cast<GroupItem *>(getItem(P_DISTRIBUTION));
+    Q_ASSERT(groupItem);
+
+    SessionItem *distributionNone(0);
+    foreach(SessionItem *item, groupItem->getItems(GroupItem::T_ITEMS)) {
+        if(item->modelType() == Constants::DistributionNoneType) {
+            distributionNone = item;
+            break;
+        }
+    }
+
+    if(!distributionNone)
+        return;
+
+    if(distributionNone != groupItem->currentItem()) {
+        DistributionItem *distrItem = dynamic_cast<DistributionItem *>(groupItem->currentItem());
+        Q_ASSERT(distrItem);
+        distrItem->init_parameters(distributionNone->getItemValue(DistributionNoneItem::P_VALUE).toDouble());
+    }
+
+
+}
+
 std::unique_ptr<IDistribution1D> BeamDistributionItem::createDistribution1D()
 {
     std::unique_ptr<IDistribution1D> P_distribution {};
diff --git a/GUI/coregui/Models/BeamDistributionItem.h b/GUI/coregui/Models/BeamDistributionItem.h
index 04b54eaeccb5bbe1f569b9d7f9737cccfdec7d83..bf90cb176a72178399c8eb9795cddda8c0a012c0 100644
--- a/GUI/coregui/Models/BeamDistributionItem.h
+++ b/GUI/coregui/Models/BeamDistributionItem.h
@@ -37,8 +37,9 @@ public:
     std::unique_ptr<ParameterDistribution> getParameterDistributionForName(
             const std::string &parameter_name);
 
-
 protected:
+    void initDistributionItem();
+
     virtual std::unique_ptr<IDistribution1D> createDistribution1D();
 };
 
diff --git a/GUI/coregui/Models/DistributionItem.cpp b/GUI/coregui/Models/DistributionItem.cpp
index 3fcde0023a72e24dcb903ee633c4e5e1fad21118..2d5dfbec66570bda032d8bc653420db28fcfa23c 100644
--- a/GUI/coregui/Models/DistributionItem.cpp
+++ b/GUI/coregui/Models/DistributionItem.cpp
@@ -23,10 +23,25 @@
 
 const QString DistributionItem::P_NUMBER_OF_SAMPLES = "Number of samples";
 const QString DistributionItem::P_SIGMA_FACTOR = "Sigma factor";
+const QString DistributionItem::P_IS_INITIALIZED = "is initialized";
 
 DistributionItem::DistributionItem(const QString name)
     : SessionItem(name)
 {
+    addProperty(P_IS_INITIALIZED, false)->setVisible(false);
+}
+
+//! Provides initialization of the distribution with some reasonable parameters around given value.
+//! Used by beamDistributionItem to propagate value from DistributionNone to the distribution
+//! currently selected by GroupItem.
+
+void DistributionItem::init_parameters(double value)
+{
+    if(getItemValue(P_IS_INITIALIZED).toBool())
+        return;
+
+    init_distribution(value);
+    setItemValue(P_IS_INITIALIZED, true);
 }
 
 void DistributionItem::register_number_of_samples()
@@ -55,7 +70,7 @@ std::unique_ptr<IDistribution1D> DistributionNoneItem::createDistribution() cons
     return nullptr;
 }
 
-void DistributionNoneItem::init_parameters(double value)
+void DistributionNoneItem::init_distribution(double value)
 {
     setItemValue(DistributionNoneItem::P_VALUE, value);
 }
@@ -81,7 +96,7 @@ std::unique_ptr<IDistribution1D> DistributionGateItem::createDistribution() cons
     return GUIHelpers::make_unique<DistributionGate>(min, max);
 }
 
-void DistributionGateItem::init_parameters(double value)
+void DistributionGateItem::init_distribution(double value)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
@@ -110,7 +125,7 @@ std::unique_ptr<IDistribution1D> DistributionLorentzItem::createDistribution() c
     return GUIHelpers::make_unique<DistributionLorentz>(mean, hwhm);
 }
 
-void DistributionLorentzItem::init_parameters(double value)
+void DistributionLorentzItem::init_distribution(double value)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
@@ -141,7 +156,7 @@ std::unique_ptr<IDistribution1D> DistributionGaussianItem::createDistribution()
     return GUIHelpers::make_unique<DistributionGaussian>(mean, std_dev);
 }
 
-void DistributionGaussianItem::init_parameters(double value)
+void DistributionGaussianItem::init_distribution(double value)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
@@ -172,7 +187,7 @@ std::unique_ptr<IDistribution1D> DistributionLogNormalItem::createDistribution()
     return GUIHelpers::make_unique<DistributionLogNormal>(median, scale_par);
 }
 
-void DistributionLogNormalItem::init_parameters(double value)
+void DistributionLogNormalItem::init_distribution(double value)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
@@ -203,7 +218,7 @@ std::unique_ptr<IDistribution1D> DistributionCosineItem::createDistribution() co
     return GUIHelpers::make_unique<DistributionCosine>(mean, sigma);
 }
 
-void DistributionCosineItem::init_parameters(double value)
+void DistributionCosineItem::init_distribution(double value)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
diff --git a/GUI/coregui/Models/DistributionItem.h b/GUI/coregui/Models/DistributionItem.h
index 31cf0b6e421820c70b51c3c28c6962533422fc0d..dc35f3dd18c34eb292eeac5923a5b276c89f37e1 100644
--- a/GUI/coregui/Models/DistributionItem.h
+++ b/GUI/coregui/Models/DistributionItem.h
@@ -30,11 +30,13 @@ class BA_CORE_API_ DistributionItem : public SessionItem
 public:
     static const QString P_NUMBER_OF_SAMPLES;
     static const QString P_SIGMA_FACTOR;
+    static const QString P_IS_INITIALIZED;
     explicit DistributionItem(const QString name);
     virtual std::unique_ptr<IDistribution1D> createDistribution() const=0;
 
-    virtual void init_parameters(double){}
+    void init_parameters(double);
 protected:
+    virtual void init_distribution(double){}
     void register_number_of_samples();
     void register_sigma_factor();
 };
@@ -46,7 +48,7 @@ public:
     static const QString P_VALUE;
     explicit DistributionNoneItem();
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value);
+    virtual void init_distribution(double value);
 };
 
 
@@ -59,7 +61,7 @@ public:
     explicit DistributionGateItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value);
+    virtual void init_distribution(double value);
 };
 
 
@@ -72,7 +74,7 @@ public:
     explicit DistributionLorentzItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value);
+    virtual void init_distribution(double value);
 };
 
 
@@ -85,7 +87,7 @@ public:
     explicit DistributionGaussianItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value);
+    virtual void init_distribution(double value);
 };
 
 
@@ -98,7 +100,7 @@ public:
     explicit DistributionLogNormalItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value);
+    virtual void init_distribution(double value);
 };
 
 
@@ -111,7 +113,7 @@ public:
     explicit DistributionCosineItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value);
+    virtual void init_distribution(double value);
 };
 
 #endif // DISTRIBUTIONITEM_H
diff --git a/GUI/coregui/Models/GroupItem.cpp b/GUI/coregui/Models/GroupItem.cpp
index 32e6c986286596be9d8216ca7c0e0cb7a18e665b..dbbe23a613b6a4d385fa174997748987ea734bfe 100644
--- a/GUI/coregui/Models/GroupItem.cpp
+++ b/GUI/coregui/Models/GroupItem.cpp
@@ -48,7 +48,7 @@ GroupProperty_t GroupItem::group() const
     return value().value<GroupProperty_t>();
 }
 
-SessionItem *GroupItem::getCurrentItem()
+SessionItem *GroupItem::currentItem()
 {
     return group()->getCurrentItem();
 }
diff --git a/GUI/coregui/Models/GroupItem.h b/GUI/coregui/Models/GroupItem.h
index 78dab7746f603fb5bfc5807256c55baa50bceaef..ff9be7e97ab1487de333dc06dab0f7978ba7bcd2 100644
--- a/GUI/coregui/Models/GroupItem.h
+++ b/GUI/coregui/Models/GroupItem.h
@@ -28,7 +28,7 @@ public:
     GroupItem();
     void setGroup(GroupProperty_t group);
     GroupProperty_t group() const;
-    SessionItem *getCurrentItem();
+    SessionItem *currentItem();
 };
 
 #endif
diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
index cc512789fd7753524ee521df13c729f4f312c656..2e0e2fed7c614fd983416a4b6030c7a6c5671fee 100644
--- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
@@ -63,6 +63,8 @@ FitParameterWidget::FitParameterWidget(QWidget *parent)
     m_treeView->setDragEnabled(true);
     m_treeView->setDragDropMode(QAbstractItemView::DragDrop);
     m_treeView->installEventFilter(m_keyboardFilter);
+    m_treeView->setAlternatingRowColors(true);
+    m_treeView->setStyleSheet("alternate-background-color: #EFF0F1;");
 
     connect(m_treeView, SIGNAL(customContextMenuRequested(const QPoint &)),
             this, SLOT(onFitParameterTreeContextMenu(const QPoint &)));
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp b/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
index 21f106ce6f465802680d71ab19796bfebdefdbfb..37c257a0c9cfeea71ef278fe9428873788465a8a 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
@@ -84,7 +84,7 @@ void DistributionEditor::setItem(SessionItem *item)
         }, this);
 
         DistributionItem *distrItem = dynamic_cast<DistributionItem *>(
-            m_item->getCurrentItem());
+            m_item->currentItem());
         Q_ASSERT(distrItem);
         m_plotwidget->setItem(distrItem);
     }
@@ -94,7 +94,7 @@ void DistributionEditor::onPropertyChanged(const QString &property_name)
 {
     if (property_name == GroupItem::T_ITEMS) {
         DistributionItem *distrItem = dynamic_cast<DistributionItem *>(
-            m_item->getCurrentItem());
+            m_item->currentItem());
         Q_ASSERT(distrItem);
         m_plotwidget->setItem(distrItem);
     }
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
index 50aa0e6aa0ff718d0c46608551b3d26fe5e9b3c4..0d909be4f02d9eb5ed75ddd88df236d1db51f91e 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
@@ -18,8 +18,6 @@
 #include "SessionModel.h"
 #include "CustomEventFilters.h"
 #include <QModelIndex>
-#include <QDebug>
-
 
 ComponentBoxEditor::ComponentBoxEditor(QWidget *parent)
     : ComponentEditor(ComponentEditorFlags::BROWSER_GROUPBOX, parent)
@@ -39,7 +37,7 @@ void ComponentBoxEditor::updatePropertyItems(SessionItem *item, QtVariantPropert
 {
     if(item->modelType() == Constants::PropertyType ||
             item->modelType() == Constants::GroupItemType) {
-        updateItem(item, parentProperty);
+            updateItem(item, parentProperty);
     }
 
     if(m_d->m_item_to_insert_mode.contains(item)) {
@@ -78,9 +76,6 @@ void ComponentBoxEditor::onDataChanged(const QModelIndex &topLeft, const QModelI
     SessionItem *item = model->itemForIndex(topLeft);
     Q_ASSERT(item);
 
-    qDebug() << " ComponentEditor::onDataChanged" << m_d->m_presentationType
-             << roles << item->modelType() << item->displayName();
-
     if (QtVariantProperty *property = m_d->getPropertyForItem(item)) {
         // updating editor's property appearance (tooltips, limits)
         if (roles.contains(SessionModel::FlagRole)) {
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp b/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
index b75bc95c228b1bcfb2ed9c2ab6fac3b578ab1925..fe83fc1f721ab8e4804557984c32cecf0de9793a 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
@@ -24,7 +24,6 @@
 
 #include <QVBoxLayout>
 #include <QVariant>
-#include <QDebug>
 
 ComponentEditor::ComponentEditor(ComponentEditorFlags::PresentationType flags, QWidget *parent)
     : QWidget(parent)
@@ -107,13 +106,8 @@ void ComponentEditor::onDataChanged(const QModelIndex &topLeft,
     SessionItem *item = model->itemForIndex(topLeft);
     Q_ASSERT(item);
 
-    qDebug() << " ComponentEditor::onDataChanged" << m_d->m_presentationType
-             << roles << item->modelType() << item->displayName();
-
     if(m_d->m_changedItems.contains(item)) return;
 
-    qDebug() << " ComponentEditor::onDataChanged 1.2 processing";
-
     if (QtVariantProperty *property = m_d->getPropertyForItem(item)) {
         // updating editor's property appearance (tooltips, limits)
         if (roles.contains(SessionModel::FlagRole)) {
@@ -138,10 +132,9 @@ void ComponentEditor::onDataChanged(const QModelIndex &topLeft,
 //! Updates the editor starting from given SessionItem's parent.
 //! Editor should know already about given item (i.e. corresponding
 //! QtVariantProperty should exist.
-void ComponentEditor::onRowsInserted(const QModelIndex &parent, int first,
-                                     int last)
+void ComponentEditor::onRowsInserted(const QModelIndex &parent, int,
+                                     int )
 {
-    qDebug() << "ComponentEditor::onRowsInserted" << parent << first << last;
     SessionModel *model = qobject_cast<SessionModel *>(sender());
 
     SessionItem *item = model->itemForIndex(parent);
@@ -157,16 +150,13 @@ void ComponentEditor::onRowsInserted(const QModelIndex &parent, int first,
 void ComponentEditor::onQtPropertyChanged(QtProperty *property,
                                           const QVariant &value)
 {
-    qDebug() << "ComponentEditor::onQtPropertyChanged" << property << value;
     if (SessionItem *item = m_d->getItemForProperty(property)) {
         Q_ASSERT(item);
-        qDebug() << "Disconnecting";
 //        disconnectModel(item->model());
         m_d->m_changedItems.append(item);
         item->setValue(value);
 //        connectModel(item->model());
         m_d->m_changedItems.removeAll(item);
-        qDebug() << "Connected";
     }
 }
 
@@ -202,7 +192,8 @@ ComponentEditor::componentItems(SessionItem *item) const
 
         if (item->modelType() == Constants::GroupItemType) {
             foreach (SessionItem *childOfChild, child->childItems()) {
-                result.append(childOfChild);
+                if (childOfChild->isVisible())
+                    result.append(childOfChild);
             }
         }