diff --git a/GUI/coregui/Models/AxesItems.cpp b/GUI/coregui/Models/AxesItems.cpp
index 7d5c393cd4bf37a15ae14429a022d4bef2be129c..bfb16dde5f0affa665ff2cd4de669b90d3bd9579 100644
--- a/GUI/coregui/Models/AxesItems.cpp
+++ b/GUI/coregui/Models/AxesItems.cpp
@@ -22,19 +22,19 @@ const QString BasicAxisItem::P_MAX = "Max";
 const QString BasicAxisItem::P_TITLE = "title";
 
 BasicAxisItem::BasicAxisItem(const QString &type)
-    : ParameterizedItem(type)
+    : SessionItem(type)
 {
     register_basic_properties();
 }
 
 void BasicAxisItem::register_basic_properties()
 {
-    registerProperty(P_IS_VISIBLE, true)->setVisible(false);
-    registerProperty(P_NBINS, 100)->setLimits(AttLimits::limited(1, 1024));
-    registerProperty(P_MIN, 0.0)->setDecimals(3);
-    getItem(P_MIN)->setLimits(AttLimits::limitless());
-    registerProperty(P_MAX, -1.0)->setDecimals(3);
-    getItem(P_MAX)->setLimits(AttLimits::limitless());
+    registerProperty(P_IS_VISIBLE, true)->setVisible(false);
+    registerProperty(P_NBINS, 100)->setLimits(AttLimits::limited(1, 1024));
+    registerProperty(P_MIN, 0.0)->setDecimals(3);
+    getItem(P_MIN)->setLimits(AttLimits::limitless());
+    registerProperty(P_MAX, -1.0)->setDecimals(3);
+    getItem(P_MAX)->setLimits(AttLimits::limitless());
     registerProperty(P_TITLE, QString());
 }
 
@@ -46,8 +46,8 @@ const QString AmplitudeAxisItem::P_LOCK_MIN_MAX = "Lock (min, max)";
 AmplitudeAxisItem::AmplitudeAxisItem()
     : BasicAxisItem(Constants::AmplitudeAxisType)
 {
-    registerProperty(P_LOCK_MIN_MAX, false)->setVisible(false);
+    registerProperty(P_LOCK_MIN_MAX, false)->setVisible(false);
     registerProperty(P_IS_LOGSCALE, true);
-    getItem(BasicAxisItem::P_TITLE)->setVisible(false);
-    getItem(BasicAxisItem::P_IS_VISIBLE)->setVisible(true);
+    getItem(BasicAxisItem::P_TITLE)->setVisible(false);
+    getItem(BasicAxisItem::P_IS_VISIBLE)->setVisible(true);
 }
diff --git a/GUI/coregui/Models/AxesItems.h b/GUI/coregui/Models/AxesItems.h
index fc8e955c9b28501dfb77cebfec4f750c45a2bd85..352026ea9852134ac579ef292a67cd192610d6e3 100644
--- a/GUI/coregui/Models/AxesItems.h
+++ b/GUI/coregui/Models/AxesItems.h
@@ -16,10 +16,10 @@
 #ifndef AXESITEMS_H
 #define AXESITEMS_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "item_constants.h"
 
-class BA_CORE_API_  BasicAxisItem : public ParameterizedItem
+class BA_CORE_API_  BasicAxisItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/BeamAngleItems.cpp b/GUI/coregui/Models/BeamAngleItems.cpp
index a43e860c9fcba9ee4986a87e50756fe1d5754439..d6c7c489a1051f19da25dcf12edcd03335f852af 100644
--- a/GUI/coregui/Models/BeamAngleItems.cpp
+++ b/GUI/coregui/Models/BeamAngleItems.cpp
@@ -23,17 +23,17 @@
 BeamInclinationAngleItem::BeamInclinationAngleItem()
     : BeamDistributionItem(Constants::BeamInclinationAngleType)
 {
-    auto cache = getItem(BeamDistributionItem::P_CACHED_VALUE);
-    cache->setVisible(false);
-    cache->setLimits(AttLimits::limited(0.0, 90.0));
-    cache->setDecimals(3);
+    auto cache = getItem(BeamDistributionItem::P_CACHED_VALUE);
+    cache->setVisible(false);
+    cache->setLimits(AttLimits::limited(0.0, 90.0));
+    cache->setDecimals(3);
     setRegisteredProperty(BeamDistributionItem::P_CACHED_VALUE, 0.2);
 
-    ParameterizedItem *distribution = dynamic_cast<DistributionNoneItem *>(getGroupItem(P_DISTRIBUTION));
+    SessionItem *distribution = dynamic_cast<DistributionNoneItem *>(getGroupItem(P_DISTRIBUTION));
     Q_ASSERT(distribution);
-    auto value = distribution->getItem(DistributionNoneItem::P_VALUE);
-    value->setLimits(AttLimits::limited(0.0, 90.0));
-    value->setDecimals(3);
+    auto value = distribution->getItem(DistributionNoneItem::P_VALUE);
+    value->setLimits(AttLimits::limited(0.0, 90.0));
+    value->setDecimals(3);
 }
 
 std::unique_ptr<IDistribution1D> BeamInclinationAngleItem::createDistribution1D()
@@ -51,15 +51,15 @@ BeamAzimuthalAngleItem::BeamAzimuthalAngleItem()
     : BeamDistributionItem(Constants::BeamAzimuthalAngleType)
 {
     setRegisteredProperty(BeamDistributionItem::P_CACHED_VALUE, 0.0);
-    auto cache = getItem(BeamDistributionItem::P_CACHED_VALUE);
-    cache->setVisible(false);
-    cache->setLimits(AttLimits::limited(-90.0, 90.0));
-    cache->setDecimals(3);
-    ParameterizedItem *distribution = dynamic_cast<DistributionNoneItem *>(getGroupItem(P_DISTRIBUTION));
+    auto cache = getItem(BeamDistributionItem::P_CACHED_VALUE);
+    cache->setVisible(false);
+    cache->setLimits(AttLimits::limited(-90.0, 90.0));
+    cache->setDecimals(3);
+    SessionItem *distribution = dynamic_cast<DistributionNoneItem *>(getGroupItem(P_DISTRIBUTION));
     Q_ASSERT(distribution);
-    auto value = distribution->getItem(DistributionNoneItem::P_VALUE);
-    value->setLimits(AttLimits::limited(-90.0, 90.0));
-    value->setDecimals(3);
+    auto value = distribution->getItem(DistributionNoneItem::P_VALUE);
+    value->setLimits(AttLimits::limited(-90.0, 90.0));
+    value->setDecimals(3);
 }
 
 std::unique_ptr<IDistribution1D> BeamAzimuthalAngleItem::createDistribution1D()
diff --git a/GUI/coregui/Models/BeamDistributionItem.cpp b/GUI/coregui/Models/BeamDistributionItem.cpp
index 052651967d37c8c49854b7908fa7c196f8106af4..f4a1fb84a6b09a7134ff146321d3526a008d6b23 100644
--- a/GUI/coregui/Models/BeamDistributionItem.cpp
+++ b/GUI/coregui/Models/BeamDistributionItem.cpp
@@ -26,10 +26,10 @@ const QString BeamDistributionItem::P_DISTRIBUTION = "Distribution";
 const QString BeamDistributionItem::P_CACHED_VALUE = "Cached value";
 
 BeamDistributionItem::BeamDistributionItem(const QString name)
-    : ParameterizedItem(name)
+    : SessionItem(name)
 {
-    registerProperty(P_CACHED_VALUE, 0.0);
-    getItem(P_CACHED_VALUE)->setVisible(false);
+    registerProperty(P_CACHED_VALUE, 0.0);
+    getItem(P_CACHED_VALUE)->setVisible(false);
     registerGroupProperty(P_DISTRIBUTION, Constants::DistributionExtendedGroup);
     setGroupProperty(P_DISTRIBUTION, Constants::DistributionNoneType);
 }
@@ -72,12 +72,12 @@ BeamDistributionItem::getParameterDistributionForName(const std::string &paramet
                                                      DistributionItem::P_SIGMA_FACTOR).toInt();
             }
 
-//            PropertyAttribute cached_attribute = getPropertyAttribute(P_CACHED_VALUE);
+//            PropertyAttribute cached_attribute = getPropertyAttribute(P_CACHED_VALUE);
             AttLimits limits;
             if (modelType() == Constants::BeamWavelengthType) {
-                limits = getItem(P_CACHED_VALUE)->limits();
+                limits = getItem(P_CACHED_VALUE)->limits();
             } else {
-                AttLimits orig = getItem(P_CACHED_VALUE)->limits();
+                AttLimits orig = getItem(P_CACHED_VALUE)->limits();
                 if (orig.hasLowerLimit())
                     limits.setLowerLimit(Units::deg2rad(orig.getLowerLimit()));
                 if (orig.hasUpperLimit())
@@ -102,7 +102,7 @@ BeamDistributionItem::getParameterDistributionForName(const std::string &paramet
 //        cached_attribute.setVisible();
 //        distribution->init_parameters(cached_value, cached_attribute);
 //    }
-//    ParameterizedItem::onSubItemChanged(propertyName);
+//    SessionItem::onSubItemChanged(propertyName);
 //}
 
 //void BeamDistributionItem::onSubItemPropertyChanged(const QString &property_group, const QString &property_name)
@@ -113,7 +113,7 @@ BeamDistributionItem::getParameterDistributionForName(const std::string &paramet
 //                getRegisteredProperty(DistributionNoneItem::P_VALUE).toDouble();
 //        setRegisteredProperty(P_CACHED_VALUE, value_to_cache);
 //    }
-//    ParameterizedItem::onSubItemPropertyChanged(property_group, property_name);
+//    SessionItem::onSubItemPropertyChanged(property_group, property_name);
 //}
 
 std::unique_ptr<IDistribution1D> BeamDistributionItem::createDistribution1D()
diff --git a/GUI/coregui/Models/BeamDistributionItem.h b/GUI/coregui/Models/BeamDistributionItem.h
index 6855d08c0527d545527c842c858f4509f0e9c9f0..c89addaac4a6e9e73aba8d7e1fc9fbe3c2efe307 100644
--- a/GUI/coregui/Models/BeamDistributionItem.h
+++ b/GUI/coregui/Models/BeamDistributionItem.h
@@ -16,7 +16,7 @@
 #ifndef BEAMDISTRIBUTIONITEM_H
 #define BEAMDISTRIBUTIONITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "DistributionItem.h"
 
 #include <memory>
@@ -26,7 +26,7 @@ class IDistribution1D;
 
 //! The BeamDistributionItem handles wavelength, inclination and azimuthal parameter
 //! distribution for BeamItem
-class BA_CORE_API_ BeamDistributionItem : public ParameterizedItem
+class BA_CORE_API_ BeamDistributionItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/BeamItem.cpp b/GUI/coregui/Models/BeamItem.cpp
index 2fd9ab83ac18f397df11e5be2f67a788be01f723..407b3043041bb8dab2cccf5b3f513b93c9c65910 100644
--- a/GUI/coregui/Models/BeamItem.cpp
+++ b/GUI/coregui/Models/BeamItem.cpp
@@ -31,10 +31,10 @@ const QString BeamItem::P_WAVELENGTH = QString::fromStdString(BornAgain::Wavelen
 const QString BeamItem::P_INCLINATION_ANGLE = "Inclination Angle";
 const QString BeamItem::P_AZIMUTHAL_ANGLE = "Azimuthal Angle";
 
-BeamItem::BeamItem() : ParameterizedItem(Constants::BeamType)
+BeamItem::BeamItem() : SessionItem(Constants::BeamType)
 {
     ScientificDoubleProperty intensity(1e+08);
-    registerProperty(P_INTENSITY, intensity.getVariant())->setLimits(AttLimits::limited(0.0, 1e+32));
+    registerProperty(P_INTENSITY, intensity.getVariant())->setLimits(AttLimits::limited(0.0, 1e+32));
     registerGroupProperty(P_WAVELENGTH, Constants::BeamWavelengthType);
     registerGroupProperty(P_INCLINATION_ANGLE, Constants::BeamInclinationAngleType);
     registerGroupProperty(P_AZIMUTHAL_ANGLE, Constants::BeamAzimuthalAngleType);
@@ -57,7 +57,7 @@ void BeamItem::setIntensity(double value)
 
 double BeamItem::getWavelength() const
 {
-    ParameterizedItem *beamWavelength = getGroupItem(P_WAVELENGTH);
+    SessionItem *beamWavelength = getGroupItem(P_WAVELENGTH);
     Q_ASSERT(beamWavelength);
     return beamWavelength->getRegisteredProperty(BeamDistributionItem::P_CACHED_VALUE).toDouble();
 }
@@ -65,9 +65,9 @@ double BeamItem::getWavelength() const
 void BeamItem::setWavelength(double value, const QString &distribution_name)
 {
     Q_UNUSED(distribution_name);
-    ParameterizedItem *beamWavelength = getGroupItem(P_WAVELENGTH);
+    SessionItem *beamWavelength = getGroupItem(P_WAVELENGTH);
     Q_ASSERT(beamWavelength);
-    ParameterizedItem *distributionItem = beamWavelength->setGroupProperty(
+    SessionItem *distributionItem = beamWavelength->setGroupProperty(
         BeamDistributionItem::P_DISTRIBUTION, Constants::DistributionNoneType);
     Q_ASSERT(distributionItem);
     distributionItem->setRegisteredProperty(DistributionNoneItem::P_VALUE, value);
@@ -75,7 +75,7 @@ void BeamItem::setWavelength(double value, const QString &distribution_name)
 
 double BeamItem::getInclinationAngle() const
 {
-    ParameterizedItem *angleItem = getGroupItem(P_INCLINATION_ANGLE);
+    SessionItem *angleItem = getGroupItem(P_INCLINATION_ANGLE);
     Q_ASSERT(angleItem);
     return angleItem->getRegisteredProperty(BeamDistributionItem::P_CACHED_VALUE).toDouble();
 }
@@ -83,9 +83,9 @@ double BeamItem::getInclinationAngle() const
 void BeamItem::setInclinationAngle(double value, const QString &distribution_name)
 {
     Q_UNUSED(distribution_name);
-    ParameterizedItem *angleItem = getGroupItem(P_INCLINATION_ANGLE);
+    SessionItem *angleItem = getGroupItem(P_INCLINATION_ANGLE);
     Q_ASSERT(angleItem);
-    ParameterizedItem *distributionItem = angleItem->setGroupProperty(
+    SessionItem *distributionItem = angleItem->setGroupProperty(
         BeamDistributionItem::P_DISTRIBUTION, Constants::DistributionNoneType);
     Q_ASSERT(distributionItem);
     distributionItem->setRegisteredProperty(DistributionNoneItem::P_VALUE, value);
@@ -93,7 +93,7 @@ void BeamItem::setInclinationAngle(double value, const QString &distribution_nam
 
 double BeamItem::getAzimuthalAngle() const
 {
-    ParameterizedItem *angleItem = getGroupItem(P_AZIMUTHAL_ANGLE);
+    SessionItem *angleItem = getGroupItem(P_AZIMUTHAL_ANGLE);
     Q_ASSERT(angleItem);
     return angleItem->getRegisteredProperty(BeamDistributionItem::P_CACHED_VALUE).toDouble();
 }
@@ -101,9 +101,9 @@ double BeamItem::getAzimuthalAngle() const
 void BeamItem::setAzimuthalAngle(double value, const QString &distribution_name)
 {
     Q_UNUSED(distribution_name);
-    ParameterizedItem *angleItem = getGroupItem(P_AZIMUTHAL_ANGLE);
+    SessionItem *angleItem = getGroupItem(P_AZIMUTHAL_ANGLE);
     Q_ASSERT(angleItem);
-    ParameterizedItem *distributionItem = angleItem->setGroupProperty(
+    SessionItem *distributionItem = angleItem->setGroupProperty(
         BeamDistributionItem::P_DISTRIBUTION, Constants::DistributionNoneType);
     Q_ASSERT(distributionItem);
     distributionItem->setRegisteredProperty(DistributionNoneItem::P_VALUE, value);
diff --git a/GUI/coregui/Models/BeamItem.h b/GUI/coregui/Models/BeamItem.h
index 5fed5e37e2699f4ea5637af92eb36f0be1def3c7..f998fa8cec1e4e61b0acacd7da23df3cc827b8f5 100644
--- a/GUI/coregui/Models/BeamItem.h
+++ b/GUI/coregui/Models/BeamItem.h
@@ -16,9 +16,9 @@
 #ifndef BEAMITEM_H
 #define BEAMITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-class BA_CORE_API_ BeamItem : public ParameterizedItem
+class BA_CORE_API_ BeamItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/BeamWavelengthItem.cpp b/GUI/coregui/Models/BeamWavelengthItem.cpp
index f80c90c0c22d6c9ff54069b07ca8a6a3955069e4..bb4f1a2f4a692c1de2c374cf79b0a07ffe631e20 100644
--- a/GUI/coregui/Models/BeamWavelengthItem.cpp
+++ b/GUI/coregui/Models/BeamWavelengthItem.cpp
@@ -18,9 +18,9 @@
 BeamWavelengthItem::BeamWavelengthItem()
     : BeamDistributionItem(Constants::BeamWavelengthType)
 {
-    ParameterizedItem *cache = getItem(BeamDistributionItem::P_CACHED_VALUE);
-    cache->setVisible(false);
-    cache->setLimits(AttLimits::lowerLimited(1e-4));
-    cache->setDecimals(4);
+    SessionItem *cache = getItem(BeamDistributionItem::P_CACHED_VALUE);
+    cache->setVisible(false);
+    cache->setLimits(AttLimits::lowerLimited(1e-4));
+    cache->setDecimals(4);
     setRegisteredProperty(BeamDistributionItem::P_CACHED_VALUE, 0.1);
 }
diff --git a/GUI/coregui/Models/ColorProperty.h b/GUI/coregui/Models/ColorProperty.h
index 2a5c55ba75271f2c2e583ec7ec3db001c53d1580..07fb624659284268777220310542ba6c05fd525d 100644
--- a/GUI/coregui/Models/ColorProperty.h
+++ b/GUI/coregui/Models/ColorProperty.h
@@ -22,7 +22,7 @@
 #include <QPixmap>
 #include <QVariant>
 
-//! The ColorProperty for ParameterizedItem and PropertyEditor
+//! The ColorProperty for SessionItem and PropertyEditor
 //!
 //! The reason is to have simple color editor in PropertyEditor instead of
 //! original one which is too sophisticated.
diff --git a/GUI/coregui/Models/ComboProperty.h b/GUI/coregui/Models/ComboProperty.h
index bb7245c506cde1567836645a7e6cb38670b7587f..0811887295c769112043e3880e0d00a52612a54a 100644
--- a/GUI/coregui/Models/ComboProperty.h
+++ b/GUI/coregui/Models/ComboProperty.h
@@ -21,7 +21,7 @@
 #include <QMetaType>
 #include <QVariant>
 
-//! The ComboProperty defines ParameterizedItem's property with a value
+//! The ComboProperty defines SessionItem's property with a value
 //! from predefined list.
 //!
 //! This is a light version of GroupProperty without SubItem mechanism
diff --git a/GUI/coregui/Models/DetectorItems.cpp b/GUI/coregui/Models/DetectorItems.cpp
index dd78377026e279cb8b2e9cd688cf5cd3684ad173..11d880d34ee7f5846dd293e1ff0bc9c041aa1376 100644
--- a/GUI/coregui/Models/DetectorItems.cpp
+++ b/GUI/coregui/Models/DetectorItems.cpp
@@ -20,21 +20,21 @@
 #include <QDebug>
 
 const QString DetectorItem::P_DETECTOR = "DetectorType";
-const QString DetectorItem::T_MASKS = "Mask tag";
+const QString DetectorItem::T_MASKS = "Mask tag";
 
 DetectorItem::DetectorItem()
-    : ParameterizedItem(Constants::DetectorType)
+    : SessionItem(Constants::DetectorType)
 {
     registerGroupProperty(P_DETECTOR, Constants::DetectorGroup);
-    registerTag(T_MASKS, 0, -1, QStringList() << Constants::MaskContainerType);
-    setDefaultTag(T_MASKS);
+    registerTag(T_MASKS, 0, -1, QStringList() << Constants::MaskContainerType);
+    setDefaultTag(T_MASKS);
     setGroupProperty(P_DETECTOR, Constants::SphericalDetectorType);
     mapper()->setOnPropertyChange(
                 [this] (const QString &name)
     {
         if(name == P_DETECTOR) {
-            if(ParameterizedItem *maskContainer = getMaskContainerItem()) {
-                ParameterizedItem *item = takeChildItem(rowOfChild(maskContainer));
+            if(SessionItem *maskContainer = getMaskContainerItem()) {
+                SessionItem *item = takeChildItem(rowOfChild(maskContainer));
                 Q_ASSERT(item == maskContainer);
                 delete item;
             }
@@ -45,7 +45,7 @@ DetectorItem::DetectorItem()
 
 MaskContainerItem *DetectorItem::getMaskContainerItem() const
 {
-    foreach(ParameterizedItem *item, childItems()) {
+    foreach(SessionItem *item, childItems()) {
         if(MaskContainerItem *container = dynamic_cast<MaskContainerItem *>(item)) {
             return container;
         }
diff --git a/GUI/coregui/Models/DetectorItems.h b/GUI/coregui/Models/DetectorItems.h
index 48ad58d8c39fb6b57c2ff5f181648603c5a1a80f..78641e9fe004bd1cca3fd80b1200cbabf1b13dec 100644
--- a/GUI/coregui/Models/DetectorItems.h
+++ b/GUI/coregui/Models/DetectorItems.h
@@ -16,19 +16,19 @@
 #ifndef DETECTOR_ITEMS_H
 #define DETECTOR_ITEMS_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "SphericalDetectorItem.h"
 #include "RectangularDetectorItem.h"
 
 class MaskContainerItem;
 
 //! DetectorItem, holds masks and either rectangular or spherical detector as sub item
-class BA_CORE_API_ DetectorItem : public ParameterizedItem
+class BA_CORE_API_ DetectorItem : public SessionItem
 {
     Q_OBJECT
 public:
     static const QString P_DETECTOR;
-    static const QString T_MASKS;
+    static const QString T_MASKS;
     explicit DetectorItem();
     virtual ~DetectorItem(){}
 
diff --git a/GUI/coregui/Models/DistributionItem.cpp b/GUI/coregui/Models/DistributionItem.cpp
index aef1f811ce0e134a4889ed90d84f5e5453a7620c..676eaf8db68b06c489f95f87773f576c53ee74bb 100644
--- a/GUI/coregui/Models/DistributionItem.cpp
+++ b/GUI/coregui/Models/DistributionItem.cpp
@@ -24,7 +24,7 @@ const QString DistributionItem::P_NUMBER_OF_SAMPLES = "Number of samples";
 const QString DistributionItem::P_SIGMA_FACTOR = "Sigma factor";
 
 DistributionItem::DistributionItem(const QString name)
-    : ParameterizedItem(name)
+    : SessionItem(name)
 {
 }
 
@@ -45,7 +45,7 @@ const QString DistributionNoneItem::P_VALUE = "Value";
 DistributionNoneItem::DistributionNoneItem()
     : DistributionItem(Constants::DistributionNoneType)
 {
-    registerProperty(P_VALUE, 0.1)->setLimits(AttLimits::limitless());
+    registerProperty(P_VALUE, 0.1)->setLimits(AttLimits::limitless());
 }
 
 std::unique_ptr<IDistribution1D> DistributionNoneItem::createDistribution() const
@@ -56,7 +56,7 @@ std::unique_ptr<IDistribution1D> DistributionNoneItem::createDistribution() cons
 void DistributionNoneItem::init_parameters(double value, PropertyAttribute attribute)
 {
     setRegisteredProperty(DistributionNoneItem::P_VALUE, value);
-//    setPropertyAttribute(DistributionNoneItem::P_VALUE, attribute);
+//    setPropertyAttribute(DistributionNoneItem::P_VALUE, attribute);
 }
 
 /* ------------------------------------------------ */
@@ -67,8 +67,8 @@ const QString DistributionGateItem::P_MAX = "Maximum";
 DistributionGateItem::DistributionGateItem()
     : DistributionItem(Constants::DistributionGateType)
 {
-    registerProperty(P_MIN, 0.0)->setLimits(AttLimits::limitless());
-    registerProperty(P_MAX, 1.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_MIN, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_MAX, 1.0)->setLimits(AttLimits::limitless());
     register_number_of_samples();
     register_sigma_factor();
 }
@@ -85,9 +85,9 @@ void DistributionGateItem::init_parameters(double value, PropertyAttribute attri
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
     setRegisteredProperty(P_MIN, value - sigma);
-//    setPropertyAttribute(P_MIN, attribute);
+//    setPropertyAttribute(P_MIN, attribute);
     setRegisteredProperty(P_MAX, value + sigma);
-//    setPropertyAttribute(P_MAX, attribute);
+//    setPropertyAttribute(P_MAX, attribute);
 }
 
 /* ------------------------------------------------ */
@@ -98,7 +98,7 @@ const QString DistributionLorentzItem::P_HWHM = "HWHM";
 DistributionLorentzItem::DistributionLorentzItem()
     : DistributionItem(Constants::DistributionLorentzType)
 {
-    registerProperty(P_MEAN, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_MEAN, 0.0)->setLimits(AttLimits::limitless());
     registerProperty(P_HWHM, 1.0);
     register_number_of_samples();
     register_sigma_factor();
@@ -117,9 +117,9 @@ void DistributionLorentzItem::init_parameters(double value, PropertyAttribute at
     if(sigma == 0.0) sigma = 0.1;
 
     setRegisteredProperty(P_MEAN, value);
-//    setPropertyAttribute(P_MEAN, attribute);
+//    setPropertyAttribute(P_MEAN, attribute);
     setRegisteredProperty(P_HWHM, sigma);
-    getItem(P_HWHM)->setLimits(AttLimits::lowerLimited(0.0));
+    getItem(P_HWHM)->setLimits(AttLimits::lowerLimited(0.0));
 }
 
 /* ------------------------------------------------ */
@@ -130,7 +130,7 @@ const QString DistributionGaussianItem::P_STD_DEV = "Standard deviation";
 DistributionGaussianItem::DistributionGaussianItem()
     : DistributionItem(Constants::DistributionGaussianType)
 {
-    registerProperty(P_MEAN, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_MEAN, 0.0)->setLimits(AttLimits::limitless());
     registerProperty(P_STD_DEV, 1.0);
     register_number_of_samples();
     register_sigma_factor();
@@ -149,9 +149,9 @@ void DistributionGaussianItem::init_parameters(double value, PropertyAttribute a
     if(sigma == 0.0) sigma = 0.1;
 
     setRegisteredProperty(P_MEAN, value);
-//    setPropertyAttribute(P_MEAN, attribute);
+//    setPropertyAttribute(P_MEAN, attribute);
     setRegisteredProperty(P_STD_DEV, sigma);
-    getItem(P_STD_DEV)->setLimits(AttLimits::lowerLimited(0.0));
+    getItem(P_STD_DEV)->setLimits(AttLimits::lowerLimited(0.0));
 }
 
 /* ------------------------------------------------ */
@@ -181,9 +181,9 @@ void DistributionLogNormalItem::init_parameters(double value, PropertyAttribute
     if(sigma == 0.0) sigma = 0.1;
 
     setRegisteredProperty(P_MEDIAN, value);
-//    setPropertyAttribute(P_MEDIAN, attribute);
+//    setPropertyAttribute(P_MEDIAN, attribute);
     setRegisteredProperty(P_SCALE_PAR, sigma);
-    getItem(P_SCALE_PAR)->setLimits(AttLimits::lowerLimited(0.0));
+    getItem(P_SCALE_PAR)->setLimits(AttLimits::lowerLimited(0.0));
 }
 
 /* ------------------------------------------------ */
@@ -194,7 +194,7 @@ const QString DistributionCosineItem::P_SIGMA = "Sigma";
 DistributionCosineItem::DistributionCosineItem()
     : DistributionItem(Constants::DistributionCosineType)
 {
-    registerProperty(P_MEAN, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_MEAN, 0.0)->setLimits(AttLimits::limitless());
     registerProperty(P_SIGMA, 1.0);
     register_number_of_samples();
     register_sigma_factor();
@@ -213,7 +213,7 @@ void DistributionCosineItem::init_parameters(double value, PropertyAttribute att
     if(sigma == 0.0) sigma = 0.1;
 
     setRegisteredProperty(P_MEAN, value);
-//    setPropertyAttribute(P_MEAN, attribute);
+//    setPropertyAttribute(P_MEAN, attribute);
     setRegisteredProperty(P_SIGMA, sigma);
-    getItem(P_SIGMA)->setLimits(AttLimits::lowerLimited(0.0));
+    getItem(P_SIGMA)->setLimits(AttLimits::lowerLimited(0.0));
 }
diff --git a/GUI/coregui/Models/DistributionItem.h b/GUI/coregui/Models/DistributionItem.h
index 2afb31f079111a486f8b654d0af9acd7e94da07d..b7e43e6f9228e3189d0f3cf2b32dc41736c314fa 100644
--- a/GUI/coregui/Models/DistributionItem.h
+++ b/GUI/coregui/Models/DistributionItem.h
@@ -16,14 +16,14 @@
 #ifndef DISTRIBUTIONITEM_H
 #define DISTRIBUTIONITEM_H
 
-#include "ParameterizedItem.h"
-#include "PropertyAttribute.h"
+#include "SessionItem.h"
+#include "PropertyAttribute.h"
 
 #include <memory>
 
 class IDistribution1D;
 
-class BA_CORE_API_ DistributionItem : public ParameterizedItem
+class BA_CORE_API_ DistributionItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/DomainObjectBuilder.cpp b/GUI/coregui/Models/DomainObjectBuilder.cpp
index 6edb77fb8bda2e0d300bf0a378e492e25f4cadab..805b4d0ea98abe9eadf6d595f117871d76561a37 100644
--- a/GUI/coregui/Models/DomainObjectBuilder.cpp
+++ b/GUI/coregui/Models/DomainObjectBuilder.cpp
@@ -20,7 +20,7 @@
 #include "Samples.h"
 #include "Instrument.h"
 #include "InterferenceFunctions.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "ParticleCoreShell.h"
 #include "LayerItem.h"
 #include "TransformationItem.h"
@@ -38,10 +38,10 @@
 #include <QDebug>
 #include <memory>
 
-std::unique_ptr<MultiLayer> DomainObjectBuilder::buildMultiLayer(const ParameterizedItem &multilayer_item) const
+std::unique_ptr<MultiLayer> DomainObjectBuilder::buildMultiLayer(const SessionItem &multilayer_item) const
 {
     auto P_multilayer = TransformToDomain::createMultiLayer(multilayer_item);
-    QVector<ParameterizedItem *> children = multilayer_item.childItems();
+    QVector<SessionItem *> children = multilayer_item.childItems();
     for (int i = 0; i < children.size(); ++i) {
         if (children[i]->modelType() == Constants::LayerType) {
             auto P_layer = buildLayer(*children[i]);
@@ -60,10 +60,10 @@ std::unique_ptr<MultiLayer> DomainObjectBuilder::buildMultiLayer(const Parameter
     return P_multilayer;
 }
 
-std::unique_ptr<Layer> DomainObjectBuilder::buildLayer(const ParameterizedItem &item) const
+std::unique_ptr<Layer> DomainObjectBuilder::buildLayer(const SessionItem &item) const
 {
     auto P_layer = TransformToDomain::createLayer(item);
-    QVector<ParameterizedItem *> children = item.childItems();
+    QVector<SessionItem *> children = item.childItems();
     for (int i = 0; i < children.size(); ++i) {
         if (children[i]->modelType() == Constants::ParticleLayoutType) {
             auto P_layout = buildParticleLayout(*children[i]);
@@ -76,10 +76,10 @@ std::unique_ptr<Layer> DomainObjectBuilder::buildLayer(const ParameterizedItem &
 }
 
 std::unique_ptr<ParticleLayout> DomainObjectBuilder::buildParticleLayout(
-        const ParameterizedItem &item) const
+        const SessionItem &item) const
 {
     auto P_layout = TransformToDomain::createParticleLayout(item);
-    QVector<ParameterizedItem *> children = item.childItems();
+    QVector<SessionItem *> children = item.childItems();
     for (int i = 0; i < children.size(); ++i) {
         auto P_particle = TransformToDomain::createIParticle(*children[i]);
         if (P_particle) {
@@ -126,17 +126,17 @@ std::unique_ptr<ParticleLayout> DomainObjectBuilder::buildParticleLayout(
 }
 
 std::unique_ptr<IInterferenceFunction>
-DomainObjectBuilder::buildInterferenceFunction(const ParameterizedItem &item) const
+DomainObjectBuilder::buildInterferenceFunction(const SessionItem &item) const
 {
     auto P_iff = TransformToDomain::createInterferenceFunction(item);
     Q_ASSERT(P_iff);
     return P_iff;
 }
 
-std::unique_ptr<Instrument> DomainObjectBuilder::buildInstrument(const ParameterizedItem &instrument_item) const
+std::unique_ptr<Instrument> DomainObjectBuilder::buildInstrument(const SessionItem &instrument_item) const
 {
     auto P_instrument = TransformToDomain::createInstrument(instrument_item);
-    QVector<ParameterizedItem *> children = instrument_item.childItems();
+    QVector<SessionItem *> children = instrument_item.childItems();
     for (int i = 0; i < children.size(); ++i) {
         if (children[i]->modelType() == Constants::BeamType) {
             auto P_beam = buildBeam(*children[i]);
@@ -150,7 +150,7 @@ std::unique_ptr<Instrument> DomainObjectBuilder::buildInstrument(const Parameter
     return P_instrument;
 }
 
-std::unique_ptr<Beam> DomainObjectBuilder::buildBeam(const ParameterizedItem &item) const
+std::unique_ptr<Beam> DomainObjectBuilder::buildBeam(const SessionItem &item) const
 {
     return TransformToDomain::createBeam(item);
 }
diff --git a/GUI/coregui/Models/DomainObjectBuilder.h b/GUI/coregui/Models/DomainObjectBuilder.h
index d3c5f9125358591d95852adce482b073db9049d3..6cc6bdff60fc2cfadf5475827ece8a8ed8d8955f 100644
--- a/GUI/coregui/Models/DomainObjectBuilder.h
+++ b/GUI/coregui/Models/DomainObjectBuilder.h
@@ -33,19 +33,19 @@ class Beam;
 class ParticleCoreShell;
 class ParticleComposition;
 class ParticleDistribution;
-class ParameterizedItem;
+class SessionItem;
 class LayerRoughness;
 
 class BA_CORE_API_ DomainObjectBuilder
 {
 public:
-    std::unique_ptr<MultiLayer> buildMultiLayer(const ParameterizedItem &multilayer_item) const;
-    std::unique_ptr<Layer> buildLayer(const ParameterizedItem &item) const;
-    std::unique_ptr<ParticleLayout> buildParticleLayout(const ParameterizedItem &item) const;
+    std::unique_ptr<MultiLayer> buildMultiLayer(const SessionItem &multilayer_item) const;
+    std::unique_ptr<Layer> buildLayer(const SessionItem &item) const;
+    std::unique_ptr<ParticleLayout> buildParticleLayout(const SessionItem &item) const;
     std::unique_ptr<IInterferenceFunction>
-    buildInterferenceFunction(const ParameterizedItem &item) const;
-    std::unique_ptr<Instrument> buildInstrument(const ParameterizedItem &instrument_item) const;
-    std::unique_ptr<Beam> buildBeam(const ParameterizedItem &item) const;
+    buildInterferenceFunction(const SessionItem &item) const;
+    std::unique_ptr<Instrument> buildInstrument(const SessionItem &instrument_item) const;
+    std::unique_ptr<Beam> buildBeam(const SessionItem &item) const;
 };
 
 #endif // DOMAINOBJECTBUILDER_H
diff --git a/GUI/coregui/Models/FTDecayFunctionItems.h b/GUI/coregui/Models/FTDecayFunctionItems.h
index 77a1be4f6c5639a73b10ba50fb4b5c9e1c9548d8..230a3ac3cb8458ea3485493a640f8e047f97927d 100644
--- a/GUI/coregui/Models/FTDecayFunctionItems.h
+++ b/GUI/coregui/Models/FTDecayFunctionItems.h
@@ -17,17 +17,17 @@
 #define FTDECAYFUNCTIONITEMS_H
 
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "FTDecayFunctions.h"
 
 
-class BA_CORE_API_ FTDecayFunction1DItem : public ParameterizedItem
+class BA_CORE_API_ FTDecayFunction1DItem : public SessionItem
 {
     Q_OBJECT
 public:
     static const QString P_DECAY_LENGTH;
     explicit FTDecayFunction1DItem(const QString name)
-        : ParameterizedItem(name){}
+        : SessionItem(name){}
     virtual IFTDecayFunction1D *createFTDecayFunction() const { return 0;}
     virtual ~FTDecayFunction1DItem(){}
 };
@@ -65,7 +65,7 @@ public:
     virtual IFTDecayFunction1D *createFTDecayFunction() const;
 };
 
-class BA_CORE_API_ FTDecayFunction2DItem : public ParameterizedItem
+class BA_CORE_API_ FTDecayFunction2DItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -73,7 +73,7 @@ public:
     static const QString P_DECAY_LENGTH_Y;
     static const QString P_GAMMA;
     explicit FTDecayFunction2DItem(const QString name)
-        : ParameterizedItem(name) {
+        : SessionItem(name) {
          registerProperty(P_GAMMA, 0.0);
     }
     virtual IFTDecayFunction2D *createFTDecayFunction() const { return 0;}
diff --git a/GUI/coregui/Models/FTDistributionItems.h b/GUI/coregui/Models/FTDistributionItems.h
index 8ce28368103a0d1ffe210036c8867c81ae579606..00dfa32c3a349e9a6cd488db830c863b2384a56f 100644
--- a/GUI/coregui/Models/FTDistributionItems.h
+++ b/GUI/coregui/Models/FTDistributionItems.h
@@ -17,17 +17,17 @@
 #define FTDISTRIBUTIONITEMS_H
 
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "FTDistributions.h"
 
 
-class BA_CORE_API_ FTDistribution1DItem : public ParameterizedItem
+class BA_CORE_API_ FTDistribution1DItem : public SessionItem
 {
     Q_OBJECT
 public:
     static const QString P_CORR_LENGTH;
     explicit FTDistribution1DItem(const QString name)
-        : ParameterizedItem(name){}
+        : SessionItem(name){}
     virtual IFTDistribution1D *createFTDistribution() const { return 0;}
     virtual ~FTDistribution1DItem(){}
 };
@@ -81,7 +81,7 @@ public:
     virtual IFTDistribution1D *createFTDistribution() const;
 };
 
-class BA_CORE_API_ FTDistribution2DItem : public ParameterizedItem
+class BA_CORE_API_ FTDistribution2DItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -89,7 +89,7 @@ public:
     static const QString P_CORR_LENGTH_Y;
     static const QString P_GAMMA;
     explicit FTDistribution2DItem(const QString name)
-        : ParameterizedItem(name) {
+        : SessionItem(name) {
         registerProperty(P_GAMMA, 0.0);
     }
     virtual IFTDistribution2D *createFTDistribution() const { return 0;}
diff --git a/GUI/coregui/Models/FitModel.cpp b/GUI/coregui/Models/FitModel.cpp
index b900a8fd39fdde50434acd7f0a9b34b276d0f382..ee7c23b955193cc4bc4ff11eed1058238902d2b2 100644
--- a/GUI/coregui/Models/FitModel.cpp
+++ b/GUI/coregui/Models/FitModel.cpp
@@ -17,7 +17,7 @@
 #include "SampleModel.h"
 #include "InstrumentModel.h"
 #include "FitParameterItems.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "SessionModel.h"
 #include "ComboProperty.h"
 #include <QStringList>
@@ -66,7 +66,7 @@ QStringList FitModel::retrieveDisplayNames(SessionModel *model, const QString &t
     QStringList list;
     for (int i_row = 0; i_row < model->rowCount(QModelIndex()); ++i_row) {
         QModelIndex itemIndex = model->index(i_row, 0, QModelIndex());
-        if (ParameterizedItem *item = model->itemForIndex(itemIndex)) {
+        if (SessionItem *item = model->itemForIndex(itemIndex)) {
             if (item->modelType()  == type) {
                 list << item->displayName();
             }
@@ -89,23 +89,23 @@ QString FitModel::getInstrumentItemNameForDisplayName(const QString &displayName
     return "";
 }
 
-ParameterizedItem *FitModel::getSelectedMultiLayerItem() {
-    ParameterizedItem *samplesRoot = m_sampleModel->itemForIndex(QModelIndex());
+SessionItem *FitModel::getSelectedMultiLayerItem() {
+    SessionItem *samplesRoot = m_sampleModel->itemForIndex(QModelIndex());
     return samplesRoot->getChildByName(getSelectedSampleName());
 }
 
-ParameterizedItem *FitModel::getSelectedInstrumentItem() {
-    ParameterizedItem *instrumentRoot = m_instrumentModel->itemForIndex(QModelIndex());
+SessionItem *FitModel::getSelectedInstrumentItem() {
+    SessionItem *instrumentRoot = m_instrumentModel->itemForIndex(QModelIndex());
     return instrumentRoot->getChildByName(getSelectedInstrumentName());
 }
 
 void FitModel::setSelectedSample(const QString &displayName) {
-    ParameterizedItem *selection = getFitSelection();
+    SessionItem *selection = getFitSelection();
     selection->setRegisteredProperty(FitSelectionItem::P_SAMPLE, displayName);
 }
 
 void FitModel::setSelectedInstrument(const QString &displayName) {
-    ParameterizedItem *selection = getFitSelection();
+    SessionItem *selection = getFitSelection();
     selection->setRegisteredProperty(FitSelectionItem::P_INSTRUMENT, displayName);
 }
 
diff --git a/GUI/coregui/Models/FitModel.h b/GUI/coregui/Models/FitModel.h
index 8cbe37f794ecd539cf14bdbcd5868195ee5585aa..d06e87d6fd6877c791fe8259d393014df1ac4102 100644
--- a/GUI/coregui/Models/FitModel.h
+++ b/GUI/coregui/Models/FitModel.h
@@ -57,10 +57,10 @@ public:
     QStringList getInstrumentNames();
 
     //! returning selected MultiLayerItem from SampleModel
-    ParameterizedItem *getSelectedMultiLayerItem();
+    SessionItem *getSelectedMultiLayerItem();
 
     //! returning selected InstrumentItem from InstrumentModel
-    ParameterizedItem *getSelectedInstrumentItem();
+    SessionItem *getSelectedInstrumentItem();
 
     //! set sample selection
     void setSelectedSample(const QString &displayName);
diff --git a/GUI/coregui/Models/FitParameterItems.cpp b/GUI/coregui/Models/FitParameterItems.cpp
index 77f8f6bc0ddd8372edf9aa1c6db6d26c9ae75601..e3e8530aa3748b79fff57fca1cb2cc1030bca828 100644
--- a/GUI/coregui/Models/FitParameterItems.cpp
+++ b/GUI/coregui/Models/FitParameterItems.cpp
@@ -17,11 +17,11 @@
 #include "ComboProperty.h"
 
 FitParameterContainer::FitParameterContainer()
-    : ParameterizedItem(Constants::FitParameterContainerType)
+    : SessionItem(Constants::FitParameterContainerType)
 {
-    const QString T_DATA = "Data tag";
-    registerTag(T_DATA, 0, -1, QStringList() << Constants::FitParameterType);
-    setDefaultTag(T_DATA);
+    const QString T_DATA = "Data tag";
+    registerTag(T_DATA, 0, -1, QStringList() << Constants::FitParameterType);
+    setDefaultTag(T_DATA);
 }
 
 
@@ -31,15 +31,15 @@ const QString FitParameterItem::P_MIN = "Min";
 const QString FitParameterItem::P_MAX = "Max";
 
 FitParameterItem::FitParameterItem()
-    : ParameterizedItem(Constants::FitParameterType)
+    : SessionItem(Constants::FitParameterType)
 {
     registerProperty(P_USE, true);
     registerProperty(P_INIT, 0.0);
     registerProperty(P_MIN, 0.0);
     registerProperty(P_MAX, 0.0);
-    const QString T_LINK = "Link tag";
-    registerTag(T_LINK, 0, -1, QStringList() << Constants::FitParameterLinkType);
-    setDefaultTag(T_LINK);
+    const QString T_LINK = "Link tag";
+    registerTag(T_LINK, 0, -1, QStringList() << Constants::FitParameterLinkType);
+    setDefaultTag(T_LINK);
 }
 
 
@@ -47,7 +47,7 @@ FitParameterItem::FitParameterItem()
 const QString FitParameterLinkItem::P_LINK = "Link";
 
 FitParameterLinkItem::FitParameterLinkItem()
-    : ParameterizedItem(Constants::FitParameterLinkType)
+    : SessionItem(Constants::FitParameterLinkType)
 {
     registerProperty(P_LINK, "");
 }
@@ -57,7 +57,7 @@ const QString FitSelectionItem::P_SAMPLE = "Sample";
 const QString FitSelectionItem::P_INSTRUMENT = "Instrument";
 
 FitSelectionItem::FitSelectionItem()
-    : ParameterizedItem(Constants::FitSelectionType)
+    : SessionItem(Constants::FitSelectionType)
 {
     registerProperty(P_SAMPLE, "");
     registerProperty(P_INSTRUMENT, "");
@@ -66,7 +66,7 @@ FitSelectionItem::FitSelectionItem()
 const QString MinimizerSettingsItem::P_ALGO = "Algorithm";
 
 MinimizerSettingsItem::MinimizerSettingsItem()
-    : ParameterizedItem(Constants::MinimizerSettingsType)
+    : SessionItem(Constants::MinimizerSettingsType)
 {
     ComboProperty algo;
     algo << "Migrad" << "Simplex" << "Combined" << "Scan" << "Fumili";
@@ -76,7 +76,7 @@ MinimizerSettingsItem::MinimizerSettingsItem()
 const QString InputDataItem::P_PATH = "Path";
 
 InputDataItem::InputDataItem()
-    : ParameterizedItem(Constants::InputDataType)
+    : SessionItem(Constants::InputDataType)
 {
     registerProperty(P_PATH, "");
 }
diff --git a/GUI/coregui/Models/FitParameterItems.h b/GUI/coregui/Models/FitParameterItems.h
index 36c3f5d15d2066c8c4669a1ea092ca4e335c72a0..f5e3329ee41c2141d0f0a0c7c3239208fd1aa600 100644
--- a/GUI/coregui/Models/FitParameterItems.h
+++ b/GUI/coregui/Models/FitParameterItems.h
@@ -15,16 +15,16 @@
 #ifndef FITPARAMETERITEMS_H
 #define FITPARAMETERITEMS_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-class BA_CORE_API_ FitParameterContainer : public ParameterizedItem
+class BA_CORE_API_ FitParameterContainer : public SessionItem
 {
     Q_OBJECT
 public:
     explicit FitParameterContainer();
 };
 
-class BA_CORE_API_ FitParameterItem : public ParameterizedItem
+class BA_CORE_API_ FitParameterItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -36,7 +36,7 @@ public:
 };
 
 
-class BA_CORE_API_ FitParameterLinkItem : public ParameterizedItem
+class BA_CORE_API_ FitParameterLinkItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -45,7 +45,7 @@ public:
 };
 
 
-class BA_CORE_API_ FitSelectionItem : public ParameterizedItem
+class BA_CORE_API_ FitSelectionItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -54,7 +54,7 @@ public:
     explicit FitSelectionItem();
 };
 
-class BA_CORE_API_ MinimizerSettingsItem : public ParameterizedItem
+class BA_CORE_API_ MinimizerSettingsItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -62,7 +62,7 @@ public:
     explicit MinimizerSettingsItem();
 };
 
-class BA_CORE_API_ InputDataItem : public ParameterizedItem
+class BA_CORE_API_ InputDataItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/FitParameterModel.cpp b/GUI/coregui/Models/FitParameterModel.cpp
index 83ee85838a68c3da3b780985fc906a36d42054e7..002219b5f257f95c0c9d3b81524efc9d91eaf0a5 100644
--- a/GUI/coregui/Models/FitParameterModel.cpp
+++ b/GUI/coregui/Models/FitParameterModel.cpp
@@ -42,7 +42,7 @@ FitParameterModel::~FitParameterModel()
     delete m_columnNames;
 }
 
-ParameterizedItem *FitParameterModel::addParameter()
+SessionItem *FitParameterModel::addParameter()
 {
     return insertNewItem(Constants::FitParameterType, indexOfItem(itemForIndex(QModelIndex())));
 }
@@ -127,7 +127,7 @@ QVariant FitParameterModel::data(const QModelIndex & index, int role) const
     if ( !index.isValid() || index.column() < 0 || index.column() >= 5) {
         return QVariant();
     }
-    if (ParameterizedItem *item = itemForIndex(index)) {
+    if (SessionItem *item = itemForIndex(index)) {
         if (role == Qt::DisplayRole || role == Qt::EditRole) {
             if (item->parent() != itemForIndex(QModelIndex()))
             {
@@ -149,7 +149,7 @@ bool FitParameterModel::setData(const QModelIndex &index, const QVariant &value,
 {
     if (!index.isValid())
         return false;
-    if (ParameterizedItem *item = itemForIndex(index)) {
+    if (SessionItem *item = itemForIndex(index)) {
         if (role == Qt::EditRole && index.column() > 0 && index.column() < 5) {
             item->setRegisteredProperty(m_columnNames->value(index.column()), value);
             emit dataChanged(index, index);
diff --git a/GUI/coregui/Models/FitParameterModel.h b/GUI/coregui/Models/FitParameterModel.h
index f1e30864a93d60f4468d7c27a628d6c42eee0ae3..587cd9cda16385dfd5e3c47d1bfbdd7ebe32d628 100644
--- a/GUI/coregui/Models/FitParameterModel.h
+++ b/GUI/coregui/Models/FitParameterModel.h
@@ -45,7 +45,7 @@ public:
     Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE;
 
 public slots:
-    ParameterizedItem *addParameter();
+    SessionItem *addParameter();
 
 private:
     QMap<int, QString> *m_columnNames;
diff --git a/GUI/coregui/Models/FormFactorItems.h b/GUI/coregui/Models/FormFactorItems.h
index 4259f2a171c8dbe64f184f882c30c3ae97a9e20a..7a8f9c0f56b69a6eab0a45759dab9f700b672bc2 100644
--- a/GUI/coregui/Models/FormFactorItems.h
+++ b/GUI/coregui/Models/FormFactorItems.h
@@ -16,18 +16,18 @@
 #ifndef FORMFACTORITEMS_H
 #define FORMFACTORITEMS_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
 #include <memory>
 
 class IFormFactor;
 
-class BA_CORE_API_ FormFactorItem : public ParameterizedItem
+class BA_CORE_API_ FormFactorItem : public SessionItem
 {
     Q_OBJECT
 public:
     explicit FormFactorItem(const QString &model_type)
-        : ParameterizedItem(model_type) {}
+        : SessionItem(model_type) {}
     virtual std::unique_ptr<IFormFactor> createFormFactor() const=0;
 };
 
diff --git a/GUI/coregui/Models/GUIExamplesFactory.cpp b/GUI/coregui/Models/GUIExamplesFactory.cpp
index 4cd17576eba87eb49b05c4d78a91ea1f46383e63..f52142ff885b1e07afb169829319142e52e4d75c 100644
--- a/GUI/coregui/Models/GUIExamplesFactory.cpp
+++ b/GUI/coregui/Models/GUIExamplesFactory.cpp
@@ -61,7 +61,7 @@ bool GUIExamplesFactory::isValidExampleName(const QString &name)
 }
 
 //! Populate sample model with
-ParameterizedItem *GUIExamplesFactory::createSampleItems(const QString &name, SampleModel *sampleModel)
+SessionItem *GUIExamplesFactory::createSampleItems(const QString &name, SampleModel *sampleModel)
 {
     QString exampleName = m_name_to_registry[name];
 
@@ -72,7 +72,7 @@ ParameterizedItem *GUIExamplesFactory::createSampleItems(const QString &name, Sa
     return guiBuilder.populateSampleModel(sampleModel, *sample.get(), name);
 }
 
-//ParameterizedItem *GUIExamplesFactory::createInstrumentItems(const QString &name, InstrumentModel *instrumentModel)
+//SessionItem *GUIExamplesFactory::createInstrumentItems(const QString &name, InstrumentModel *instrumentModel)
 //{
 //    QString exampleName = m_name_to_registry[name];
 //    SimulationRegistry registry;
diff --git a/GUI/coregui/Models/GUIExamplesFactory.h b/GUI/coregui/Models/GUIExamplesFactory.h
index e3e9e6bcc2a541d6aba753f69634c124df991448..bfebb705df1daf889dfbc95acf9762a9e4f27525 100644
--- a/GUI/coregui/Models/GUIExamplesFactory.h
+++ b/GUI/coregui/Models/GUIExamplesFactory.h
@@ -20,7 +20,7 @@
 #include <QMap>
 #include <QString>
 
-class ParameterizedItem;
+class SessionItem;
 class InstrumentModel;
 class SampleModel;
 
@@ -30,8 +30,8 @@ class BA_CORE_API_ GUIExamplesFactory
 public:
     static bool isValidExampleName(const QString &name);
 
-    static ParameterizedItem *createSampleItems(const QString &name, SampleModel *sampleModel);
-//    static ParameterizedItem *createInstrumentItems(const QString &name, InstrumentModel *instrumentModel);
+    static SessionItem *createSampleItems(const QString &name, SampleModel *sampleModel);
+//    static SessionItem *createInstrumentItems(const QString &name, InstrumentModel *instrumentModel);
 
 private:
     static QMap<QString, QString> m_name_to_registry;
diff --git a/GUI/coregui/Models/GUIObjectBuilder.cpp b/GUI/coregui/Models/GUIObjectBuilder.cpp
index 7e7d89618dedb2570dd8c4d495853fc4c6db63c9..d041a6e155c54989bf2624f1c46e44517ded3a06 100644
--- a/GUI/coregui/Models/GUIObjectBuilder.cpp
+++ b/GUI/coregui/Models/GUIObjectBuilder.cpp
@@ -52,7 +52,7 @@ GUIObjectBuilder::GUIObjectBuilder()
 }
 
 
-ParameterizedItem *GUIObjectBuilder::populateSampleModel(SampleModel *sampleModel,
+SessionItem *GUIObjectBuilder::populateSampleModel(SampleModel *sampleModel,
                                        const GISASSimulation &simulation, const QString &sampleName)
 {
     std::unique_ptr<ISample> P_sample;
@@ -67,7 +67,7 @@ ParameterizedItem *GUIObjectBuilder::populateSampleModel(SampleModel *sampleMode
     return populateSampleModel(sampleModel, *P_sample, sampleName);
 }
 
-ParameterizedItem *GUIObjectBuilder::populateSampleModel(SampleModel *sampleModel,
+SessionItem *GUIObjectBuilder::populateSampleModel(SampleModel *sampleModel,
                                                          const ISample &sample,
                                                          const QString &sampleName)
 {
@@ -81,18 +81,18 @@ ParameterizedItem *GUIObjectBuilder::populateSampleModel(SampleModel *sampleMode
     m_sampleModel = sampleModel;
 
     VisitSampleTreePreorder(sample, *this);
-    ParameterizedItem *result = m_levelToParentItem[1];
+    SessionItem *result = m_levelToParentItem[1];
 
     result->setItemName(m_topSampleName);
     return result;
 }
 
-ParameterizedItem *GUIObjectBuilder::populateInstrumentModel(InstrumentModel *instrumentModel,
+SessionItem *GUIObjectBuilder::populateInstrumentModel(InstrumentModel *instrumentModel,
                                                              const GISASSimulation &simulation,
                                                              const QString &instrumentName)
 {
     Q_ASSERT(instrumentModel);
-    ParameterizedItem *instrumentItem =
+    SessionItem *instrumentItem =
             instrumentModel->insertNewItem(Constants::InstrumentType);
 
     if(instrumentName.isEmpty()) {
@@ -124,8 +124,8 @@ ParameterizedItem *GUIObjectBuilder::populateInstrumentModel(InstrumentModel *in
 void GUIObjectBuilder::visit(const ParticleLayout *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const ParticleLayout *)"  << getLevel();
-    ParameterizedItem *parent = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *item(0);
+    SessionItem *parent = m_levelToParentItem[getLevel()-1];
+    SessionItem *item(0);
     if (parent) {
         item = m_sampleModel->insertNewItem(Constants::ParticleLayoutType,
                                          m_sampleModel->indexOfItem(parent));
@@ -159,7 +159,7 @@ void GUIObjectBuilder::visit(const ParticleLayout *sample)
 void GUIObjectBuilder::visit(const Layer *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const Layer *)"  << getLevel();
-    ParameterizedItem *parent = m_levelToParentItem[getLevel()-1];
+    SessionItem *parent = m_levelToParentItem[getLevel()-1];
     Q_ASSERT(parent);
 
     const MultiLayer *multilayer =
@@ -170,7 +170,7 @@ void GUIObjectBuilder::visit(const Layer *sample)
     const LayerInterface *interface =
             multilayer->getLayerTopInterface(layer_index);
 
-    ParameterizedItem *layerItem = m_sampleModel->insertNewItem(
+    SessionItem *layerItem = m_sampleModel->insertNewItem(
         Constants::LayerType, m_sampleModel->indexOfItem(parent));
     layerItem->setRegisteredProperty(LayerItem::P_MATERIAL,
         createMaterialFromDomain(sample->getMaterial()).getVariant());
@@ -190,7 +190,7 @@ void GUIObjectBuilder::visit(const MultiLayer *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const MultiLayer *)" << getLevel();
 
-    ParameterizedItem *item =
+    SessionItem *item =
             m_sampleModel->insertNewItem(Constants::MultiLayerType);
     item->setItemName(sample->getName().c_str());
     item->setRegisteredProperty(MultiLayerItem::P_CROSS_CORR_LENGTH,
@@ -203,20 +203,20 @@ void GUIObjectBuilder::visit(const Particle *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const Particle *)" << getLevel();
 
-    ParameterizedItem *parent = m_levelToParentItem[getLevel() - 1];
+    SessionItem *parent = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(parent);
 
-    ParameterizedItem *particleItem(0);
+    SessionItem *particleItem(0);
     if (parent->modelType() == Constants::ParticleCoreShellType) {
         const ParticleCoreShell *coreshell
             = dynamic_cast<const ParticleCoreShell *>(m_itemToSample[parent]);
         Q_ASSERT(coreshell);
         if (sample == coreshell->getCoreParticle()) {
             particleItem = m_sampleModel->insertNewItem(Constants::ParticleType,
-                                                        m_sampleModel->indexOfItem(parent), -1);
+                                                        m_sampleModel->indexOfItem(parent), -1);
         } else if (sample == coreshell->getShellParticle()) {
             particleItem = m_sampleModel->insertNewItem(Constants::ParticleType,
-                                                        m_sampleModel->indexOfItem(parent), -1);
+                                                        m_sampleModel->indexOfItem(parent), -1);
         } else {
             throw GUIHelpers::Error(
                 "GUIObjectBuilder::visit"
@@ -244,9 +244,9 @@ void GUIObjectBuilder::visit(const ParticleDistribution *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const ParticleDistribution *)" << getLevel();
 
-    ParameterizedItem *layoutItem = m_levelToParentItem[getLevel() - 1];
+    SessionItem *layoutItem = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(layoutItem);
-    ParameterizedItem *particle_distribution_item = m_sampleModel->insertNewItem(
+    SessionItem *particle_distribution_item = m_sampleModel->insertNewItem(
         Constants::ParticleDistributionType, m_sampleModel->indexOfItem(layoutItem));
     Q_ASSERT(particle_distribution_item);
 
@@ -260,10 +260,10 @@ void GUIObjectBuilder::visit(const ParticleCoreShell *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const ParticleCoreShell *)" << getLevel();
 
-    ParameterizedItem *parent = m_levelToParentItem[getLevel() - 1];
+    SessionItem *parent = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(parent);
 
-    ParameterizedItem *coreshellItem = m_sampleModel->insertNewItem(
+    SessionItem *coreshellItem = m_sampleModel->insertNewItem(
         Constants::ParticleCoreShellType, m_sampleModel->indexOfItem(parent));
     coreshellItem->setRegisteredProperty(ParticleItem::P_ABUNDANCE, sample->getAbundance());
 
@@ -277,9 +277,9 @@ void GUIObjectBuilder::visit(const ParticleComposition *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const ParticleComposition *)" << getLevel();
 
-    ParameterizedItem *parent = m_levelToParentItem[getLevel() - 1];
+    SessionItem *parent = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(parent);
-    ParameterizedItem *particle_composition_item = m_sampleModel->insertNewItem(
+    SessionItem *particle_composition_item = m_sampleModel->insertNewItem(
         Constants::ParticleCompositionType, m_sampleModel->indexOfItem(parent));
     particle_composition_item->setRegisteredProperty(ParticleItem::P_ABUNDANCE,
                                                      sample->getAbundance());
@@ -292,8 +292,8 @@ void GUIObjectBuilder::visit(const ParticleComposition *sample)
 
 void GUIObjectBuilder::visit(const FormFactorAnisoPyramid *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::AnisoPyramidType);
     ffItem->setRegisteredProperty(AnisoPyramidItem::P_LENGTH,
                                   sample->getLength());
@@ -308,8 +308,8 @@ void GUIObjectBuilder::visit(const FormFactorAnisoPyramid *sample)
 
 void GUIObjectBuilder::visit(const FormFactorBox *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::BoxType);
     ffItem->setRegisteredProperty(BoxItem::P_LENGTH, sample->getLength());
     ffItem->setRegisteredProperty(BoxItem::P_WIDTH, sample->getWidth());
@@ -319,8 +319,8 @@ void GUIObjectBuilder::visit(const FormFactorBox *sample)
 
 void GUIObjectBuilder::visit(const FormFactorCone *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::ConeType);
     ffItem->setRegisteredProperty(ConeItem::P_RADIUS, sample->getRadius());
     ffItem->setRegisteredProperty(ConeItem::P_HEIGHT, sample->getHeight());
@@ -331,8 +331,8 @@ void GUIObjectBuilder::visit(const FormFactorCone *sample)
 
 void GUIObjectBuilder::visit(const FormFactorCone6 *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::Cone6Type);
     ffItem->setRegisteredProperty(Cone6Item::P_RADIUS, sample->getRadius());
     ffItem->setRegisteredProperty(Cone6Item::P_HEIGHT, sample->getHeight());
@@ -343,8 +343,8 @@ void GUIObjectBuilder::visit(const FormFactorCone6 *sample)
 
 void GUIObjectBuilder::visit(const FormFactorCuboctahedron *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::CuboctahedronType);
     ffItem->setRegisteredProperty(CuboctahedronItem::P_LENGTH,
                                   sample->getLength());
@@ -359,8 +359,8 @@ void GUIObjectBuilder::visit(const FormFactorCuboctahedron *sample)
 
 void GUIObjectBuilder::visit(const FormFactorCylinder *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::CylinderType);
     ffItem->setRegisteredProperty(CylinderItem::P_RADIUS, sample->getRadius());
     ffItem->setRegisteredProperty(CylinderItem::P_HEIGHT, sample->getHeight());
@@ -369,8 +369,8 @@ void GUIObjectBuilder::visit(const FormFactorCylinder *sample)
 
 void GUIObjectBuilder::visit(const FormFactorEllipsoidalCylinder *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
        ParticleItem::P_FORM_FACTOR, Constants::EllipsoidalCylinderType);
     ffItem->setRegisteredProperty(EllipsoidalCylinderItem::P_RADIUS_X,
                                   sample->getRadiusX());
@@ -383,8 +383,8 @@ void GUIObjectBuilder::visit(const FormFactorEllipsoidalCylinder *sample)
 
 void GUIObjectBuilder::visit(const FormFactorFullSphere *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::FullSphereType);
     ffItem->setRegisteredProperty(FullSphereItem::P_RADIUS,
                                   sample->getRadius());
@@ -393,8 +393,8 @@ void GUIObjectBuilder::visit(const FormFactorFullSphere *sample)
 
 void GUIObjectBuilder::visit(const FormFactorFullSpheroid *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::FullSpheroidType);
     ffItem->setRegisteredProperty(FullSpheroidItem::P_RADIUS,
                                   sample->getRadius());
@@ -405,8 +405,8 @@ void GUIObjectBuilder::visit(const FormFactorFullSpheroid *sample)
 
 void GUIObjectBuilder::visit(const FormFactorHemiEllipsoid *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::HemiEllipsoidType);
     ffItem->setRegisteredProperty(HemiEllipsoidItem::P_RADIUS_X,
                                   sample->getRadiusX());
@@ -419,8 +419,8 @@ void GUIObjectBuilder::visit(const FormFactorHemiEllipsoid *sample)
 
 void GUIObjectBuilder::visit(const FormFactorPrism3 *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::Prism3Type);
     ffItem->setRegisteredProperty(Prism3Item::P_LENGTH, sample->getLength());
     ffItem->setRegisteredProperty(Prism3Item::P_HEIGHT, sample->getHeight());
@@ -429,8 +429,8 @@ void GUIObjectBuilder::visit(const FormFactorPrism3 *sample)
 
 void GUIObjectBuilder::visit(const FormFactorPrism6 *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::Prism6Type);
     ffItem->setRegisteredProperty(Prism6Item::P_RADIUS, sample->getRadius());
     ffItem->setRegisteredProperty(Prism6Item::P_HEIGHT, sample->getHeight());
@@ -439,8 +439,8 @@ void GUIObjectBuilder::visit(const FormFactorPrism6 *sample)
 
 void GUIObjectBuilder::visit(const FormFactorPyramid *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::PyramidType);
     ffItem->setRegisteredProperty(PyramidItem::P_LENGTH, sample->getLength());
     ffItem->setRegisteredProperty(PyramidItem::P_HEIGHT, sample->getHeight());
@@ -451,8 +451,8 @@ void GUIObjectBuilder::visit(const FormFactorPyramid *sample)
 
 void GUIObjectBuilder::visit(const FormFactorRipple1 *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::Ripple1Type);
     ffItem->setRegisteredProperty(Ripple1Item::P_LENGTH, sample->getLength());
     ffItem->setRegisteredProperty(Ripple1Item::P_WIDTH, sample->getWidth());
@@ -462,8 +462,8 @@ void GUIObjectBuilder::visit(const FormFactorRipple1 *sample)
 
 void GUIObjectBuilder::visit(const FormFactorRipple2 *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::Ripple2Type);
     ffItem->setRegisteredProperty(Ripple2Item::P_LENGTH, sample->getLength());
     ffItem->setRegisteredProperty(Ripple2Item::P_WIDTH, sample->getWidth());
@@ -475,8 +475,8 @@ void GUIObjectBuilder::visit(const FormFactorRipple2 *sample)
 
 void GUIObjectBuilder::visit(const FormFactorTetrahedron *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::TetrahedronType);
     ffItem->setRegisteredProperty(TetrahedronItem::P_LENGTH,
                                   sample->getLength());
@@ -489,8 +489,8 @@ void GUIObjectBuilder::visit(const FormFactorTetrahedron *sample)
 
 void GUIObjectBuilder::visit(const FormFactorTruncatedCube *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::TruncatedCubeType);
     ffItem->setRegisteredProperty(TruncatedCubeItem::P_LENGTH,
                                   sample->getLength());
@@ -501,8 +501,8 @@ void GUIObjectBuilder::visit(const FormFactorTruncatedCube *sample)
 
 void GUIObjectBuilder::visit(const FormFactorTruncatedSphere *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
         ParticleItem::P_FORM_FACTOR, Constants::TruncatedSphereType);
     ffItem->setRegisteredProperty(TruncatedSphereItem::P_RADIUS,
                                   sample->getRadius());
@@ -513,8 +513,8 @@ void GUIObjectBuilder::visit(const FormFactorTruncatedSphere *sample)
 
 void GUIObjectBuilder::visit(const FormFactorTruncatedSpheroid *sample)
 {
-    ParameterizedItem *particleItem = m_levelToParentItem[getLevel()-1];
-    ParameterizedItem *ffItem = particleItem->setGroupProperty(
+    SessionItem *particleItem = m_levelToParentItem[getLevel()-1];
+    SessionItem *ffItem = particleItem->setGroupProperty(
                 ParticleItem::P_FORM_FACTOR, Constants::TruncatedSpheroidType);
     ffItem->setRegisteredProperty(TruncatedSpheroidItem::P_RADIUS,
                                   sample->getRadius());
@@ -527,9 +527,9 @@ void GUIObjectBuilder::visit(const FormFactorTruncatedSpheroid *sample)
 
 void GUIObjectBuilder::visit(const InterferenceFunctionRadialParaCrystal *sample)
 {
-    ParameterizedItem *parent = m_levelToParentItem[getLevel() - 1];
+    SessionItem *parent = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(parent);
-    ParameterizedItem *item = m_sampleModel->insertNewItem(
+    SessionItem *item = m_sampleModel->insertNewItem(
         Constants::InterferenceFunctionRadialParaCrystalType, m_sampleModel->indexOfItem(parent));
     Q_ASSERT(item);
     TransformFromDomain::setItemFromSample(item, sample);
@@ -538,9 +538,9 @@ void GUIObjectBuilder::visit(const InterferenceFunctionRadialParaCrystal *sample
 
 void GUIObjectBuilder::visit(const InterferenceFunction2DParaCrystal *sample)
 {
-    ParameterizedItem *parent = m_levelToParentItem[getLevel() - 1];
+    SessionItem *parent = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(parent);
-    ParameterizedItem *item = m_sampleModel->insertNewItem(
+    SessionItem *item = m_sampleModel->insertNewItem(
         Constants::InterferenceFunction2DParaCrystalType, m_sampleModel->indexOfItem(parent));
     Q_ASSERT(item);
     TransformFromDomain::setItemFromSample(item, sample);
@@ -549,9 +549,9 @@ void GUIObjectBuilder::visit(const InterferenceFunction2DParaCrystal *sample)
 
 void GUIObjectBuilder::visit(const InterferenceFunction1DLattice *sample)
 {
-    ParameterizedItem *parent = m_levelToParentItem[getLevel() - 1];
+    SessionItem *parent = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(parent);
-    ParameterizedItem *item = m_sampleModel->insertNewItem(
+    SessionItem *item = m_sampleModel->insertNewItem(
         Constants::InterferenceFunction1DLatticeType, m_sampleModel->indexOfItem(parent));
     Q_ASSERT(item);
     TransformFromDomain::setItemFromSample(item, sample);
@@ -560,9 +560,9 @@ void GUIObjectBuilder::visit(const InterferenceFunction1DLattice *sample)
 
 void GUIObjectBuilder::visit(const InterferenceFunction2DLattice *sample)
 {
-    ParameterizedItem *parent = m_levelToParentItem[getLevel() - 1];
+    SessionItem *parent = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(parent);
-    ParameterizedItem *item = m_sampleModel->insertNewItem(
+    SessionItem *item = m_sampleModel->insertNewItem(
         Constants::InterferenceFunction2DLatticeType, m_sampleModel->indexOfItem(parent));
     Q_ASSERT(item);
     TransformFromDomain::setItemFromSample(item, sample);
@@ -584,12 +584,12 @@ void GUIObjectBuilder::visit(const RotationX *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const RotationX *)" << getLevel();
 
-    ParameterizedItem *parent = m_levelToParentItem[getLevel()-1];
+    SessionItem *parent = m_levelToParentItem[getLevel()-1];
     Q_ASSERT(parent);
 
-    ParameterizedItem *transformation_item = m_sampleModel->insertNewItem(
+    SessionItem *transformation_item = m_sampleModel->insertNewItem(
         Constants::TransformationType, m_sampleModel->indexOfItem(parent));
-    ParameterizedItem *p_rotationItem = transformation_item->setGroupProperty(
+    SessionItem *p_rotationItem = transformation_item->setGroupProperty(
                 TransformationItem::P_ROT, Constants::XRotationType);
     p_rotationItem->setRegisteredProperty(XRotationItem::P_ANGLE,
                                           Units::rad2deg(sample->getAngle()) );
@@ -600,12 +600,12 @@ void GUIObjectBuilder::visit(const RotationY *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const RotationY *)" << getLevel();
 
-    ParameterizedItem *parent = m_levelToParentItem[getLevel() - 1];
+    SessionItem *parent = m_levelToParentItem[getLevel() - 1];
     Q_ASSERT(parent);
 
-    ParameterizedItem *transformation_item = m_sampleModel->insertNewItem(
+    SessionItem *transformation_item = m_sampleModel->insertNewItem(
         Constants::TransformationType, m_sampleModel->indexOfItem(parent));
-    ParameterizedItem *p_rotationItem = transformation_item->setGroupProperty(
+    SessionItem *p_rotationItem = transformation_item->setGroupProperty(
         TransformationItem::P_ROT, Constants::YRotationType);
     p_rotationItem->setRegisteredProperty(YRotationItem::P_ANGLE,
                                           Units::rad2deg(sample->getAngle()));
@@ -616,12 +616,12 @@ void GUIObjectBuilder::visit(const RotationZ *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const RotationZ *)" << getLevel();
 
-    ParameterizedItem *parent = m_levelToParentItem[getLevel()-1];
+    SessionItem *parent = m_levelToParentItem[getLevel()-1];
     Q_ASSERT(parent);
 
-    ParameterizedItem *transformation_item = m_sampleModel->insertNewItem(
+    SessionItem *transformation_item = m_sampleModel->insertNewItem(
         Constants::TransformationType, m_sampleModel->indexOfItem(parent));
-    ParameterizedItem *p_rotationItem = transformation_item->setGroupProperty(
+    SessionItem *p_rotationItem = transformation_item->setGroupProperty(
                 TransformationItem::P_ROT, Constants::ZRotationType);
     p_rotationItem->setRegisteredProperty(ZRotationItem::P_ANGLE,
                                           Units::rad2deg(sample->getAngle()) );
@@ -632,12 +632,12 @@ void GUIObjectBuilder::visit(const RotationEuler *sample)
 {
     qDebug() << "GUIObjectBuilder::visit(const RotationEuler *)" << getLevel();
 
-    ParameterizedItem *parent = m_levelToParentItem[getLevel()-1];
+    SessionItem *parent = m_levelToParentItem[getLevel()-1];
     Q_ASSERT(parent);
 
-    ParameterizedItem *transformation_item = m_sampleModel->insertNewItem(
+    SessionItem *transformation_item = m_sampleModel->insertNewItem(
         Constants::TransformationType, m_sampleModel->indexOfItem(parent));
-    ParameterizedItem *p_rotationItem = transformation_item->setGroupProperty(
+    SessionItem *p_rotationItem = transformation_item->setGroupProperty(
                 TransformationItem::P_ROT, Constants::EulerRotationType);
     p_rotationItem->setRegisteredProperty(EulerRotationItem::P_ALPHA,
                                           Units::rad2deg(sample->getAlpha()) );
@@ -648,10 +648,10 @@ void GUIObjectBuilder::visit(const RotationEuler *sample)
     m_levelToParentItem[getLevel()] = transformation_item;
 }
 
-void GUIObjectBuilder::buildPositionInfo(ParameterizedItem *particleItem, const IParticle *sample)
+void GUIObjectBuilder::buildPositionInfo(SessionItem *particleItem, const IParticle *sample)
 {
     kvector_t position = sample->getPosition();
-    ParameterizedItem *p_position_item = particleItem->getGroupItem(ParticleItem::P_POSITION);
+    SessionItem *p_position_item = particleItem->getGroupItem(ParticleItem::P_POSITION);
     p_position_item->setRegisteredProperty(VectorItem::P_X, position.x());
     p_position_item->setRegisteredProperty(VectorItem::P_Y, position.y());
     p_position_item->setRegisteredProperty(VectorItem::P_Z, position.z());
diff --git a/GUI/coregui/Models/GUIObjectBuilder.h b/GUI/coregui/Models/GUIObjectBuilder.h
index 075b60646cf6b9ac560896e95edb7fac523cf0ec..f34584057f8b72aac7ff0f5dada88ac0c3d34571 100644
--- a/GUI/coregui/Models/GUIObjectBuilder.h
+++ b/GUI/coregui/Models/GUIObjectBuilder.h
@@ -24,7 +24,7 @@
 
 class InstrumentModel;
 class SampleModel;
-class ParameterizedItem;
+class SessionItem;
 
 //! Class to build SampleModel and InstrumentModel from domain's ISample
 class BA_CORE_API_ GUIObjectBuilder : public ISampleVisitor
@@ -33,15 +33,15 @@ public:
     GUIObjectBuilder();
     virtual ~GUIObjectBuilder(){}
 
-    ParameterizedItem *populateSampleModel(SampleModel *sampleModel,
+    SessionItem *populateSampleModel(SampleModel *sampleModel,
                                            const GISASSimulation &simulation,
                                            const QString &sampleName=QString());
 
-    ParameterizedItem *populateSampleModel(SampleModel *sampleModel,
+    SessionItem *populateSampleModel(SampleModel *sampleModel,
                                            const ISample &sample,
                                            const QString &sampleName=QString());
 
-    ParameterizedItem *populateInstrumentModel(InstrumentModel *instrumentModel,
+    SessionItem *populateInstrumentModel(InstrumentModel *instrumentModel,
                                                const GISASSimulation &simulation,
                                                const QString &instrumentName=QString());
 
@@ -95,16 +95,16 @@ public:
     void visit(const RotationEuler *);
 
 private:
-    void buildAbundanceInfo(ParameterizedItem *particleItem);
-    void buildPositionInfo(ParameterizedItem *particleItem, const IParticle *sample);
+    void buildAbundanceInfo(SessionItem *particleItem);
+    void buildPositionInfo(SessionItem *particleItem, const IParticle *sample);
     MaterialProperty createMaterialFromDomain(const IMaterial *);
 
     SampleModel *m_sampleModel;
 
-    QMap<int, ParameterizedItem *> m_levelToParentItem;
+    QMap<int, SessionItem *> m_levelToParentItem;
     QMap<QString, double > m_propertyToValue;
     QMap<QString, bool> m_sample_encountered;
-    QMap<ParameterizedItem *, const ISample *> m_itemToSample;
+    QMap<SessionItem *, const ISample *> m_itemToSample;
     QString m_topSampleName;
 };
 
diff --git a/GUI/coregui/Models/GroupItem.cpp b/GUI/coregui/Models/GroupItem.cpp
index 90986101e2d7781de44965c0da0afd80717b2da5..3814621ba0e2f32b64710a755bdf821c9384f569 100644
--- a/GUI/coregui/Models/GroupItem.cpp
+++ b/GUI/coregui/Models/GroupItem.cpp
@@ -16,16 +16,16 @@
 #include "GroupItem.h"
 
 GroupItem::GroupItem()
-    :ParameterizedItem(Constants::GroupItemType)
+    :SessionItem(Constants::GroupItemType)
 {
-    const QString T_ITEMS = "Item tag";
-    registerTag(T_ITEMS);
-    setDefaultTag(T_ITEMS);
+    const QString T_ITEMS = "Item tag";
+    registerTag(T_ITEMS);
+    setDefaultTag(T_ITEMS);
 }
 
 void GroupItem::setGroup(GroupProperty_t group)
 {
-    group->setGroupItem(this);
+    group->setGroupItem(this);
     setValue(QVariant::fromValue(group));
 }
 
diff --git a/GUI/coregui/Models/GroupItem.h b/GUI/coregui/Models/GroupItem.h
index 6e3c7ac945d7cae921bf8da90c3bf834089a35be..35f5bbf1ceeaee7fb9b16773b823e51475c4c8e7 100644
--- a/GUI/coregui/Models/GroupItem.h
+++ b/GUI/coregui/Models/GroupItem.h
@@ -16,10 +16,10 @@
 #ifndef GROUPITEM_H
 #define GROUPITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "GroupProperty.h"
 
-class BA_CORE_API_ GroupItem : public ParameterizedItem
+class BA_CORE_API_ GroupItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/GroupProperty.cpp b/GUI/coregui/Models/GroupProperty.cpp
index 2a62e1a797df308e8f806ddab9bc2025c9bc7a99..8413d9ba8fa3068fc458e5b8bfe924e1a06641cc 100644
--- a/GUI/coregui/Models/GroupProperty.cpp
+++ b/GUI/coregui/Models/GroupProperty.cpp
@@ -22,7 +22,7 @@
 GroupProperty::GroupProperty(QString group_name)
     : m_group_name(std::move(group_name))
     , m_group_type(UNDEFINED)
-    , m_groupItem(0)
+    , m_groupItem(0)
 {
 }
 
@@ -31,26 +31,26 @@ GroupProperty::EGroupType GroupProperty::type() const
     return m_group_type;
 }
 
-ParameterizedItem *GroupProperty::getCurrentItem()
+SessionItem *GroupProperty::getCurrentItem()
 {
-    qDebug() << "GroupProperty::getCurrentItem()" << m_groupItem;
-    if(m_groupItem) return m_groupItem->getChildByName(this->getCurrentType());
+    qDebug() << "GroupProperty::getCurrentItem()" << m_groupItem;
+    if(m_groupItem) return m_groupItem->getChildByName(this->getCurrentType());
     return 0;
 //    Q_ASSERT(m_parent);
 //    return m_parent->getChildByName(this->getCurrentType());
 }
 
-void GroupProperty::setGroupItem(ParameterizedItem *groupItem)
+void GroupProperty::setGroupItem(SessionItem *groupItem)
 {
-    Q_ASSERT(groupItem);
-    m_groupItem = groupItem;
-    ParameterizedItem *item = createCorrespondingItem();
-    m_groupItem->insertChildItem(-1, item);
+    Q_ASSERT(groupItem);
+    m_groupItem = groupItem;
+    SessionItem *item = createCorrespondingItem();
+    m_groupItem->insertChildItem(-1, item);
 }
 
-ParameterizedItem *GroupProperty::createCorrespondingItem()
+SessionItem *GroupProperty::createCorrespondingItem()
 {
-    ParameterizedItem *result = ItemFactory::createItem(getCurrentType());
+    SessionItem *result = ItemFactory::createItem(getCurrentType());
     if(type() == FIXED) {
         setCurrentLabel(result->itemLabel());
     }
@@ -72,24 +72,24 @@ void GroupProperty::setCurrentType(const QString &type, bool persistent)
     qDebug() << "GGG GroupProperty::setCurrentType(const QString &type)" << type;
     if(type == getCurrentType()) return;
 
-    ParameterizedItem *prevItem = getCurrentItem();
+    SessionItem *prevItem = getCurrentItem();
     m_current_type = type;
 
-    if(m_groupItem) {
-        if (auto item = m_groupItem->getChildByName(m_current_type)) {
-            item->setVisible(true);
-            item->setEnabled(true);
+    if(m_groupItem) {
+        if (auto item = m_groupItem->getChildByName(m_current_type)) {
+            item->setVisible(true);
+            item->setEnabled(true);
         } else {
-            ParameterizedItem *new_item = createCorrespondingItem();
-            m_groupItem->insertChildItem(-1, new_item);
+            SessionItem *new_item = createCorrespondingItem();
+            m_groupItem->insertChildItem(-1, new_item);
         }
 
         if(prevItem) {
-            prevItem->setVisible(false);
-            prevItem->setEnabled(false);
+            prevItem->setVisible(false);
+            prevItem->setEnabled(false);
         }
 
-        m_groupItem->emitValueChanged();
+        m_groupItem->emitValueChanged();
     }
 }
 
@@ -102,7 +102,7 @@ void GroupProperty::setCurrentLabel(const QString &label)
 {
     if(type() == FIXED) {
         m_type_label_map[m_current_type] = label;
-//        if(m_groupItem) m_groupItem->getItem(getGroupName())->emitValueChanged();
+//        if(m_groupItem) m_groupItem->getItem(getGroupName())->emitValueChanged();
     }
 }
 
diff --git a/GUI/coregui/Models/GroupProperty.h b/GUI/coregui/Models/GroupProperty.h
index fea3d64f13dbc2c4291913dfad2e501bc842afdf..7d9245cb7cc6bd551648a565167ee4cb48294640 100644
--- a/GUI/coregui/Models/GroupProperty.h
+++ b/GUI/coregui/Models/GroupProperty.h
@@ -24,10 +24,10 @@
 #include <QMetaType>
 #include <QSharedPointer>
 
-class ParameterizedItem;
+class SessionItem;
 
 //! The GroupProperty class represents a composition of the basic properties
-//! corresponding to a ParameterizedItem object.
+//! corresponding to a SessionItem object.
 //! Its construction is handled by a GroupPropertyRegistry object.
 class BA_CORE_API_ GroupProperty
 {
@@ -36,11 +36,11 @@ public:
 
     EGroupType type() const;
 
-    void setGroupItem(ParameterizedItem *groupItem);
+    void setGroupItem(SessionItem *groupItem);
 
-    ParameterizedItem *getCurrentItem();
+    SessionItem *getCurrentItem();
 
-    ParameterizedItem *createCorrespondingItem();
+    SessionItem *createCorrespondingItem();
 
     QString getGroupName() const;
 
@@ -66,7 +66,7 @@ private:
 
     QString m_group_name;
     EGroupType m_group_type;
-    ParameterizedItem *m_groupItem;
+    SessionItem *m_groupItem;
     QString m_current_type;
 
     std::map<QString, QString > m_type_label_map;
diff --git a/GUI/coregui/Models/GroupPropertyRegistry.cpp b/GUI/coregui/Models/GroupPropertyRegistry.cpp
index b44b250d77f44ffde7d70b78308fc95b4edc1cb6..56986b9d00dc4a2efc388e3355740ca85021f228 100644
--- a/GUI/coregui/Models/GroupPropertyRegistry.cpp
+++ b/GUI/coregui/Models/GroupPropertyRegistry.cpp
@@ -22,7 +22,7 @@
 namespace
 {
 
-// Correspondance of ParameterizedItem's types to their labels
+// Correspondance of SessionItem's types to their labels
 GroupPropertyRegistry::SelectableGroupMap_t initializeSelectableGroupMap()
 {
     GroupPropertyRegistry::SelectableGroupMap_t result;
diff --git a/GUI/coregui/Models/GroupPropertyRegistry.h b/GUI/coregui/Models/GroupPropertyRegistry.h
index 279c92aa2fe0cf33c2c71953d966eb5dd65190cb..f0757fddaef6592a2eac9ed8491b9d28b524d985 100644
--- a/GUI/coregui/Models/GroupPropertyRegistry.h
+++ b/GUI/coregui/Models/GroupPropertyRegistry.h
@@ -23,7 +23,7 @@
 #include <map>
 #include <QString>
 
-class ParameterizedItem;
+class SessionItem;
 
 //! The GroupPropertyRegistry is responsible for constructing GroupProperty objects
 //! according to the given name of the group.
diff --git a/GUI/coregui/Models/IconProvider.h b/GUI/coregui/Models/IconProvider.h
index 71fb85e2ef69beaede141992ee2b8702705feb1e..eff0f17b33cf2df056fcd31976d2d9a973149a40 100644
--- a/GUI/coregui/Models/IconProvider.h
+++ b/GUI/coregui/Models/IconProvider.h
@@ -20,7 +20,7 @@
 #include <QIcon>
 #include <QString>
 
-//! Class which returns icons for ParameterizedItems to use in SessionModel
+//! Class which returns icons for SessionItems to use in SessionModel
 class BA_CORE_API_ IconProvider
 {
 public:
diff --git a/GUI/coregui/Models/InstrumentItem.cpp b/GUI/coregui/Models/InstrumentItem.cpp
index 677952052002778854775fa0ffef9642da3ef46f..4c7ac49d9f63b7524c5ed60d4972c386dcaea61c 100644
--- a/GUI/coregui/Models/InstrumentItem.cpp
+++ b/GUI/coregui/Models/InstrumentItem.cpp
@@ -18,17 +18,17 @@
 #include "BeamItem.h"
 
 InstrumentItem::InstrumentItem()
-    : ParameterizedItem(Constants::InstrumentType)
+    : SessionItem(Constants::InstrumentType)
 {
-    setItemName(Constants::InstrumentType);
-    const QString T_DATA = "Data tag";
-    registerTag(T_DATA, 0, -1, QStringList() << Constants::BeamType << Constants::DetectorType);
-    setDefaultTag(T_DATA);
+    setItemName(Constants::InstrumentType);
+    const QString T_DATA = "Data tag";
+    registerTag(T_DATA, 0, -1, QStringList() << Constants::BeamType << Constants::DetectorType);
+    setDefaultTag(T_DATA);
 }
 
 BeamItem *InstrumentItem::getBeamItem()
 {
-    for(ParameterizedItem *item : childItems()) {
+    for(SessionItem *item : childItems()) {
         if(item->modelType() == Constants::BeamType) {
             return dynamic_cast<BeamItem *>(item);
         }
@@ -38,7 +38,7 @@ BeamItem *InstrumentItem::getBeamItem()
 
 DetectorItem *InstrumentItem::getDetectorItem()
 {
-    for(ParameterizedItem *item : childItems()) {
+    for(SessionItem *item : childItems()) {
         if(item->modelType() == Constants::DetectorType) {
             return dynamic_cast<DetectorItem *>(item);
         }
diff --git a/GUI/coregui/Models/InstrumentItem.h b/GUI/coregui/Models/InstrumentItem.h
index 43268eb2a92857c890644697bca43abe56c7e3a4..3748abfb2553772194372e25da9e0eabff3eee49 100644
--- a/GUI/coregui/Models/InstrumentItem.h
+++ b/GUI/coregui/Models/InstrumentItem.h
@@ -16,12 +16,12 @@
 #ifndef INSTRUMENT_ITEM_H
 #define INSTRUMENT_ITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
 class BeamItem;
 class DetectorItem;
 
-class BA_CORE_API_ InstrumentItem : public ParameterizedItem
+class BA_CORE_API_ InstrumentItem : public SessionItem
 {
     Q_OBJECT
 
diff --git a/GUI/coregui/Models/InstrumentModel.cpp b/GUI/coregui/Models/InstrumentModel.cpp
index 59e276623e732a56d1a9b9eef94804805baaf7f1..e63a6b7c04492526fa1c63641bbcb80c93f169c4 100644
--- a/GUI/coregui/Models/InstrumentModel.cpp
+++ b/GUI/coregui/Models/InstrumentModel.cpp
@@ -23,7 +23,7 @@ InstrumentModel::InstrumentModel(QObject *parent)
 }
 
 
-InstrumentModel *InstrumentModel::createCopy(ParameterizedItem *parent)
+InstrumentModel *InstrumentModel::createCopy(SessionItem *parent)
 {
     InstrumentModel *result = new InstrumentModel();
     result->initFrom(this, parent);
@@ -32,7 +32,7 @@ InstrumentModel *InstrumentModel::createCopy(ParameterizedItem *parent)
 
 
 //! returns list of Instruments defined in the model
-QMap<QString, ParameterizedItem *> InstrumentModel::getInstrumentMap() const
+QMap<QString, SessionItem *> InstrumentModel::getInstrumentMap() const
 {
     return getTopItemMap(Constants::InstrumentType);
 }
diff --git a/GUI/coregui/Models/InstrumentModel.h b/GUI/coregui/Models/InstrumentModel.h
index 83505d691ea646f8f070a5f8cf3106e4783ae8b9..7dd32057bd8d39d8f9572ee28c0fe35bd129c83e 100644
--- a/GUI/coregui/Models/InstrumentModel.h
+++ b/GUI/coregui/Models/InstrumentModel.h
@@ -29,9 +29,9 @@ public:
     explicit InstrumentModel(QObject *parent = 0);
     virtual ~InstrumentModel(){}
 
-    virtual InstrumentModel *createCopy(ParameterizedItem *parent=0);
+    virtual InstrumentModel *createCopy(SessionItem *parent=0);
 
-    QMap<QString, ParameterizedItem *> getInstrumentMap() const;
+    QMap<QString, SessionItem *> getInstrumentMap() const;
 
     InstrumentItem *getInstrumentItem(const QString &instrument_name = QString());
 };
diff --git a/GUI/coregui/Models/IntensityDataItem.cpp b/GUI/coregui/Models/IntensityDataItem.cpp
index 37c6b40b793ed6a573465c1dd47776e41eb8d47b..d34ed5778e87e5bc1e4373267ab413e5be5fd3ab 100644
--- a/GUI/coregui/Models/IntensityDataItem.cpp
+++ b/GUI/coregui/Models/IntensityDataItem.cpp
@@ -34,19 +34,19 @@ const QString IntensityDataItem::P_PROPERTY_PANEL_FLAG = "Property Panel Flag";
 const QString IntensityDataItem::P_XAXIS = "x-axis";
 const QString IntensityDataItem::P_YAXIS = "y-axis";
 const QString IntensityDataItem::P_ZAXIS = "color-axis";
-const QString IntensityDataItem::T_MASKS = "Mask tag";
+const QString IntensityDataItem::T_MASKS = "Mask tag";
 
 
 IntensityDataItem::IntensityDataItem()
-    : ParameterizedItem(Constants::IntensityDataType)
+    : SessionItem(Constants::IntensityDataType)
 {
 //    registerProperty(OBSOLETE_P_NAME, Constants::IntensityDataType).setHidden();
     setItemName(Constants::IntensityDataType);
 
     ComboProperty units;
-    registerProperty(P_AXES_UNITS, units.getVariant())->setVisible(false);
+    registerProperty(P_AXES_UNITS, units.getVariant())->setVisible(false);
 
-    registerProperty(P_PROJECTIONS_FLAG, false)->setVisible(false);
+    registerProperty(P_PROJECTIONS_FLAG, false)->setVisible(false);
     registerProperty(P_IS_INTERPOLATED, true);
 
     ComboProperty gradient;
@@ -60,19 +60,19 @@ IntensityDataItem::IntensityDataItem()
     gradient.setValue(Constants::GRADIENT_JET);
     registerProperty(P_GRADIENT, gradient.getVariant());
 
-    registerProperty(P_PROPERTY_PANEL_FLAG, false)->setVisible(false);
+    registerProperty(P_PROPERTY_PANEL_FLAG, false)->setVisible(false);
 
     registerGroupProperty(P_XAXIS, Constants::BasicAxisType);
-    getGroupItem(P_XAXIS)->getItem(BasicAxisItem::P_NBINS)->setVisible(false);
+    getGroupItem(P_XAXIS)->getItem(BasicAxisItem::P_NBINS)->setVisible(false);
 
     registerGroupProperty(P_YAXIS, Constants::BasicAxisType);
-    getGroupItem(P_YAXIS)->getItem(BasicAxisItem::P_NBINS)->setVisible(false);
+    getGroupItem(P_YAXIS)->getItem(BasicAxisItem::P_NBINS)->setVisible(false);
 
     registerGroupProperty(P_ZAXIS, Constants::AmplitudeAxisType);
-    getGroupItem(P_ZAXIS)->getItem(BasicAxisItem::P_NBINS)->setVisible(false);
+    getGroupItem(P_ZAXIS)->getItem(BasicAxisItem::P_NBINS)->setVisible(false);
 
-    registerTag(T_MASKS, 0, -1, QStringList() << Constants::MaskContainerType);
-    setDefaultTag(T_MASKS);
+    registerTag(T_MASKS, 0, -1, QStringList() << Constants::MaskContainerType);
+    setDefaultTag(T_MASKS);
 }
 
 IntensityDataItem::~IntensityDataItem()
diff --git a/GUI/coregui/Models/IntensityDataItem.h b/GUI/coregui/Models/IntensityDataItem.h
index f6ddf9f2af9401bfae9317d5f6de1b74cca31620..9ccd23226ee24027d5eb71c0d1df93936af3f591 100644
--- a/GUI/coregui/Models/IntensityDataItem.h
+++ b/GUI/coregui/Models/IntensityDataItem.h
@@ -16,7 +16,7 @@
 #ifndef INTENSITYDATAITEM_H
 #define INTENSITYDATAITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "OutputData.h"
 #include "IDetector2D.h"
 #include <QMap>
@@ -24,7 +24,7 @@
 class GISASSimulation;
 
 
-class BA_CORE_API_ IntensityDataItem : public ParameterizedItem
+class BA_CORE_API_ IntensityDataItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -38,7 +38,7 @@ public:
     static const QString P_XAXIS;
     static const QString P_YAXIS;
     static const QString P_ZAXIS;
-    static const QString T_MASKS;
+    static const QString T_MASKS;
 
     explicit IntensityDataItem();
     virtual ~IntensityDataItem();
diff --git a/GUI/coregui/Models/InterferenceFunctionItems.cpp b/GUI/coregui/Models/InterferenceFunctionItems.cpp
index 435fdaa0e5d14978cbeef0875a2dbdd0208f6f64..d0f8926e3f84ac8bf1edd1f7daffce84ef4a9b07 100644
--- a/GUI/coregui/Models/InterferenceFunctionItems.cpp
+++ b/GUI/coregui/Models/InterferenceFunctionItems.cpp
@@ -55,7 +55,7 @@ const QString InterferenceFunction2DLatticeItem::P_DECAY_FUNCTION = "Decay Funct
 
 InterferenceFunctionRadialParaCrystalItem::InterferenceFunctionRadialParaCrystalItem(
         )
-    : ParameterizedGraphicsItem(Constants::InterferenceFunctionRadialParaCrystalType)
+    : SessionGraphicsItem(Constants::InterferenceFunctionRadialParaCrystalType)
 {
     registerProperty(P_PEAK_DISTANCE, 20.0*Units::nanometer);
     registerProperty(P_DAMPING_LENGTH, 1000.0*Units::micrometer);
@@ -66,7 +66,7 @@ InterferenceFunctionRadialParaCrystalItem::InterferenceFunctionRadialParaCrystal
 
 InterferenceFunction2DParaCrystalItem::InterferenceFunction2DParaCrystalItem(
         )
-    : ParameterizedGraphicsItem(Constants::InterferenceFunction2DParaCrystalType)
+    : SessionGraphicsItem(Constants::InterferenceFunction2DParaCrystalType)
 {
     registerGroupProperty(InterferenceFunction2DLatticeItem::P_LATTICE_TYPE,
                           Constants::LatticeGroup);
@@ -74,8 +74,8 @@ InterferenceFunction2DParaCrystalItem::InterferenceFunction2DParaCrystalItem(
     registerProperty(P_DOMAIN_SIZE1, 20.0*Units::micrometer);
     registerProperty(P_DOMAIN_SIZE2, 20.0*Units::micrometer);
     registerProperty(P_XI_INTEGRATION, true);
-    registerProperty(P_ROTATION_ANGLE, 0.0);
-    getItem(P_ROTATION_ANGLE)->setEnabled(false);
+    registerProperty(P_ROTATION_ANGLE, 0.0);
+    getItem(P_ROTATION_ANGLE)->setEnabled(false);
     registerGroupProperty(P_PDF1, Constants::FTDistribution2DGroup);
     registerGroupProperty(P_PDF2, Constants::FTDistribution2DGroup);
 
@@ -83,16 +83,16 @@ InterferenceFunction2DParaCrystalItem::InterferenceFunction2DParaCrystalItem(
         [this](const QString &name) {
             if(name == P_XI_INTEGRATION && isRegisteredProperty(P_ROTATION_ANGLE)) {
                 if(getRegisteredProperty(P_XI_INTEGRATION).toBool()) {
-                    getItem(P_ROTATION_ANGLE)->setEnabled(false);
+                    getItem(P_ROTATION_ANGLE)->setEnabled(false);
                 } else {
-                    getItem(P_ROTATION_ANGLE)->setEnabled(true);
+                    getItem(P_ROTATION_ANGLE)->setEnabled(true);
                 }
             }
     });
 }
 
 InterferenceFunction1DLatticeItem::InterferenceFunction1DLatticeItem()
-    : ParameterizedGraphicsItem(Constants::InterferenceFunction1DLatticeType)
+    : SessionGraphicsItem(Constants::InterferenceFunction1DLatticeType)
 {
     registerProperty(P_LENGTH, 20.0*Units::nanometer);
     registerProperty(P_ROTATION_ANGLE, 0.0);
@@ -101,7 +101,7 @@ InterferenceFunction1DLatticeItem::InterferenceFunction1DLatticeItem()
 
 InterferenceFunction2DLatticeItem::InterferenceFunction2DLatticeItem(
         )
-    : ParameterizedGraphicsItem(Constants::InterferenceFunction2DLatticeType)
+    : SessionGraphicsItem(Constants::InterferenceFunction2DLatticeType)
 {
     registerGroupProperty(P_LATTICE_TYPE, Constants::LatticeGroup);
     registerProperty(P_ROTATION_ANGLE, 0.0);
diff --git a/GUI/coregui/Models/InterferenceFunctionItems.h b/GUI/coregui/Models/InterferenceFunctionItems.h
index 224da2ab209b59c7825d921f2f23cf5213d915ba..8ea26e43556a1b88629a82ccf06d9c6af87ba55b 100644
--- a/GUI/coregui/Models/InterferenceFunctionItems.h
+++ b/GUI/coregui/Models/InterferenceFunctionItems.h
@@ -16,10 +16,10 @@
 #ifndef PARACRYSTALITEMS_H
 #define PARACRYSTALITEMS_H
 
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
 
-class BA_CORE_API_ InterferenceFunctionRadialParaCrystalItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ InterferenceFunctionRadialParaCrystalItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
@@ -33,7 +33,7 @@ public:
 };
 
 
-class BA_CORE_API_ InterferenceFunction2DParaCrystalItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ InterferenceFunction2DParaCrystalItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
@@ -49,7 +49,7 @@ public:
 };
 
 
-class BA_CORE_API_ InterferenceFunction1DLatticeItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ InterferenceFunction1DLatticeItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
@@ -61,7 +61,7 @@ public:
 };
 
 
-class BA_CORE_API_ InterferenceFunction2DLatticeItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ InterferenceFunction2DLatticeItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/ItemFactory.cpp b/GUI/coregui/Models/ItemFactory.cpp
index 7320c854d3be2e16d34c08d2a07a790eef602d2b..a8c442d2e7d5f28f0e3b54e93026dc8e2d10f67d 100644
--- a/GUI/coregui/Models/ItemFactory.cpp
+++ b/GUI/coregui/Models/ItemFactory.cpp
@@ -52,7 +52,7 @@
 #include <QDebug>
 
 namespace {
-template<typename T> ParameterizedItem *createInstance() { return new T; }
+template<typename T> SessionItem *createInstance() { return new T; }
 
 ItemFactory::ItemMap_t initializeItemMap() {
     ItemFactory::ItemMap_t result;
@@ -197,15 +197,15 @@ QStringList ItemFactory::m_valid_top_item_names = QStringList()
 
 ItemFactory::ItemMap_t ItemFactory::m_item_map = initializeItemMap();
 
-ParameterizedItem *ItemFactory::createItem(const QString &model_name,
-                                           ParameterizedItem *parent)
+SessionItem *ItemFactory::createItem(const QString &model_name,
+                                           SessionItem *parent)
 {
     qDebug() << "ItemFactory::createItem" << model_name;
 
     if(!m_item_map.contains(model_name))
         throw GUIHelpers::Error("ItemFactory::createItem() -> Error: Model name does not exist: "+model_name);
 
-    ParameterizedItem *result = m_item_map[model_name]();
+    SessionItem *result = m_item_map[model_name]();
     if(parent) {
         parent->insertChildItem(-1, result);
     }
@@ -213,9 +213,9 @@ ParameterizedItem *ItemFactory::createItem(const QString &model_name,
     return result;
 }
 
-ParameterizedItem *ItemFactory::createEmptyItem()
+SessionItem *ItemFactory::createEmptyItem()
 {
-    ParameterizedItem *result = new ParameterizedItem("ROOT_ITEM");
+    SessionItem *result = new SessionItem("ROOT_ITEM");
     //result->setItemName("ROOT_ITEM");
     return result;
 }
diff --git a/GUI/coregui/Models/ItemFactory.h b/GUI/coregui/Models/ItemFactory.h
index 594e356142c205eab46d101b94109a3d0036b53c..d851d696be18dfc47e56ff692bbbbc060d5e7466 100644
--- a/GUI/coregui/Models/ItemFactory.h
+++ b/GUI/coregui/Models/ItemFactory.h
@@ -18,20 +18,20 @@
 
 #include <QMap>
 #include <QStringList>
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
 class BA_CORE_API_ ItemFactory
 {
 public:
-    typedef QMap<QString, ParameterizedItem *(*)()> ItemMap_t;
+    typedef QMap<QString, SessionItem *(*)()> ItemMap_t;
 
 
-    //! create ParameterizedItem of specific type and parent
-    static ParameterizedItem *createItem(const QString &model_name,
-                                         ParameterizedItem *parent=0);
+    //! create SessionItem of specific type and parent
+    static SessionItem *createItem(const QString &model_name,
+                                         SessionItem *parent=0);
 
-    //! create empty ParameterizedItem that serves as a root item
-    static ParameterizedItem *createEmptyItem();
+    //! create empty SessionItem that serves as a root item
+    static SessionItem *createEmptyItem();
 
     //! retrieve list of all possible item names
     static QList<QString> getValidTopItemNames();
diff --git a/GUI/coregui/Models/ItemLink.cpp b/GUI/coregui/Models/ItemLink.cpp
index 650ce2f9441c67485e161e4876baacad200bc4e0..7af310df8523967d0bd68279e1c564c1855735f6 100644
--- a/GUI/coregui/Models/ItemLink.cpp
+++ b/GUI/coregui/Models/ItemLink.cpp
@@ -17,7 +17,7 @@
 #include "AngleProperty.h"
 #include "ScientificDoubleProperty.h"
 
-ItemLink::ItemLink(const QString property_name, ParameterizedItem *item)
+ItemLink::ItemLink(const QString property_name, SessionItem *item)
     : m_property_name(property_name)
     , m_item(item)
     , m_value(0)
@@ -25,7 +25,7 @@ ItemLink::ItemLink(const QString property_name, ParameterizedItem *item)
 
 }
 
-void ItemLink::setItem(QString property_name, ParameterizedItem *item)
+void ItemLink::setItem(QString property_name, SessionItem *item)
 {
     m_property_name = property_name;
     m_item = item;
diff --git a/GUI/coregui/Models/ItemLink.h b/GUI/coregui/Models/ItemLink.h
index fe1ad6799ca5978e608e83dc7ce7e22803839989..88c27353a1b03f1d061870e681ec85ff9376aea8 100644
--- a/GUI/coregui/Models/ItemLink.h
+++ b/GUI/coregui/Models/ItemLink.h
@@ -16,7 +16,7 @@
 #ifndef ITEMLINK_H
 #define ITEMLINK_H
 
-#include <ParameterizedItem.h>
+#include "SessionItem.h"
 #include <QMetaType>
 #include <QVariant>
 
@@ -24,13 +24,13 @@ class BA_CORE_API_ ItemLink
 {
 
 public:
-    explicit ItemLink(const QString property_name = QString(), ParameterizedItem *item = 0);
+    explicit ItemLink(const QString property_name = QString(), SessionItem *item = 0);
     virtual ~ItemLink(){}
 
     QString getPropertyName() const { return m_property_name; }
 
-    ParameterizedItem *getItem() const { return m_item; }
-    void setItem(QString property_name, ParameterizedItem *item);
+    SessionItem *getItem() const { return m_item; }
+    void setItem(QString property_name, SessionItem *item);
 
     void setValue(double value);
 
@@ -40,7 +40,7 @@ private:
     double getValue() const;
     QVariant getVariant();
     QString m_property_name;
-    ParameterizedItem *m_item;
+    SessionItem *m_item;
     double m_value;
 };
 
diff --git a/GUI/coregui/Models/JobItem.cpp b/GUI/coregui/Models/JobItem.cpp
index cff7589082e9b0909bec13fff48e741eb95e2fee..1148febad23d2038056f37dfef1c8a73bed0c782 100644
--- a/GUI/coregui/Models/JobItem.cpp
+++ b/GUI/coregui/Models/JobItem.cpp
@@ -58,38 +58,38 @@ const QString JobItem::P_RUN_POLICY = "Run Policy";
 
 
 JobItem::JobItem()
-    : ParameterizedItem(Constants::JobItemType)
+    : SessionItem(Constants::JobItemType)
 {
 //    registerProperty(OBSOLETE_P_NAME, Constants::JobItemType);
     setItemName(Constants::JobItemType);
-    registerProperty(P_IDENTIFIER, QString())->setVisible(false);
-    registerProperty(P_SAMPLE_NAME, QString())->setEditable(false);
-    registerProperty(P_INSTRUMENT_NAME, QString())->setEditable(false);
+    registerProperty(P_IDENTIFIER, QString())->setVisible(false);
+    registerProperty(P_SAMPLE_NAME, QString())->setEditable(false);
+    registerProperty(P_INSTRUMENT_NAME, QString())->setEditable(false);
 
     ComboProperty status;
     status << Constants::STATUS_IDLE << Constants::STATUS_RUNNING << Constants::STATUS_COMPLETED
            << Constants::STATUS_CANCELED << Constants::STATUS_FAILED;
-    registerProperty(P_STATUS, status.getVariant())->setEditable(false);
+    registerProperty(P_STATUS, status.getVariant())->setEditable(false);
 
-    registerProperty(P_BEGIN_TIME, QString())->setEditable(false);
-    registerProperty(P_END_TIME, QString())->setEditable(false);
-    registerProperty(P_COMMENTS, QString())->setVisible(false);
+    registerProperty(P_BEGIN_TIME, QString())->setEditable(false);
+    registerProperty(P_END_TIME, QString())->setEditable(false);
+    registerProperty(P_COMMENTS, QString())->setVisible(false);
 
-    registerProperty(P_PROGRESS, 0)->setVisible(false);
-    registerProperty(P_NTHREADS, -1)->setVisible(false);
+    registerProperty(P_PROGRESS, 0)->setVisible(false);
+    registerProperty(P_NTHREADS, -1)->setVisible(false);
 
     ComboProperty policy;
     policy << Constants::JOB_RUN_IMMEDIATELY
            << Constants::JOB_RUN_IN_BACKGROUND
            << Constants::JOB_RUN_SUBMIT_ONLY;
-    registerProperty(P_RUN_POLICY, policy.getVariant())->setVisible(false);
+    registerProperty(P_RUN_POLICY, policy.getVariant())->setVisible(false);
 
-    const QString T_DATA = "Data Tag";
-    registerTag("Data Tag", 0, -1, QStringList() << Constants::IntensityDataType
-                << Constants::MultiLayerType << Constants::InstrumentType);
-    setDefaultTag(T_DATA);
+    const QString T_DATA = "Data Tag";
+    registerTag("Data Tag", 0, -1, QStringList() << Constants::IntensityDataType
+                << Constants::MultiLayerType << Constants::InstrumentType);
+    setDefaultTag(T_DATA);
     mapper()->setOnChildPropertyChange(
-                [this](ParameterizedItem* item, const QString &name)
+                [this](SessionItem* item, const QString &name)
     {
         if (item->modelType() == Constants::IntensityDataType
             && name == IntensityDataItem::P_AXES_UNITS) {
@@ -117,7 +117,7 @@ void JobItem::setIdentifier(const QString &identifier)
 
 IntensityDataItem *JobItem::getIntensityDataItem()
 {
-    foreach(ParameterizedItem *item, childItems()) {
+    foreach(SessionItem *item, childItems()) {
         IntensityDataItem *data = dynamic_cast<IntensityDataItem *>(item);
         if(data) return data;
     }
@@ -237,7 +237,7 @@ bool JobItem::runInBackground() const
 //! multilayer will be used
 MultiLayerItem *JobItem::getMultiLayerItem(bool from_backup)
 {
-    foreach(ParameterizedItem *item, childItems()) {
+    foreach(SessionItem *item, childItems()) {
         if(MultiLayerItem *multilayer = dynamic_cast<MultiLayerItem *>(item)) {
             if(from_backup && multilayer->itemName().endsWith(Constants::JOB_BACKUP)) {
                 return multilayer;
@@ -254,7 +254,7 @@ MultiLayerItem *JobItem::getMultiLayerItem(bool from_backup)
 //! the instrument will be used
 InstrumentItem *JobItem::getInstrumentItem(bool from_backup)
 {
-    foreach(ParameterizedItem *item, childItems()) {
+    foreach(SessionItem *item, childItems()) {
         if(InstrumentItem *instrument = dynamic_cast<InstrumentItem *>(item)) {
             if(from_backup && instrument->itemName().endsWith(Constants::JOB_BACKUP)) {
                 return instrument;
@@ -285,7 +285,7 @@ void JobItem::setResults(const GISASSimulation *simulation)
 
 //void JobItem::onPropertyChange(const QString &name)
 //{
-//    if(name == ParameterizedItem::P_NAME) {
+//    if(name == SessionItem::P_NAME) {
 //        if(IntensityDataItem *intensityDataItem = getIntensityDataItem()) {
 //            intensityDataItem->setNameFromProposed(itemName());
 //        }
diff --git a/GUI/coregui/Models/JobItem.h b/GUI/coregui/Models/JobItem.h
index 46a17e10e27cfb8abb53b1dce59ee6729371849c..9522f40f53fd2b7e9649045e97b6d20d6f32cc4d 100644
--- a/GUI/coregui/Models/JobItem.h
+++ b/GUI/coregui/Models/JobItem.h
@@ -16,7 +16,7 @@
 #ifndef JOBITEM_H
 #define JOBITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 class IntensityDataItem;
 class SampleModel;
 class InstrumentModel;
@@ -24,7 +24,7 @@ class GISASSimulation;
 class MultiLayerItem;
 class InstrumentItem;
 
-class BA_CORE_API_ JobItem : public ParameterizedItem
+class BA_CORE_API_ JobItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/JobModel.cpp b/GUI/coregui/Models/JobModel.cpp
index 0ba5b6d428b9c9850c00db344a9acc3d99a9083f..0cbd27d8cbdd6ca0fc801751837725d03d30d4dd 100644
--- a/GUI/coregui/Models/JobModel.cpp
+++ b/GUI/coregui/Models/JobModel.cpp
@@ -73,7 +73,7 @@ JobItem *JobModel::addJob(const MultiLayerItem *multiLayerItem, const Instrument
                           const QString &run_policy, int numberOfThreads)
 {
     JobItem *jobItem = dynamic_cast<JobItem *>(insertNewItem(Constants::JobItemType));
-    jobItem->setItemName(generateJobName());
+    jobItem->setItemName(generateJobName());
     jobItem->setIdentifier(generateJobIdentifier());
     jobItem->setNumberOfThreads(numberOfThreads);
     jobItem->setRunPolicy(run_policy);
@@ -102,10 +102,10 @@ void JobModel::setSampleForJobItem(JobItem *jobItem, const MultiLayerItem *multi
         removeRows(indexOfItem(old_sample).row(), 1, indexOfItem(old_sample->parent()));
     }
 
-    ParameterizedItem *new_item = copyParameterizedItem(multiLayerItem, jobItem);
+    SessionItem *new_item = copyParameterizedItem(multiLayerItem, jobItem);
 
     // our original multiLayerItem might come from backup itself, lets clean up its specific name
-    QString name = new_item->itemName();
+    QString name = new_item->itemName();
     name.remove(Constants::JOB_BACKUP);
     jobItem->setRegisteredProperty(JobItem::P_SAMPLE_NAME, name);
 
@@ -114,7 +114,7 @@ void JobModel::setSampleForJobItem(JobItem *jobItem, const MultiLayerItem *multi
         name.append(Constants::JOB_BACKUP);
     }
 
-    new_item->setItemName(name);
+    new_item->setItemName(name);
 }
 
 //! Adds an instrument to children of given JobItem.
@@ -130,10 +130,10 @@ void JobModel::setInstrumentForJobItem(JobItem *jobItem, const InstrumentItem *i
         removeRows(indexOfItem(old).row(), 1, indexOfItem(old->parent()));
     }
 
-    ParameterizedItem *new_item = copyParameterizedItem(instrumentItem, jobItem);
+    SessionItem *new_item = copyParameterizedItem(instrumentItem, jobItem);
 
     // our original instrumentItem might itself come from backup, lets clean up its specific name
-    QString name = new_item->itemName();
+    QString name = new_item->itemName();
     name.remove(Constants::JOB_BACKUP);
     jobItem->setRegisteredProperty(JobItem::P_INSTRUMENT_NAME, name);
 
@@ -142,7 +142,7 @@ void JobModel::setInstrumentForJobItem(JobItem *jobItem, const InstrumentItem *i
         name.append(Constants::JOB_BACKUP);
     }
 
-    new_item->setItemName(name);
+    new_item->setItemName(name);
 }
 
 //! Backup instrument and sample model for given JobItem. If backup already exists, do nothing.
@@ -234,9 +234,9 @@ QString JobModel::generateJobName()
     for(int i_row = 0; i_row < rowCount(parentIndex); ++i_row) {
          QModelIndex itemIndex = index( i_row, 0, parentIndex );
 
-         if (ParameterizedItem *item = itemForIndex(itemIndex)){
+         if (SessionItem *item = itemForIndex(itemIndex)){
              if(item->modelType() == Constants::JobItemType) {
-                 QString jobName = item->itemName();
+                 QString jobName = item->itemName();
                  if(jobName.startsWith("job")) {
                      int job_index = jobName.remove(0,3).toInt();
                      if(job_index > glob_index) glob_index = job_index;
diff --git a/GUI/coregui/Models/LatticeTypeItems.cpp b/GUI/coregui/Models/LatticeTypeItems.cpp
index 8e9cf329191ffa16605a63df6547baca60f15481..72303b9e7a4b0b19d1651aa207eed46291f4c94e 100644
--- a/GUI/coregui/Models/LatticeTypeItems.cpp
+++ b/GUI/coregui/Models/LatticeTypeItems.cpp
@@ -24,7 +24,7 @@ const QString HexagonalLatticeTypeItem::P_LATTICE_LENGTH = "Lattice_length";
 
 
 BasicLatticeTypeItem::BasicLatticeTypeItem()
-    : ParameterizedItem(QString("BasicLatticeType"))
+    : SessionItem(QString("BasicLatticeType"))
 {
     registerProperty(P_LATTICE_LENGTH1, 20.0);
     registerProperty(P_LATTICE_LENGTH2, 20.0);
@@ -32,13 +32,13 @@ BasicLatticeTypeItem::BasicLatticeTypeItem()
 }
 
 SquareLatticeTypeItem::SquareLatticeTypeItem()
-    : ParameterizedItem(QString("SquareLatticeType"))
+    : SessionItem(QString("SquareLatticeType"))
 {
     registerProperty(P_LATTICE_LENGTH, 20.0);
 }
 
 HexagonalLatticeTypeItem::HexagonalLatticeTypeItem()
-    : ParameterizedItem(QString("HexagonalLatticeType"))
+    : SessionItem(QString("HexagonalLatticeType"))
 {
     registerProperty(P_LATTICE_LENGTH, 20.0);
 }
diff --git a/GUI/coregui/Models/LatticeTypeItems.h b/GUI/coregui/Models/LatticeTypeItems.h
index c427e471379e44f14d8260b34455597f089479b5..b3a8ac10dfc6e0f25b9c53c6d6acdd0d8e4f25a3 100644
--- a/GUI/coregui/Models/LatticeTypeItems.h
+++ b/GUI/coregui/Models/LatticeTypeItems.h
@@ -16,9 +16,9 @@
 #ifndef LATTICETYPEITEMS_H
 #define LATTICETYPEITEMS_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-class BA_CORE_API_ BasicLatticeTypeItem : public ParameterizedItem
+class BA_CORE_API_ BasicLatticeTypeItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -29,7 +29,7 @@ public:
     virtual ~BasicLatticeTypeItem(){}
 };
 
-class BA_CORE_API_ SquareLatticeTypeItem : public ParameterizedItem
+class BA_CORE_API_ SquareLatticeTypeItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -38,7 +38,7 @@ public:
     virtual ~SquareLatticeTypeItem(){}
 };
 
-class BA_CORE_API_ HexagonalLatticeTypeItem : public ParameterizedItem
+class BA_CORE_API_ HexagonalLatticeTypeItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/LayerItem.cpp b/GUI/coregui/Models/LayerItem.cpp
index 2dec57f2d8d4b8f65b03b1ebc7ea1a918dddfbf4..5b0b50801698047ecd5917f142552bab7521f07d 100644
--- a/GUI/coregui/Models/LayerItem.cpp
+++ b/GUI/coregui/Models/LayerItem.cpp
@@ -20,16 +20,16 @@
 const QString LayerItem::P_THICKNESS = "Thickness";
 const QString LayerItem::P_ROUGHNESS = "Top roughness";
 const QString LayerItem::P_MATERIAL = "Material";
-const QString LayerItem::T_LAYOUTS = "Layout tag";
+const QString LayerItem::T_LAYOUTS = "Layout tag";
 
 LayerItem::LayerItem()
-    : ParameterizedGraphicsItem(Constants::LayerType)
+    : SessionGraphicsItem(Constants::LayerType)
 {
     registerProperty(P_THICKNESS, 0.0);
     registerProperty(P_MATERIAL, MaterialUtils::getDefaultMaterialProperty().getVariant());
 
     registerGroupProperty(P_ROUGHNESS, Constants::LayerRoughnessGroup);
     setGroupProperty(P_ROUGHNESS, Constants::LayerZeroRoughnessType);
-    registerTag(T_LAYOUTS, 0, -1, QStringList() << Constants::ParticleLayoutType);
-    setDefaultTag(T_LAYOUTS);
+    registerTag(T_LAYOUTS, 0, -1, QStringList() << Constants::ParticleLayoutType);
+    setDefaultTag(T_LAYOUTS);
 }
diff --git a/GUI/coregui/Models/LayerItem.h b/GUI/coregui/Models/LayerItem.h
index 772b22e0633b0b228ab5bcca093dbfeaedd299fe..b5bd5a5f0bfc0aa82d63e62711b7f4fe31f0436d 100644
--- a/GUI/coregui/Models/LayerItem.h
+++ b/GUI/coregui/Models/LayerItem.h
@@ -16,16 +16,16 @@
 #ifndef LAYERITEM_H
 #define LAYERITEM_H
 
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
-class BA_CORE_API_ LayerItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ LayerItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
     static const QString P_THICKNESS;
     static const QString P_ROUGHNESS;
     static const QString P_MATERIAL;
-    static const QString T_LAYOUTS;
+    static const QString T_LAYOUTS;
     explicit LayerItem();
     virtual ~LayerItem(){}
 };
diff --git a/GUI/coregui/Models/LayerRoughnessItems.cpp b/GUI/coregui/Models/LayerRoughnessItems.cpp
index abc1e1e80fbd800ff547bc1d4c12068ff2bf044e..f874586edd0f9ace5997db3883e27bd0361f858a 100644
--- a/GUI/coregui/Models/LayerRoughnessItems.cpp
+++ b/GUI/coregui/Models/LayerRoughnessItems.cpp
@@ -18,7 +18,7 @@
 
 
 LayerZeroRoughnessItem::LayerZeroRoughnessItem()
-    : ParameterizedItem(Constants::LayerZeroRoughnessType)
+    : SessionItem(Constants::LayerZeroRoughnessType)
 {
 }
 
@@ -27,10 +27,10 @@ const QString LayerBasicRoughnessItem::P_HURST = "Hurst parameter";
 const QString LayerBasicRoughnessItem::P_LATERAL_CORR_LENGTH = "Lateral corr length";
 
 LayerBasicRoughnessItem::LayerBasicRoughnessItem()
-    : ParameterizedItem(Constants::LayerBasicRoughnessType)
+    : SessionItem(Constants::LayerBasicRoughnessType)
 {
     registerProperty(P_SIGMA, 1.0);
-    registerProperty(P_HURST, 0.3)->setLimits(AttLimits::limited(0.0, 1.0));
-    getItem(P_HURST)->setDecimals(3);
+    registerProperty(P_HURST, 0.3)->setLimits(AttLimits::limited(0.0, 1.0));
+    getItem(P_HURST)->setDecimals(3);
     registerProperty(P_LATERAL_CORR_LENGTH, 5.0);
 }
diff --git a/GUI/coregui/Models/LayerRoughnessItems.h b/GUI/coregui/Models/LayerRoughnessItems.h
index 697f71b3e5a453b7aea2bc97745bb30f491a602c..26588b3491f0bddca564dc3f00c7db5aa0f1739f 100644
--- a/GUI/coregui/Models/LayerRoughnessItems.h
+++ b/GUI/coregui/Models/LayerRoughnessItems.h
@@ -17,9 +17,9 @@
 #define LAYERROUGHNESSITEMS_H
 
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-class BA_CORE_API_ LayerZeroRoughnessItem : public ParameterizedItem
+class BA_CORE_API_ LayerZeroRoughnessItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -28,7 +28,7 @@ public:
 };
 
 
-class BA_CORE_API_ LayerBasicRoughnessItem : public ParameterizedItem
+class BA_CORE_API_ LayerBasicRoughnessItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/MagneticFieldItem.cpp b/GUI/coregui/Models/MagneticFieldItem.cpp
index 7de0548fe3a37abfd932aa09191d0bffd8a5d62a..d252e605c4c2354cf848fba7086588fedfa2588d 100644
--- a/GUI/coregui/Models/MagneticFieldItem.cpp
+++ b/GUI/coregui/Models/MagneticFieldItem.cpp
@@ -20,14 +20,14 @@ const QString MagneticFieldItem::P_BY = "By";
 const QString MagneticFieldItem::P_BZ = "Bz";
 
 MagneticFieldItem::MagneticFieldItem()
-    : ParameterizedItem(Constants::MagneticFieldType)
+    : SessionItem(Constants::MagneticFieldType)
 {
     registerProperty(P_BX, 0.0);
     registerProperty(P_BY, 0.0);
     registerProperty(P_BZ, 0.0);
 }
 
-QString MagneticFieldItem::itemLabel() const
+QString MagneticFieldItem::itemLabel() const
 {
     return QString("(%1, %2, %3)").arg(getRegisteredProperty(P_BX).toDouble())
                                   .arg(getRegisteredProperty(P_BY).toDouble())
diff --git a/GUI/coregui/Models/MagneticFieldItem.h b/GUI/coregui/Models/MagneticFieldItem.h
index 0df2f20b250bc08bd7f8c6831e65882861ead4ac..69d27977ded1fbeb67faaa7b7742fc4abcb9ea66 100644
--- a/GUI/coregui/Models/MagneticFieldItem.h
+++ b/GUI/coregui/Models/MagneticFieldItem.h
@@ -17,9 +17,9 @@
 #define MAGNETICFIELDITEM_H
 
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-class BA_CORE_API_ MagneticFieldItem : public ParameterizedItem
+class BA_CORE_API_ MagneticFieldItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -28,7 +28,7 @@ public:
     static const QString P_BZ;
     explicit MagneticFieldItem();
     virtual ~MagneticFieldItem() {}
-    virtual QString itemLabel() const;
+    virtual QString itemLabel() const;
 };
 
 
diff --git a/GUI/coregui/Models/MaskItems.cpp b/GUI/coregui/Models/MaskItems.cpp
index f71bffe503297654bfe2654c3231f44e77818705..396ebb29f2888096e05e4847309730364e34fd7c 100644
--- a/GUI/coregui/Models/MaskItems.cpp
+++ b/GUI/coregui/Models/MaskItems.cpp
@@ -24,13 +24,13 @@
 
 
 MaskContainerItem::MaskContainerItem()
-    : ParameterizedItem(Constants::MaskContainerType)
+    : SessionItem(Constants::MaskContainerType)
 {
-    const QString T_MASKS = "Mask Tag";
-    registerTag(T_MASKS, 0, -1, QStringList() << Constants::RectangleMaskType << Constants::PolygonMaskType
-                << Constants::EllipseMaskType << Constants::VerticalLineMaskType
-                << Constants::HorizontalLineMaskType << Constants::MaskAllType);
-    setDefaultTag(T_MASKS);
+    const QString T_MASKS = "Mask Tag";
+    registerTag(T_MASKS, 0, -1, QStringList() << Constants::RectangleMaskType << Constants::PolygonMaskType
+                << Constants::EllipseMaskType << Constants::VerticalLineMaskType
+                << Constants::HorizontalLineMaskType << Constants::MaskAllType);
+    setDefaultTag(T_MASKS);
 }
 
 /* ------------------------------------------------------------------------- */
@@ -38,7 +38,7 @@ MaskContainerItem::MaskContainerItem()
 const QString MaskItem::P_MASK_VALUE = "Mask value";
 
 MaskItem::MaskItem(const QString &name)
-    : ParameterizedItem(name)
+    : SessionItem(name)
 {
     registerProperty(P_MASK_VALUE, true);
 }
@@ -60,10 +60,10 @@ RectangleItem::RectangleItem()
     : MaskItem(Constants::RectangleMaskType)
 {
     setItemName(Constants::RectangleMaskType);
-    registerProperty(P_XLOW, 0.0)->setLimits(AttLimits::limitless());
-    registerProperty(P_YLOW, 0.0)->setLimits(AttLimits::limitless());
-    registerProperty(P_XUP, 0.0)->setLimits(AttLimits::limitless());
-    registerProperty(P_YUP, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_XLOW, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_YLOW, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_XUP, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_YUP, 0.0)->setLimits(AttLimits::limitless());
 }
 
 std::unique_ptr<Geometry::IShape2D> RectangleItem::createShape(double scale) const
@@ -80,11 +80,11 @@ const QString PolygonPointItem::P_POSX = "X position";
 const QString PolygonPointItem::P_POSY = "Y position";
 
 PolygonPointItem::PolygonPointItem()
-    : ParameterizedItem(Constants::PolygonPointType)
+    : SessionItem(Constants::PolygonPointType)
 {
     setItemName(Constants::PolygonPointType);
-    registerProperty(P_POSX, 0.0)->setLimits(AttLimits::limitless());
-    registerProperty(P_POSY, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_POSX, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_POSY, 0.0)->setLimits(AttLimits::limitless());
 }
 
 /* ------------------------------------------------------------------------- */
@@ -95,16 +95,16 @@ PolygonItem::PolygonItem()
     : MaskItem(Constants::PolygonMaskType)
 {
     setItemName(Constants::PolygonMaskType);
-    const QString T_POINTS = "Point tag";
-    registerTag(T_POINTS, 0, -1, QStringList() << Constants::PolygonPointType);
-    setDefaultTag(T_POINTS);
-    registerProperty(P_ISCLOSED, false)->setVisible(false);
+    const QString T_POINTS = "Point tag";
+    registerTag(T_POINTS, 0, -1, QStringList() << Constants::PolygonPointType);
+    setDefaultTag(T_POINTS);
+    registerProperty(P_ISCLOSED, false)->setVisible(false);
 }
 
 std::unique_ptr<Geometry::IShape2D> PolygonItem::createShape(double scale) const
 {
     std::vector<double> x,y;
-    foreach(ParameterizedItem *item, this->getChildrenOfType(Constants::PolygonPointType)) {
+    foreach(SessionItem *item, this->getChildrenOfType(Constants::PolygonPointType)) {
         x.push_back(scale*item->getRegisteredProperty(PolygonPointItem::P_POSX).toDouble());
         y.push_back(scale*item->getRegisteredProperty(PolygonPointItem::P_POSY).toDouble());
     }
@@ -118,7 +118,7 @@ VerticalLineItem::VerticalLineItem()
     : MaskItem(Constants::VerticalLineMaskType)
 {
     setItemName(Constants::VerticalLineMaskType);
-    registerProperty(P_POSX, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_POSX, 0.0)->setLimits(AttLimits::limitless());
 }
 
 std::unique_ptr<Geometry::IShape2D> VerticalLineItem::createShape(double scale) const
@@ -134,7 +134,7 @@ HorizontalLineItem::HorizontalLineItem()
     : MaskItem(Constants::HorizontalLineMaskType)
 {
     setItemName(Constants::HorizontalLineMaskType);
-    registerProperty(P_POSY, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_POSY, 0.0)->setLimits(AttLimits::limitless());
 }
 
 std::unique_ptr<Geometry::IShape2D> HorizontalLineItem::createShape(double scale) const
@@ -155,11 +155,11 @@ EllipseItem::EllipseItem()
     : MaskItem(Constants::EllipseMaskType)
 {
     setItemName(Constants::EllipseMaskType);
-    registerProperty(P_XCENTER, 0.0)->setLimits(AttLimits::limitless());
-    registerProperty(P_YCENTER, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_XCENTER, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_YCENTER, 0.0)->setLimits(AttLimits::limitless());
     registerProperty(P_XRADIUS, 0.0);
     registerProperty(P_YRADIUS, 0.0);
-    registerProperty(P_ANGLE, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_ANGLE, 0.0)->setLimits(AttLimits::limitless());
 }
 
 std::unique_ptr<Geometry::IShape2D> EllipseItem::createShape(double scale) const
@@ -179,7 +179,7 @@ MaskAllItem::MaskAllItem()
     : MaskItem(Constants::MaskAllType)
 {
     setItemName(Constants::MaskAllType);
-    getItem(MaskItem::P_MASK_VALUE)->setEnabled(false);
+    getItem(MaskItem::P_MASK_VALUE)->setEnabled(false);
 }
 
 std::unique_ptr<Geometry::IShape2D> MaskAllItem::createShape(double scale) const
diff --git a/GUI/coregui/Models/MaskItems.h b/GUI/coregui/Models/MaskItems.h
index 133ceb432e8f7d419bb97418418d105abc6e1a74..099218f1e3aea107e6897bc8db21021d7c429245 100644
--- a/GUI/coregui/Models/MaskItems.h
+++ b/GUI/coregui/Models/MaskItems.h
@@ -16,7 +16,7 @@
 #ifndef MASKITEMS_H
 #define MASKITEMS_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <memory>
 
 namespace Geometry {
@@ -25,7 +25,7 @@ class IShape2D;
 
 //! Container holding various masks as children
 
-class BA_CORE_API_ MaskContainerItem : public ParameterizedItem
+class BA_CORE_API_ MaskContainerItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -35,7 +35,7 @@ public:
 
 //! A base class for all mask items
 //!
-class BA_CORE_API_ MaskItem : public ParameterizedItem
+class BA_CORE_API_ MaskItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -56,7 +56,7 @@ public:
     virtual std::unique_ptr<Geometry::IShape2D> createShape(double scale) const;
 };
 
-class BA_CORE_API_ PolygonPointItem : public ParameterizedItem
+class BA_CORE_API_ PolygonPointItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/MaterialItem.cpp b/GUI/coregui/Models/MaterialItem.cpp
index ef18a8cce4392f04d9dc68a87e0a9b3be4161b06..a46af647471e0afc63cdf1a91a1e247761d84ac0 100644
--- a/GUI/coregui/Models/MaterialItem.cpp
+++ b/GUI/coregui/Models/MaterialItem.cpp
@@ -32,23 +32,23 @@ const QString MaterialItem::P_IDENTIFIER = "Identifier";
 
 
 MaterialItem::MaterialItem()
-    : ParameterizedItem(Constants::MaterialType)
+    : SessionItem(Constants::MaterialType)
 {
 //    registerProperty(OBSOLETE_P_NAME, Constants::MaterialType);
 //    setItemName(Constants::MaterialType);
 
     ComboProperty types;
     types << Constants::HomogeneousMaterialType << Constants::HomogeneousMagneticMaterialType;
-    registerProperty(P_MATERIAL_TYPE, types.getVariant());
-    getItem(P_MATERIAL_TYPE)->setVisible(false);
+    registerProperty(P_MATERIAL_TYPE, types.getVariant());
+    getItem(P_MATERIAL_TYPE)->setVisible(false);
 
     ColorProperty color;
     registerProperty(P_COLOR, color.getVariant());
 
     registerGroupProperty(P_REFRACTIVE_INDEX, Constants::RefractiveIndexType);
 
-    registerProperty(P_IDENTIFIER, QUuid::createUuid().toString());
-    getItem(P_IDENTIFIER)->setVisible(false);
+    registerProperty(P_IDENTIFIER, QUuid::createUuid().toString());
+    getItem(P_IDENTIFIER)->setVisible(false);
 }
 
 void MaterialItem::setMaterialType(int index)
diff --git a/GUI/coregui/Models/MaterialItem.h b/GUI/coregui/Models/MaterialItem.h
index e49164cda141c23b7309455cb19c9a7fec55234b..6352da580f0f7d4826d72771090cd1e1b6420b25 100644
--- a/GUI/coregui/Models/MaterialItem.h
+++ b/GUI/coregui/Models/MaterialItem.h
@@ -16,10 +16,10 @@
 #ifndef MATERIALITEM_H
 #define MATERIALITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QColor>
 
-class BA_CORE_API_ MaterialItem : public ParameterizedItem
+class BA_CORE_API_ MaterialItem : public SessionItem
 {
     Q_OBJECT
 
diff --git a/GUI/coregui/Models/ModelMapper.cpp b/GUI/coregui/Models/ModelMapper.cpp
index 1464add1f6f29c60fe772436974a19c98b0efaa5..5cde8562a86489ec969ef51bc67be2b101ad0a71 100644
--- a/GUI/coregui/Models/ModelMapper.cpp
+++ b/GUI/coregui/Models/ModelMapper.cpp
@@ -15,7 +15,7 @@
 
 #include "ModelMapper.h"
 #include "SessionModel.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
 #include <QModelIndex>
 
@@ -27,7 +27,7 @@ ModelMapper::ModelMapper(QObject *parent)
 {
 }
 
-void ModelMapper::setItem(ParameterizedItem *item)
+void ModelMapper::setItem(SessionItem *item)
 {
     if (item) {
         m_item = item;
@@ -40,12 +40,12 @@ void ModelMapper::setOnPropertyChange(std::function<void (QString)> f)
     m_onPropertyChange.push_back(f);
 }
 
-void ModelMapper::setOnChildPropertyChange(std::function<void (ParameterizedItem *, QString)> f)
+void ModelMapper::setOnChildPropertyChange(std::function<void (SessionItem *, QString)> f)
 {
     m_onChildPropertyChange.push_back(f);
 }
 
-void ModelMapper::setOnParentChange(std::function<void (ParameterizedItem *)> f)
+void ModelMapper::setOnParentChange(std::function<void (SessionItem *)> f)
 {
     m_onParentChange.push_back(f);
 }
@@ -76,7 +76,7 @@ void ModelMapper::setModel(SessionModel *model)
     }
 }
 
-int ModelMapper::nestlingDepth(ParameterizedItem *item, int level)
+int ModelMapper::nestlingDepth(SessionItem *item, int level)
 {
     if (item == nullptr || item == m_model->rootItem())
         return -1;
@@ -91,11 +91,11 @@ void ModelMapper::onDataChanged(const QModelIndex &topLeft, const QModelIndex &b
 {
     if (topLeft.parent() != bottomRight.parent())
         return; // range must be from the same parent
-    ParameterizedItem *item = m_model->itemForIndex(topLeft);
+    SessionItem *item = m_model->itemForIndex(topLeft);
     int nestling = nestlingDepth(item);
     if (nestling > 0 && nestling < 2) {
         // something happened with our property or group item
-        if (ParameterizedItem *item = m_model->itemForIndex(topLeft)) {
+        if (SessionItem *item = m_model->itemForIndex(topLeft)) {
             if (m_item->isRegisteredProperty(item->itemName())) {
                 // some property changed
                 if (m_active && m_onPropertyChange.size() > 0) {
@@ -107,7 +107,7 @@ void ModelMapper::onDataChanged(const QModelIndex &topLeft, const QModelIndex &b
         }
     }
     if (nestling > 1) {
-        if (ParameterizedItem *parent = item->parent()) {
+        if (SessionItem *parent = item->parent()) {
             if (parent->isRegisteredProperty(item->itemName())) {
                 if (m_active && m_onChildPropertyChange.size() > 0) {
                     for (auto f : m_onChildPropertyChange) {
@@ -122,7 +122,7 @@ void ModelMapper::onDataChanged(const QModelIndex &topLeft, const QModelIndex &b
 void ModelMapper::onRowsInserted(const QModelIndex &parent, int first, int last)
 {
     if (parent.isValid()) {
-        if (ParameterizedItem *newChild = m_model->itemForIndex(parent.child(first, 0))) {
+        if (SessionItem *newChild = m_model->itemForIndex(parent.child(first, 0))) {
             if (m_item == newChild) {
                 if (m_active && m_onParentChange.size() > 0) {
                     for (auto f : m_onParentChange) {
@@ -143,7 +143,7 @@ void ModelMapper::onRowsInserted(const QModelIndex &parent, int first, int last)
 void ModelMapper::onBeginRemoveRows(const QModelIndex &parent, int first, int last)
 {
     if (parent.isValid()) {
-        if (ParameterizedItem *newChild = m_model->itemForIndex(parent.child(first, 0))) {
+        if (SessionItem *newChild = m_model->itemForIndex(parent.child(first, 0))) {
             if (m_item == newChild) {
                 if (m_active && m_onParentChange.size() > 0) {
                     for (auto f : m_onParentChange) {
diff --git a/GUI/coregui/Models/ModelMapper.h b/GUI/coregui/Models/ModelMapper.h
index c35c31ad1e9dfa7b1f1791ec5fafdebe9ae9ec64..4ba1491631255c100667e5f16ff3e939e8d17df2 100644
--- a/GUI/coregui/Models/ModelMapper.h
+++ b/GUI/coregui/Models/ModelMapper.h
@@ -24,7 +24,7 @@
 
 class QModelIndex;
 class SessionModel;
-class ParameterizedItem;
+class SessionItem;
 
 
 class BA_CORE_API_ ModelMapper : public QObject
@@ -33,13 +33,13 @@ class BA_CORE_API_ ModelMapper : public QObject
 public:
     ModelMapper(QObject *parent = 0);
 
-    void setItem(ParameterizedItem* item);
+    void setItem(SessionItem* item);
 
     void setOnPropertyChange(std::function<void(QString)> f);
 
-    void setOnChildPropertyChange(std::function<void(ParameterizedItem*,QString)> f);
+    void setOnChildPropertyChange(std::function<void(SessionItem*,QString)> f);
 
-    void setOnParentChange(std::function<void(ParameterizedItem*)> f);
+    void setOnParentChange(std::function<void(SessionItem*)> f);
 
     void setOnChildrenChange(std::function<void(void)> f);
 
@@ -55,14 +55,14 @@ public slots:
 
 private:
     void setModel(SessionModel *model);
-    int nestlingDepth(ParameterizedItem* item, int level = 0);
+    int nestlingDepth(SessionItem* item, int level = 0);
 
     bool m_active;
     SessionModel *m_model;
-    ParameterizedItem *m_item;
+    SessionItem *m_item;
     std::vector<std::function<void(QString)>> m_onPropertyChange;
-    std::vector<std::function<void(ParameterizedItem*,QString)>> m_onChildPropertyChange;
-    std::vector<std::function<void(ParameterizedItem*)>> m_onParentChange;
+    std::vector<std::function<void(SessionItem*,QString)>> m_onChildPropertyChange;
+    std::vector<std::function<void(SessionItem*)>> m_onParentChange;
     std::vector<std::function<void(void)>> m_onChildrenChange;
 };
 
diff --git a/GUI/coregui/Models/ModelPath.cpp b/GUI/coregui/Models/ModelPath.cpp
index f92502dead84e1aa14a8d20ff9de86e544f77b18..35c4871b55db5a2ccc590b5f1bf577e71a1de403 100644
--- a/GUI/coregui/Models/ModelPath.cpp
+++ b/GUI/coregui/Models/ModelPath.cpp
@@ -14,14 +14,14 @@
 // ************************************************************************** //
 
 #include "ModelPath.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QStringList>
 #include <sstream>
 
 
 std::vector<std::unique_ptr<IParameterTranslator>> ModelPath::m_special_translators;
 
-QStringList ModelPath::getParameterTreeList(const ParameterizedItem *item, QString prefix)
+QStringList ModelPath::getParameterTreeList(const SessionItem *item, QString prefix)
 {
     QStringList result;
     if (item->modelType() ==  Constants::PropertyType
@@ -39,7 +39,7 @@ QStringList ModelPath::getParameterTreeList(const ParameterizedItem *item, QStri
     return result;
 }
 
-double ModelPath::getParameterValue(const ParameterizedItem *item, const QString &name)
+double ModelPath::getParameterValue(const SessionItem *item, const QString &name)
 {
     QString head = getFirstField(name);
     auto p_child = item->getChildByName(head);
@@ -53,7 +53,7 @@ double ModelPath::getParameterValue(const ParameterizedItem *item, const QString
     }
 }
 
-std::string ModelPath::translateParameterName(const ParameterizedItem *item, const QString &par_name)
+std::string ModelPath::translateParameterName(const SessionItem *item, const QString &par_name)
 {
     std::ostringstream result;
     auto list = splitParameterName(par_name);
diff --git a/GUI/coregui/Models/ModelPath.h b/GUI/coregui/Models/ModelPath.h
index aedb5577975af94bfc9aba949e74607d892d89d5..69c40cb987913b147610d73aa814befd839f7244 100644
--- a/GUI/coregui/Models/ModelPath.h
+++ b/GUI/coregui/Models/ModelPath.h
@@ -22,23 +22,23 @@
 #include <vector>
 #include <memory>
 
-class ParameterizedItem;
+class SessionItem;
 class QString;
 class QStringList;
 
 class BA_CORE_API_ ModelPath
 {
 public:
-    //! retrieves a list of all parameter names in the ParameterizedItem tree starting
+    //! retrieves a list of all parameter names in the SessionItem tree starting
     //! with this node and prefixes them
-    static QStringList getParameterTreeList(const ParameterizedItem *item, QString prefix = "");
+    static QStringList getParameterTreeList(const SessionItem *item, QString prefix = "");
 
     //! retrieve value of given parameter name
-    static double getParameterValue(const ParameterizedItem *item, const QString &name);
+    static double getParameterValue(const SessionItem *item, const QString &name);
 
     //! translates the given parameter name to a domain parameter name
     //! name should start with a child/subitem name or be a direct parameter name
-    static std::string translateParameterName(const ParameterizedItem *item, const QString &par_name);
+    static std::string translateParameterName(const SessionItem *item, const QString &par_name);
 
     static void addParameterTranslator(const IParameterTranslator &translator);
 
diff --git a/GUI/coregui/Models/MultiLayerItem.cpp b/GUI/coregui/Models/MultiLayerItem.cpp
index 561b06337d6bf15a246547b045c5a192052f6c8c..60e26bc5cc6b2678f3ccb756c82925e8744129f0 100644
--- a/GUI/coregui/Models/MultiLayerItem.cpp
+++ b/GUI/coregui/Models/MultiLayerItem.cpp
@@ -23,7 +23,7 @@ const QString MultiLayerItem::P_CROSS_CORR_LENGTH = "Cross Correlation Length";
 const QString MultiLayerItem::T_LAYERS = "Layer tag";
 
 MultiLayerItem::MultiLayerItem()
-    : ParameterizedGraphicsItem(Constants::MultiLayerType)
+    : SessionGraphicsItem(Constants::MultiLayerType)
 {
     registerProperty(P_CROSS_CORR_LENGTH, 0.0);
     registerTag(T_LAYERS, 0, -1, QStringList() << Constants::LayerType);
@@ -36,22 +36,22 @@ MultiLayerItem::MultiLayerItem()
     });
 }
 
-ParameterizedItem *MultiLayerItem::takeChildItem(int row)
+SessionItem *MultiLayerItem::takeChildItem(int row)
 {
-    ParameterizedItem *item = ParameterizedItem::takeChildItem(row);
+    SessionItem *item = SessionItem::takeChildItem(row);
     updateLayers();
     return item;
 }
 
-void MultiLayerItem::insertChildItem(int row, ParameterizedItem *item, const QString tag)
+void MultiLayerItem::insertChildItem(int row, SessionItem *item, const QString tag)
 {
-    ParameterizedItem::insertChildItem(row, item);
+    SessionItem::insertChildItem(row, item);
     updateLayers();
 }
 
 void MultiLayerItem::updateLayers()
 {
-    QList<ParameterizedItem*> list = getChildrenOfType(Constants::LayerType);
+    QList<SessionItem*> list = getChildrenOfType(Constants::LayerType);
     for(auto it = list.begin(); it != list.end(); ++it) {
         if(it == list.begin()) {
             (*it)->getItem(LayerItem::P_ROUGHNESS)->setEnabled(false);
diff --git a/GUI/coregui/Models/MultiLayerItem.h b/GUI/coregui/Models/MultiLayerItem.h
index 88b352c1287ffcb0546c5d17f453cdc39fae580d..a7eb1ab891ce19964ee092d765d97c6f0a6ab443 100644
--- a/GUI/coregui/Models/MultiLayerItem.h
+++ b/GUI/coregui/Models/MultiLayerItem.h
@@ -16,9 +16,9 @@
 #ifndef MULTILAYERITEM_H
 #define MULTILAYERITEM_H
 
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
-class BA_CORE_API_ MultiLayerItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ MultiLayerItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
@@ -26,8 +26,8 @@ public:
     static const QString T_LAYERS;
     explicit MultiLayerItem();
     virtual ~MultiLayerItem() {}
-    virtual ParameterizedItem *takeChildItem(int row);
-    virtual void insertChildItem(int row, ParameterizedItem *item, const QString tag = QString());
+    virtual SessionItem *takeChildItem(int row);
+    virtual void insertChildItem(int row, SessionItem *item, const QString tag = QString());
 
 private:
     void updateLayers();
diff --git a/GUI/coregui/Models/ParameterModelBuilder.cpp b/GUI/coregui/Models/ParameterModelBuilder.cpp
index 1fe5f8ebad7ce7fd8c8498145eb3e84bfa97b73b..ea229f20edc29a034289ef230ab38b3d01d5b44e 100644
--- a/GUI/coregui/Models/ParameterModelBuilder.cpp
+++ b/GUI/coregui/Models/ParameterModelBuilder.cpp
@@ -58,100 +58,100 @@ QStandardItem *ParameterModelBuilder::iterateSessionModel(SessionModel *sampleMo
                                                           QStandardItem *parentItem)
 {
     Q_ASSERT(sampleModel);
-    if (!parentItem) {
-        parentItem = new QStandardItem(sampleModel->itemForIndex(parentIndex)->itemName());
-    }
+    if (!parentItem) {
+        parentItem = new QStandardItem(sampleModel->itemForIndex(parentIndex)->itemName());
+    }
 
     for (int i_row = 0; i_row < sampleModel->rowCount(parentIndex); ++i_row) {
         QModelIndex itemIndex = sampleModel->index(i_row, 0, parentIndex);
 
-        if (ParameterizedItem *item = sampleModel->itemForIndex(itemIndex)) {
-            if (!item->isEnabled() || !item->isVisible())
-                continue;
-            if (item->modelType() == Constants::PropertyType) {
-                // insert property
-                addPropertyToParameterModel(parentItem, item->itemName(), item->itemName(),
-                                                      item->value(), item);
-            } else if (item->modelType() == Constants::GroupItemType) {
-                iterateSessionModel(sampleModel, item->parent()->getGroupItem(item->itemName())->index(), parentItem);
-            } else {
-                QStandardItem *newItem = new QStandardItem(item->itemName());
-                InsertRowIntoItem(parentItem, newItem);
-                iterateSessionModel(sampleModel, itemIndex, newItem);
-            }
-
-
-
-//            qDebug() << " item" << item->modelType() << item->itemName();
-//            item->print();
-
-//            //QStandardItem *standardItem = new QStandardItem(item->itemName());
-
-//            QList<QByteArray> propertyNameList = item->dynamicPropertyNames();
-//            for (int i = 0; i < propertyNameList.length(); ++i) {
-//                QString propertyName = QString(propertyNameList[i]);
-//                //                qDebug() << "       Items: i"<< i << propertyName <<
-//                //                "subItems.size" << item->getSubItems().size();
-
-//                const PropertyAttribute &prop_attribute = item->getPropertyAttribute(propertyName);
-
-//                if (prop_attribute.isHidden() || prop_attribute.isDisabled()) continue;
-
-//                // if(item->getPropertyAttribute(propertyName) & ParameterizedItem::HiddenProperty)
-//                // continue;
-
-//                QVariant propertyValue = item->property(propertyName.toUtf8().data());
-
-//                int type = GUIHelpers::getVariantType(propertyValue);
-//                if (type == QVariant::Double) {
-//                    //                    qDebug() << "       Items: "<<propertyName <<
-//                    //                    propertyValue.toDouble();
-//                    addPropertyToParameterModel(standardItem, propertyName, propertyName,
-//                                                propertyValue, item);
-
-//                } else if (item->isGroupProperty(propertyName)) {
-//                    QMap<QString, ParameterizedItem *> subItems = item->getSubItems();
-//                    ParameterizedItem *subItem = subItems[propertyName];
-
-//                    //                        qDebug() << "           Item: " << item->itemName() <<
-//                    //                        "SubItem:" << subItem->itemName();
-
-//                    QStandardItem *childStandardItem = new QStandardItem(subItem->itemName());
-
-//                    QList<QByteArray> childPropertyList = subItem->dynamicPropertyNames();
-
-//                    bool isChildPropertyFound = false;
-
-//                    for (int j = 0; j < childPropertyList.length(); ++j) {
-//                        QString childPropertyName = QString(childPropertyList[j]);
-
-//                        const PropertyAttribute &prop_attribute
-//                            = subItem->getPropertyAttribute(childPropertyName);
-//                        if (prop_attribute.isHidden() || prop_attribute.isDisabled())
-//                            continue;
-
-//                        QVariant childPropertyValue
-//                            = subItem->property(childPropertyName.toUtf8().data());
-//                        int proValueType = GUIHelpers::getVariantType(childPropertyValue);
-//                        if (proValueType == QVariant::Double) {
-//                            // qDebug() << "Items: "<<prop_name << prop_value.toDouble();
-//                            isChildPropertyFound = true;
-//                            addPropertyToParameterModel(childStandardItem, childPropertyName,
-//                                                        childPropertyName, childPropertyValue,
-//                                                        subItem);
-//                        }
-//                    }
-//                    if (isChildPropertyFound) {
-//                        InsertRowIntoItem(standardItem, childStandardItem);
-//                    }
-//                }
-//            }
-
-//            if (parentItem == nullptr) {
-//                parentItem = standardItem;
-//            } else {
-//                InsertRowIntoItem(parentItem, standardItem);
-//            }
+        if (SessionItem *item = sampleModel->itemForIndex(itemIndex)) {
+            if (!item->isEnabled() || !item->isVisible())
+                continue;
+            if (item->modelType() == Constants::PropertyType) {
+                // insert property
+                addPropertyToParameterModel(parentItem, item->itemName(), item->itemName(),
+                                                      item->value(), item);
+            } else if (item->modelType() == Constants::GroupItemType) {
+                iterateSessionModel(sampleModel, item->parent()->getGroupItem(item->itemName())->index(), parentItem);
+            } else {
+                QStandardItem *newItem = new QStandardItem(item->itemName());
+                InsertRowIntoItem(parentItem, newItem);
+                iterateSessionModel(sampleModel, itemIndex, newItem);
+            }
+
+
+
+//            qDebug() << " item" << item->modelType() << item->itemName();
+//            item->print();
+
+//            //QStandardItem *standardItem = new QStandardItem(item->itemName());
+
+//            QList<QByteArray> propertyNameList = item->dynamicPropertyNames();
+//            for (int i = 0; i < propertyNameList.length(); ++i) {
+//                QString propertyName = QString(propertyNameList[i]);
+//                //                qDebug() << "       Items: i"<< i << propertyName <<
+//                //                "subItems.size" << item->getSubItems().size();
+
+//                const PropertyAttribute &prop_attribute = item->getPropertyAttribute(propertyName);
+
+//                if (prop_attribute.isHidden() || prop_attribute.isDisabled()) continue;
+
+//                // if(item->getPropertyAttribute(propertyName) & SessionItem::HiddenProperty)
+//                // continue;
+
+//                QVariant propertyValue = item->property(propertyName.toUtf8().data());
+
+//                int type = GUIHelpers::getVariantType(propertyValue);
+//                if (type == QVariant::Double) {
+//                    //                    qDebug() << "       Items: "<<propertyName <<
+//                    //                    propertyValue.toDouble();
+//                    addPropertyToParameterModel(standardItem, propertyName, propertyName,
+//                                                propertyValue, item);
+
+//                } else if (item->isGroupProperty(propertyName)) {
+//                    QMap<QString, SessionItem *> subItems = item->getSubItems();
+//                    SessionItem *subItem = subItems[propertyName];
+
+//                    //                        qDebug() << "           Item: " << item->itemName() <<
+//                    //                        "SubItem:" << subItem->itemName();
+
+//                    QStandardItem *childStandardItem = new QStandardItem(subItem->itemName());
+
+//                    QList<QByteArray> childPropertyList = subItem->dynamicPropertyNames();
+
+//                    bool isChildPropertyFound = false;
+
+//                    for (int j = 0; j < childPropertyList.length(); ++j) {
+//                        QString childPropertyName = QString(childPropertyList[j]);
+
+//                        const PropertyAttribute &prop_attribute
+//                            = subItem->getPropertyAttribute(childPropertyName);
+//                        if (prop_attribute.isHidden() || prop_attribute.isDisabled())
+//                            continue;
+
+//                        QVariant childPropertyValue
+//                            = subItem->property(childPropertyName.toUtf8().data());
+//                        int proValueType = GUIHelpers::getVariantType(childPropertyValue);
+//                        if (proValueType == QVariant::Double) {
+//                            // qDebug() << "Items: "<<prop_name << prop_value.toDouble();
+//                            isChildPropertyFound = true;
+//                            addPropertyToParameterModel(childStandardItem, childPropertyName,
+//                                                        childPropertyName, childPropertyValue,
+//                                                        subItem);
+//                        }
+//                    }
+//                    if (isChildPropertyFound) {
+//                        InsertRowIntoItem(standardItem, childStandardItem);
+//                    }
+//                }
+//            }
+
+//            if (parentItem == nullptr) {
+//                parentItem = standardItem;
+//            } else {
+//                InsertRowIntoItem(parentItem, standardItem);
+//            }
             // qDebug() << "iteration called" << i_row;
         }
     }
@@ -179,9 +179,9 @@ QStandardItem *ParameterModelBuilder::iterateInstrumentItem(InstrumentItem *inst
 
         // wavelength, incident and azimuthal angle will be varied only if there is no distribution
         // assigned to them
-        ParameterizedItem *beamWavelength = beamItem->getGroupItem(BeamItem::P_WAVELENGTH);
+        SessionItem *beamWavelength = beamItem->getGroupItem(BeamItem::P_WAVELENGTH);
         Q_ASSERT(beamWavelength);
-        ParameterizedItem *wavelengthDistribution
+        SessionItem *wavelengthDistribution
             = beamWavelength->getGroupItem(BeamDistributionItem::P_DISTRIBUTION);
         Q_ASSERT(wavelengthDistribution);
         if (wavelengthDistribution->modelType() == Constants::DistributionNoneType) {
@@ -193,10 +193,10 @@ QStandardItem *ParameterModelBuilder::iterateInstrumentItem(InstrumentItem *inst
             addDisabledProperty(standardItem, BeamItem::P_WAVELENGTH);
         }
 
-        ParameterizedItem *inclinationAngle
+        SessionItem *inclinationAngle
             = beamItem->getGroupItem(BeamItem::P_INCLINATION_ANGLE);
         Q_ASSERT(inclinationAngle);
-        ParameterizedItem *inclinationDistribution
+        SessionItem *inclinationDistribution
             = inclinationAngle->getGroupItem(BeamDistributionItem::P_DISTRIBUTION);
         Q_ASSERT(inclinationDistribution);
         if (inclinationDistribution->modelType() == Constants::DistributionNoneType) {
@@ -208,9 +208,9 @@ QStandardItem *ParameterModelBuilder::iterateInstrumentItem(InstrumentItem *inst
             addDisabledProperty(standardItem, BeamItem::P_INCLINATION_ANGLE);
         }
 
-        ParameterizedItem *azimuthalAngle = beamItem->getGroupItem(BeamItem::P_AZIMUTHAL_ANGLE);
+        SessionItem *azimuthalAngle = beamItem->getGroupItem(BeamItem::P_AZIMUTHAL_ANGLE);
         Q_ASSERT(azimuthalAngle);
-        ParameterizedItem *azimuthalDistribution
+        SessionItem *azimuthalDistribution
             = azimuthalAngle->getGroupItem(BeamDistributionItem::P_DISTRIBUTION);
         Q_ASSERT(azimuthalDistribution);
         if (azimuthalDistribution->modelType() == Constants::DistributionNoneType) {
@@ -239,7 +239,7 @@ void ParameterModelBuilder::InsertRowIntoItem(QStandardItem *parentItem,
     parentItem->appendRow(QList<QStandardItem *>() << childTitleItem << childValueItem);
 }
 
-//! adds property of ParameterizedItem to the QStandardItem of ParameterTree
+//! adds property of SessionItem to the QStandardItem of ParameterTree
 //! title - the name of the property as it will be shown by QTreeView
 //! property_name - the name of the property to add (normally coincide with 'title')
 //! value - QVariant representing property_value
@@ -247,9 +247,9 @@ void ParameterModelBuilder::addPropertyToParameterModel(QStandardItem *parentIte
                                                         const QString &title,
                                                         const QString &property_name,
                                                         QVariant value,
-                                                        ParameterizedItem *parameterizedItem)
+                                                        SessionItem *parameterizedItem)
 {
-    ItemLink itemLink(property_name, parameterizedItem->parent());
+    ItemLink itemLink(property_name, parameterizedItem->parent());
 
     QVariant itemLinkData;
     itemLinkData.setValue(itemLink);
diff --git a/GUI/coregui/Models/ParameterModelBuilder.h b/GUI/coregui/Models/ParameterModelBuilder.h
index 3b57158f624c6c6fc1cf6ef90fbdda0f04171fed..f96ceef835bf11f44b5dcba43b733507597aba01 100644
--- a/GUI/coregui/Models/ParameterModelBuilder.h
+++ b/GUI/coregui/Models/ParameterModelBuilder.h
@@ -29,7 +29,7 @@ class JobItem;
 class InstrumentItem;
 class QStandardItem;
 class QStandardItemModel;
-class ParameterizedItem;
+class SessionItem;
 
 //! The ParameterModelBuilder generates QStandardItemModel representing
 //! tunable parameters of instrument and sample models.
@@ -47,7 +47,7 @@ private:
     static QStandardItem *iterateInstrumentItem(InstrumentItem *instrument);
 
     static void InsertRowIntoItem(QStandardItem *parentItem, QStandardItem *childTitleItem, QStandardItem *childValueItem = 0);
-    static void addPropertyToParameterModel(QStandardItem *parentItem, const QString &title, const QString &property_name, QVariant value, ParameterizedItem *parameterizedItem);
+    static void addPropertyToParameterModel(QStandardItem *parentItem, const QString &title, const QString &property_name, QVariant value, SessionItem *parameterizedItem);
     static void addDisabledProperty(QStandardItem *parentItem, const QString &title);
 };
 
diff --git a/GUI/coregui/Models/ParticleCompositionItem.cpp b/GUI/coregui/Models/ParticleCompositionItem.cpp
index 061458254db358ac06e16de0ae052e45c273a67f..75c4a3b34043e7d8e388a8570a03179c1c3379a8 100644
--- a/GUI/coregui/Models/ParticleCompositionItem.cpp
+++ b/GUI/coregui/Models/ParticleCompositionItem.cpp
@@ -20,34 +20,34 @@
 #include "GUIHelpers.h"
 #include "ModelPath.h"
 
-const QString ParticleCompositionItem::T_PARTICLES = "Particle Tag";
-const QString ParticleCompositionItem::T_TRANSFORMATION = "Transformation Tag";
-
+const QString ParticleCompositionItem::T_PARTICLES = "Particle Tag";
+const QString ParticleCompositionItem::T_TRANSFORMATION = "Transformation Tag";
+
 ParticleCompositionItem::ParticleCompositionItem()
-    : ParameterizedGraphicsItem(Constants::ParticleCompositionType)
+    : SessionGraphicsItem(Constants::ParticleCompositionType)
 {
-    registerProperty(ParticleItem::P_ABUNDANCE, 1.0);
-    getItem(ParticleItem::P_ABUNDANCE)->setLimits(AttLimits::limited(0.0, 1.0));
-    getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
+    registerProperty(ParticleItem::P_ABUNDANCE, 1.0);
+    getItem(ParticleItem::P_ABUNDANCE)->setLimits(AttLimits::limited(0.0, 1.0));
+    getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
     registerGroupProperty(ParticleItem::P_POSITION, Constants::VectorType);
     PositionTranslator position_translator;
     ModelPath::addParameterTranslator(position_translator);
 
-    registerTag(T_PARTICLES, 0, -1, QStringList() << Constants::ParticleType <<
-                Constants::ParticleCoreShellType << Constants::ParticleCompositionType);
-    setDefaultTag(T_PARTICLES);
-    registerTag(T_TRANSFORMATION, 0, 1, QStringList() << Constants::TransformationType);
+    registerTag(T_PARTICLES, 0, -1, QStringList() << Constants::ParticleType <<
+                Constants::ParticleCoreShellType << Constants::ParticleCompositionType);
+    setDefaultTag(T_PARTICLES);
+    registerTag(T_TRANSFORMATION, 0, 1, QStringList() << Constants::TransformationType);
     RotationTranslator rotation_translator;
     ModelPath::addParameterTranslator(rotation_translator);
 
     mapper()->setOnParentChange(
-                [this](ParameterizedItem *parent) {
+                [this](SessionItem *parent) {
         if (parent && (parent->modelType() == Constants::ParticleCompositionType
             || parent->modelType() == Constants::ParticleDistributionType)) {
             setRegisteredProperty(ParticleItem::P_ABUNDANCE, 1.0);
-            getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false);
+            getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false);
         } else {
-            getItem(ParticleItem::P_ABUNDANCE)->setEnabled(true);
+            getItem(ParticleItem::P_ABUNDANCE)->setEnabled(true);
         }
     });
 }
@@ -57,7 +57,7 @@ std::unique_ptr<ParticleComposition> ParticleCompositionItem::createParticleComp
     double abundance = getRegisteredProperty(ParticleItem::P_ABUNDANCE).toDouble();
     auto P_composition = GUIHelpers::make_unique<ParticleComposition>();
     P_composition->setAbundance(abundance);
-    QVector<ParameterizedItem *> children = childItems();
+    QVector<SessionItem *> children = childItems();
     for (int i = 0; i < children.size(); ++i) {
         if (children[i]->modelType() == Constants::ParticleType) {
             auto *particle_item = static_cast<ParticleItem*>(children[i]);
diff --git a/GUI/coregui/Models/ParticleCompositionItem.h b/GUI/coregui/Models/ParticleCompositionItem.h
index d68cf39811804cb6dd9b274428f3e8fb2a3c04f3..0721f570b65cb8afe37423ae53fbccbd7b0a11b2 100644
--- a/GUI/coregui/Models/ParticleCompositionItem.h
+++ b/GUI/coregui/Models/ParticleCompositionItem.h
@@ -17,17 +17,17 @@
 #define PARTICLECOMPOSITIONITEM_H
 
 #include "ParticleComposition.h"
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
 #include <QStringList>
 #include <memory>
 
-class BA_CORE_API_ ParticleCompositionItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ ParticleCompositionItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
-    const static QString T_PARTICLES;
-    const static QString T_TRANSFORMATION;
+    const static QString T_PARTICLES;
+    const static QString T_TRANSFORMATION;
     explicit ParticleCompositionItem();
     virtual ~ParticleCompositionItem() {}
     std::unique_ptr<ParticleComposition> createParticleComposition() const;
diff --git a/GUI/coregui/Models/ParticleCoreShellItem.cpp b/GUI/coregui/Models/ParticleCoreShellItem.cpp
index 8f6a0bfe0e288ecbe07ea46186793e5088f6df7e..61fa811bbb5c2c3dc8f68c086b10325018cc5bc3 100644
--- a/GUI/coregui/Models/ParticleCoreShellItem.cpp
+++ b/GUI/coregui/Models/ParticleCoreShellItem.cpp
@@ -21,23 +21,23 @@
 #include "ModelPath.h"
 #include <QDebug>
 
-const QString ParticleCoreShellItem::T_CORE = "Core Tag";
-const QString ParticleCoreShellItem::T_SHELL = "Shell Tag";
-const QString ParticleCoreShellItem::T_TRANSFORMATION = "Transformation Tag";
-
+const QString ParticleCoreShellItem::T_CORE = "Core Tag";
+const QString ParticleCoreShellItem::T_SHELL = "Shell Tag";
+const QString ParticleCoreShellItem::T_TRANSFORMATION = "Transformation Tag";
+
 ParticleCoreShellItem::ParticleCoreShellItem()
-    : ParameterizedGraphicsItem(Constants::ParticleCoreShellType)
+    : SessionGraphicsItem(Constants::ParticleCoreShellType)
 {
-    registerProperty(ParticleItem::P_ABUNDANCE, 1.0);
-    getItem(ParticleItem::P_ABUNDANCE)->setLimits(AttLimits::limited(0.0, 1.0));
-    getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
+    registerProperty(ParticleItem::P_ABUNDANCE, 1.0);
+    getItem(ParticleItem::P_ABUNDANCE)->setLimits(AttLimits::limited(0.0, 1.0));
+    getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
     registerGroupProperty(ParticleItem::P_POSITION, Constants::VectorType);
     PositionTranslator position_translator;
     ModelPath::addParameterTranslator(position_translator);
 
-    registerTag(T_CORE, 0, 1, QStringList() << Constants::ParticleType);
-    registerTag(T_SHELL, 0, 1, QStringList() << Constants::ParticleType);
-    registerTag(T_TRANSFORMATION, 0, 1, QStringList() << Constants::TransformationType);
+    registerTag(T_CORE, 0, 1, QStringList() << Constants::ParticleType);
+    registerTag(T_SHELL, 0, 1, QStringList() << Constants::ParticleType);
+    registerTag(T_TRANSFORMATION, 0, 1, QStringList() << Constants::TransformationType);
     RotationTranslator rotation_translator;
     ModelPath::addParameterTranslator(rotation_translator);
     mapper()->setOnPropertyChange(
@@ -48,7 +48,7 @@ ParticleCoreShellItem::ParticleCoreShellItem()
             if (parent()->modelType() == Constants::ParticleCompositionType
                 || parent()->modelType() == Constants::ParticleDistributionType) {
                 setRegisteredProperty(ParticleItem::P_ABUNDANCE, 1.0);
-                getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false);
+                getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false);
             }
         }
     });
@@ -60,24 +60,24 @@ std::unique_ptr<ParticleCoreShell> ParticleCoreShellItem::createParticleCoreShel
     auto children = childItems();
     std::unique_ptr<Particle> P_core {};
     std::unique_ptr<Particle> P_shell {};
-
-    // TODO restore logic
-//    for (int i = 0; i < children.size(); ++i) {
-////        int port = children[i]->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT).toInt();
-//        int port = children[i]->port();
-//        if (port == ParameterizedItem::PortInfo::PORT_0) {
-//            auto core_item = static_cast<ParticleItem*>(children[i]);
-//            P_core = core_item->createParticle();
-//        } else if (port == ParameterizedItem::PortInfo::PORT_1) {
-//            auto shell_item = static_cast<ParticleItem*>(children[i]);
-//            P_shell = shell_item->createParticle();
-//        } else if (port == ParameterizedItem::PortInfo::PORT_2) {
-//            continue;
-//        } else {
-//            throw GUIHelpers::Error(
-//                "ParticleCoreShellItem::createParticleCoreShell -> Error. Logic error.");
-//        }
-//    }
+
+    // TODO restore logic
+//    for (int i = 0; i < children.size(); ++i) {
+////        int port = children[i]->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT).toInt();
+//        int port = children[i]->port();
+//        if (port == SessionItem::PortInfo::PORT_0) {
+//            auto core_item = static_cast<ParticleItem*>(children[i]);
+//            P_core = core_item->createParticle();
+//        } else if (port == SessionItem::PortInfo::PORT_1) {
+//            auto shell_item = static_cast<ParticleItem*>(children[i]);
+//            P_shell = shell_item->createParticle();
+//        } else if (port == SessionItem::PortInfo::PORT_2) {
+//            continue;
+//        } else {
+//            throw GUIHelpers::Error(
+//                "ParticleCoreShellItem::createParticleCoreShell -> Error. Logic error.");
+//        }
+//    }
     if (!P_core || !P_shell)
         throw GUIHelpers::Error("ParticleCoreShellItem::createParticleCoreShell -> Error. Either "
                                 "core or shell particle is undefined.");
@@ -89,41 +89,41 @@ std::unique_ptr<ParticleCoreShell> ParticleCoreShellItem::createParticleCoreShel
 
 void ParticleCoreShellItem::notifyChildParticlePortChanged()
 {
-    // TODO restore logic
-//    QVector<ParameterizedItem *> children = childItems();
-//    int core_index = -1;
-//    int shell_index = -1;
-//    for (int i=0; i<children.size(); ++i) {
-//        if (children[i]->modelType() == Constants::ParticleType) {
-//            PortInfo::EPorts port = children[i]->port();/*(PortInfo::EPorts)children[i]
-//                                        ->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT).toInt();*/
-//            if (port == PortInfo::PORT_0) core_index = i;
-//            if (port == PortInfo::PORT_1) shell_index = i;
-//        }
-//    }
-//    if (shell_index >= 0 && core_index > shell_index) {
-//        swapChildren(core_index, shell_index);
-//    }
+    // TODO restore logic
+//    QVector<SessionItem *> children = childItems();
+//    int core_index = -1;
+//    int shell_index = -1;
+//    for (int i=0; i<children.size(); ++i) {
+//        if (children[i]->modelType() == Constants::ParticleType) {
+//            PortInfo::EPorts port = children[i]->port();/*(PortInfo::EPorts)children[i]
+//                                        ->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT).toInt();*/
+//            if (port == PortInfo::PORT_0) core_index = i;
+//            if (port == PortInfo::PORT_1) shell_index = i;
+//        }
+//    }
+//    if (shell_index >= 0 && core_index > shell_index) {
+//        swapChildren(core_index, shell_index);
+//    }
 }
 
-//! TODO where is it used? restore logic
-//ParameterizedItem::PortInfo::EPorts ParticleCoreShellItem::getFirstAvailableParticlePort() const
-//{
-//    // Also when no ports are available, return the first port (core particle will then be replaced)
-//    PortInfo::EPorts result = PortInfo::PORT_0;
-//    QList<PortInfo::EPorts> used_particle_ports;
-//    QVector<ParameterizedItem *> children = childItems();
-//    for (auto item : children) {
-//        if (item->modelType() == Constants::ParticleType) {
-//            PortInfo::EPorts port = item->port();
-////                = (PortInfo::EPorts)item->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT).toInt();
-//            used_particle_ports.append(port);
-//        }
-//    }
-//    if (used_particle_ports.size() < 2) {
-//        if (used_particle_ports.contains(PortInfo::PORT_0)) {
-//            result = PortInfo::PORT_1;
-//        }
-//    }
-//    return result;
-//}
+//! TODO where is it used? restore logic
+//ParameterizedItem::PortInfo::EPorts ParticleCoreShellItem::getFirstAvailableParticlePort() const
+//{
+//    // Also when no ports are available, return the first port (core particle will then be replaced)
+//    PortInfo::EPorts result = PortInfo::PORT_0;
+//    QList<PortInfo::EPorts> used_particle_ports;
+//    QVector<SessionItem *> children = childItems();
+//    for (auto item : children) {
+//        if (item->modelType() == Constants::ParticleType) {
+//            PortInfo::EPorts port = item->port();
+////                = (PortInfo::EPorts)item->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT).toInt();
+//            used_particle_ports.append(port);
+//        }
+//    }
+//    if (used_particle_ports.size() < 2) {
+//        if (used_particle_ports.contains(PortInfo::PORT_0)) {
+//            result = PortInfo::PORT_1;
+//        }
+//    }
+//    return result;
+//}
diff --git a/GUI/coregui/Models/ParticleCoreShellItem.h b/GUI/coregui/Models/ParticleCoreShellItem.h
index c33e52ee3d8d413f23e27e703248b0e179ccfaaa..a70b66ae40ffe0ec334978c5f0267c79f69bf8e2 100644
--- a/GUI/coregui/Models/ParticleCoreShellItem.h
+++ b/GUI/coregui/Models/ParticleCoreShellItem.h
@@ -17,18 +17,18 @@
 #define PARTICLECORESHELLITEM_H
 
 #include "ParticleCoreShell.h"
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
 #include <QVector>
 #include <memory>
 
-class BA_CORE_API_ ParticleCoreShellItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ ParticleCoreShellItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
-    const static QString T_CORE;
-    const static QString T_SHELL;
-    const static QString T_TRANSFORMATION;
+    const static QString T_CORE;
+    const static QString T_SHELL;
+    const static QString T_TRANSFORMATION;
     enum ECoreShell { CORE, SHELL};
     explicit ParticleCoreShellItem();
     virtual ~ParticleCoreShellItem() {}
@@ -37,7 +37,7 @@ public:
     void notifyChildParticlePortChanged();
 
 private:
-//    PortInfo::EPorts getFirstAvailableParticlePort() const;
+//    PortInfo::EPorts getFirstAvailableParticlePort() const;
 };
 
 #endif
diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp
index 2a8d980e245eed48d8956a6efa674fa2aaacf5e8..0d7528c0e4ac74016c115624ebd27dce97eb22dc 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.cpp
+++ b/GUI/coregui/Models/ParticleDistributionItem.cpp
@@ -32,26 +32,26 @@
 const QString ParticleDistributionItem::P_DISTRIBUTED_PARAMETER = "Distributed parameter";
 const QString ParticleDistributionItem::P_DISTRIBUTION = "Distribution";
 const QString ParticleDistributionItem::NO_SELECTION = "None";
-const QString ParticleDistributionItem::T_PARTICLES = "Particle Tag";
+const QString ParticleDistributionItem::T_PARTICLES = "Particle Tag";
 
 ParticleDistributionItem::ParticleDistributionItem()
-    : ParameterizedGraphicsItem(Constants::ParticleDistributionType)
+    : SessionGraphicsItem(Constants::ParticleDistributionType)
 {
-    registerProperty(ParticleItem::P_ABUNDANCE, 1.0);
-    getItem(ParticleItem::P_ABUNDANCE)->setLimits(AttLimits::limited(0.0, 1.0));
-    getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
+    registerProperty(ParticleItem::P_ABUNDANCE, 1.0);
+    getItem(ParticleItem::P_ABUNDANCE)->setLimits(AttLimits::limited(0.0, 1.0));
+    getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
 
     registerGroupProperty(P_DISTRIBUTION, Constants::DistributionGroup);
 
-    registerTag(T_PARTICLES, 0, 1, QStringList() << Constants::ParticleType <<
-                Constants::ParticleCoreShellType << Constants::ParticleCompositionType);
-    setDefaultTag(T_PARTICLES);
+    registerTag(T_PARTICLES, 0, 1, QStringList() << Constants::ParticleType <<
+                Constants::ParticleCoreShellType << Constants::ParticleCompositionType);
+    setDefaultTag(T_PARTICLES);
 
     ComboProperty par_prop;
     registerProperty(P_DISTRIBUTED_PARAMETER, par_prop.getVariant());
     updateParameterList();
     mapper()->setOnChildPropertyChange(
-                [this](ParameterizedItem*,QString)
+                [this](SessionItem*,QString)
     {
         updateParameterList();
     });
@@ -126,7 +126,7 @@ void ParticleDistributionItem::updateParameterList()
 QStringList ParticleDistributionItem::getChildParameterNames() const
 {
     QStringList result;
-    QList<ParameterizedItem *> children = getUnregisteredChildren();
+    QList<SessionItem *> children = getUnregisteredChildren();
     if (children.size() > 1) {
         qDebug() << "ParticleDistributionItem::getChildParameterNames(): "
                  << "More than one child item";
diff --git a/GUI/coregui/Models/ParticleDistributionItem.h b/GUI/coregui/Models/ParticleDistributionItem.h
index 6ff40e83502920d24eca22df328915ae0858443e..cd804d5beaf8cfc5fe0a2e06462aee719bb9a520 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.h
+++ b/GUI/coregui/Models/ParticleDistributionItem.h
@@ -17,20 +17,20 @@
 #define PARTICLEDISTRIBUTIONITEM_H
 
 #include "ParticleDistribution.h"
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
 #include <QStringList>
 
 class ParameterPool;
 
-class BA_CORE_API_ ParticleDistributionItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ ParticleDistributionItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
     static const QString P_DISTRIBUTED_PARAMETER;
     static const QString P_DISTRIBUTION;
     static const QString NO_SELECTION;
-    static const QString T_PARTICLES;
+    static const QString T_PARTICLES;
     explicit ParticleDistributionItem();
     virtual ~ParticleDistributionItem();
 
diff --git a/GUI/coregui/Models/ParticleItem.cpp b/GUI/coregui/Models/ParticleItem.cpp
index f21aa7a958766a92544f27d987d3cf4b1c194bf9..623cabbdf385dfa3a547e4a63c4e49ef2fee2d55 100644
--- a/GUI/coregui/Models/ParticleItem.cpp
+++ b/GUI/coregui/Models/ParticleItem.cpp
@@ -28,23 +28,23 @@ const QString ParticleItem::P_FORM_FACTOR = "Form Factor";
 const QString ParticleItem::P_ABUNDANCE = "Abundance";
 const QString ParticleItem::P_MATERIAL = "Material";
 const QString ParticleItem::P_POSITION = "Position Offset";
-const QString ParticleItem::T_TRANSFORMATION = "Transformation tag";
+const QString ParticleItem::T_TRANSFORMATION = "Transformation tag";
 
 ParticleItem::ParticleItem()
-    : ParameterizedGraphicsItem(Constants::ParticleType)
+    : SessionGraphicsItem(Constants::ParticleType)
 {
     registerGroupProperty(P_FORM_FACTOR, Constants::FormFactorGroup);
     registerProperty(P_MATERIAL,
                      MaterialUtils::getDefaultMaterialProperty().getVariant());
-    registerProperty(P_ABUNDANCE, 1.0)->setLimits(AttLimits::limited(0.0, 1.0));
-    getItem(P_ABUNDANCE)->setDecimals(3);
+    registerProperty(P_ABUNDANCE, 1.0)->setLimits(AttLimits::limited(0.0, 1.0));
+    getItem(P_ABUNDANCE)->setDecimals(3);
     registerGroupProperty(P_POSITION, Constants::VectorType);
     PositionTranslator position_translator;
     ModelPath::addParameterTranslator(position_translator);
 
-//    addToValidChildren(Constants::TransformationType, PortInfo::PORT_0, 1);
-    registerTag(T_TRANSFORMATION, 0, 1, QStringList() << Constants::TransformationType);
-    setDefaultTag(T_TRANSFORMATION);
+//    addToValidChildren(Constants::TransformationType, PortInfo::PORT_0, 1);
+    registerTag(T_TRANSFORMATION, 0, 1, QStringList() << Constants::TransformationType);
+    setDefaultTag(T_TRANSFORMATION);
     RotationTranslator rotation_translator;
     ModelPath::addParameterTranslator(rotation_translator);
 }
@@ -67,26 +67,26 @@ std::unique_ptr<Particle> ParticleItem::createParticle() const
     return P_particle;
 }
 
-//void ParticleItem::setPort(ParameterizedItem::PortInfo::EPorts nport)
-//{
-//    if (parent()) {
-//        if (parent()->modelType() == Constants::ParticleCoreShellType
-//            || parent()->modelType() == Constants::ParticleCompositionType
-//            || parent()->modelType() == Constants::ParticleDistributionType) {
-//            setRegisteredProperty(ParticleItem::P_ABUNDANCE, 1.0);
-//            getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false);
-//            int port = int(this->port());
-//            if (parent()->modelType() == Constants::ParticleCoreShellType) {
-//                auto p_coreshell = static_cast<ParticleCoreShellItem*>(parent());
-//                p_coreshell->notifyChildParticlePortChanged();
-//                if (port == PortInfo::PORT_1) {
-//                    ParameterizedItem *p_position_item = getGroupItem(ParticleItem::P_POSITION);
-//                    p_position_item->setRegisteredProperty(VectorItem::P_X, 0.0);
-//                    p_position_item->setRegisteredProperty(VectorItem::P_Y, 0.0);
-//                    p_position_item->setRegisteredProperty(VectorItem::P_Z, 0.0);
-//                    getItem(ParticleItem::P_POSITION)->setEnabled(false);
-//                }
-//            }
-//        }
-//    }
-//}
+//void ParticleItem::setPort(ParameterizedItem::PortInfo::EPorts nport)
+//{
+//    if (parent()) {
+//        if (parent()->modelType() == Constants::ParticleCoreShellType
+//            || parent()->modelType() == Constants::ParticleCompositionType
+//            || parent()->modelType() == Constants::ParticleDistributionType) {
+//            setRegisteredProperty(ParticleItem::P_ABUNDANCE, 1.0);
+//            getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false);
+//            int port = int(this->port());
+//            if (parent()->modelType() == Constants::ParticleCoreShellType) {
+//                auto p_coreshell = static_cast<ParticleCoreShellItem*>(parent());
+//                p_coreshell->notifyChildParticlePortChanged();
+//                if (port == PortInfo::PORT_1) {
+//                    SessionItem *p_position_item = getGroupItem(ParticleItem::P_POSITION);
+//                    p_position_item->setRegisteredProperty(VectorItem::P_X, 0.0);
+//                    p_position_item->setRegisteredProperty(VectorItem::P_Y, 0.0);
+//                    p_position_item->setRegisteredProperty(VectorItem::P_Z, 0.0);
+//                    getItem(ParticleItem::P_POSITION)->setEnabled(false);
+//                }
+//            }
+//        }
+//    }
+//}
diff --git a/GUI/coregui/Models/ParticleItem.h b/GUI/coregui/Models/ParticleItem.h
index 16f85b5968c3daa2b2266e6360939e1c05879fa0..7676872c78a30a681cb582ca2519809eb309eb39 100644
--- a/GUI/coregui/Models/ParticleItem.h
+++ b/GUI/coregui/Models/ParticleItem.h
@@ -17,11 +17,11 @@
 #define PARTICLEITEM_H
 
 #include "Particle.h"
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
 #include <memory>
 
-class BA_CORE_API_ ParticleItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ ParticleItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
@@ -29,7 +29,7 @@ public:
     static const QString P_ABUNDANCE;
     static const QString P_MATERIAL;
     static const QString P_POSITION;
-    static const QString T_TRANSFORMATION;
+    static const QString T_TRANSFORMATION;
     explicit ParticleItem();
     virtual ~ParticleItem() {}
     std::unique_ptr<Particle> createParticle() const;
diff --git a/GUI/coregui/Models/ParticleLayoutItem.cpp b/GUI/coregui/Models/ParticleLayoutItem.cpp
index b9b0e0604ec94df4f331744fd3ae239a82524266..1158439d37ffab30532cbd26876efdcab51a2c4a 100644
--- a/GUI/coregui/Models/ParticleLayoutItem.cpp
+++ b/GUI/coregui/Models/ParticleLayoutItem.cpp
@@ -24,7 +24,7 @@ const QString ParticleLayoutItem::T_PARTICLES = "Particle Tag";
 const QString ParticleLayoutItem::T_INTERFERENCE = "Interference Tag";
 
 ParticleLayoutItem::ParticleLayoutItem()
-    : ParameterizedGraphicsItem(Constants::ParticleLayoutType)
+    : SessionGraphicsItem(Constants::ParticleLayoutType)
 {
     ComboProperty approx;
     approx << "Decoupling Approximation" << "Size Space Coupling Approximation";
@@ -40,7 +40,7 @@ ParticleLayoutItem::ParticleLayoutItem()
 
     // FIXME: not updated when child get removed
     mapper()->setOnChildPropertyChange(
-                [this](ParameterizedItem *, const QString &)
+                [this](SessionItem *, const QString &)
     {
         for (auto child_item : childItems()) {
             if (child_item->modelType() == Constants::InterferenceFunction2DParaCrystalType
diff --git a/GUI/coregui/Models/ParticleLayoutItem.h b/GUI/coregui/Models/ParticleLayoutItem.h
index b4e1631507ff92d4bd9c55fa470b0d64edb569df..a08fc050bc20d551d777d39cdc65b891e87c47a6 100644
--- a/GUI/coregui/Models/ParticleLayoutItem.h
+++ b/GUI/coregui/Models/ParticleLayoutItem.h
@@ -16,9 +16,9 @@
 #ifndef PARTICLELAYOUTITEM_H
 #define PARTICLELAYOUTITEM_H
 
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
-class BA_CORE_API_ ParticleLayoutItem : public ParameterizedGraphicsItem
+class BA_CORE_API_ ParticleLayoutItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/PropertyAttribute.cpp b/GUI/coregui/Models/PropertyAttribute.cpp
index 14479c4fad51b23962cd9f6b51e7186544b16e12..7a9d82aba1d6e31878381089796883f11d6025c9 100644
--- a/GUI/coregui/Models/PropertyAttribute.cpp
+++ b/GUI/coregui/Models/PropertyAttribute.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "PropertyAttribute.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QDebug>
 
 PropertyAttribute::PropertyAttribute(PropertyAttribute::Appearance appearance,
@@ -170,18 +170,18 @@ PropertyAttribute& PropertyAttribute::setReadOnly()
     return *this;
 }
 
-PropertyAttribute PropertyAttribute::fromItem(ParameterizedItem *item)
-{
-    PropertyAttribute attribute = PropertyAttribute(PropertyAttribute::VISIBLE, item->limits(),
-                                                    item->decimals(), item->displayName(), item->toolTip());
-    if (!item->isVisible())
-        attribute.setHidden();
-    if (!item->isEditable())
-        attribute.setReadOnly();
-    if (!item->isEnabled())
-        attribute.setDisabled();
-    return attribute;
-}
-
+PropertyAttribute PropertyAttribute::fromItem(SessionItem *item)
+{
+    PropertyAttribute attribute = PropertyAttribute(PropertyAttribute::VISIBLE, item->limits(),
+                                                    item->decimals(), item->displayName(), item->toolTip());
+    if (!item->isVisible())
+        attribute.setHidden();
+    if (!item->isEditable())
+        attribute.setReadOnly();
+    if (!item->isEnabled())
+        attribute.setDisabled();
+    return attribute;
+}
+
 
 
diff --git a/GUI/coregui/Models/PropertyAttribute.h b/GUI/coregui/Models/PropertyAttribute.h
index c3c556fcdd84fb915b63f17d3df74c7d0c7b2b38..7fee4426bdf8a90942b544fa04cab1beb0aca68c 100644
--- a/GUI/coregui/Models/PropertyAttribute.h
+++ b/GUI/coregui/Models/PropertyAttribute.h
@@ -21,10 +21,10 @@
 #include "AttLimits.h"
 #include <QMetaType>
 
-class ParameterizedItem;
-
+class SessionItem;
 
-//! Class to handle visual appearance of ParameterizedItem's property in
+
+//! Class to handle visual appearance of SessionItem's property in
 //! different kind of property editors.
 class BA_CORE_API_ PropertyAttribute {
 public:
@@ -77,8 +77,8 @@ public:
     bool isReadOnly() const;
     PropertyAttribute& setReadOnly();
 
-    static PropertyAttribute fromItem(ParameterizedItem* item);
-
+    static PropertyAttribute fromItem(SessionItem* item);
+
 private:
     Appearance m_appearance;
     AttLimits m_limits;
diff --git a/GUI/coregui/Models/PropertyItem.cpp b/GUI/coregui/Models/PropertyItem.cpp
index d93d696a085374d0eeeab9790363e0c60eb79d7b..dede3c27747e829d6fe3d94d34d0e00087fb91f4 100644
--- a/GUI/coregui/Models/PropertyItem.cpp
+++ b/GUI/coregui/Models/PropertyItem.cpp
@@ -16,18 +16,18 @@
 #include "PropertyItem.h"
 
 PropertyItem::PropertyItem()
-    :ParameterizedItem(Constants::PropertyType)
+    : SessionItem(Constants::PropertyType)
 {
 
 }
 
 /*bool PropertyItem::setData(int column, const QVariant &data)
 {
-    if (displayName() == ParameterizedItem::P_NAME) {
+    if (displayName() == SessionItem::P_NAME) {
         if (data.toString().isEmpty())
             return false;
-        if (ParameterizedItem *item = parent()) {
-            if (ParameterizedItem *item_parent = item->parent()) {
+        if (SessionItem *item = parent()) {
+            if (SessionItem *item_parent = item->parent()) {
                 // forbid setting duplicate name
                 if (item_parent->getChildByName(data.toString())) {
                     return false;
@@ -35,5 +35,5 @@ PropertyItem::PropertyItem()
             }
         }
     }
-    return ParameterizedItem::setData(column, data);
+    return SessionItem::setData(column, data);
 }*/
diff --git a/GUI/coregui/Models/PropertyItem.h b/GUI/coregui/Models/PropertyItem.h
index 73fbe1a49cba6641fd383441261cc2e4123f222f..fb7f3d5e9d833caed4e426dabe087e3fc59f593e 100644
--- a/GUI/coregui/Models/PropertyItem.h
+++ b/GUI/coregui/Models/PropertyItem.h
@@ -16,9 +16,9 @@
 #ifndef PROPERTYITEM_H
 #define PROPERTYITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-class BA_CORE_API_ PropertyItem : public ParameterizedItem
+class BA_CORE_API_ PropertyItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/RectangularDetectorItem.cpp b/GUI/coregui/Models/RectangularDetectorItem.cpp
index abae31df1468dd491fdd1ce7f7273ca0ebde76b8..74886d8a9ad0559fa364be9b04920a77b7680f4d 100644
--- a/GUI/coregui/Models/RectangularDetectorItem.cpp
+++ b/GUI/coregui/Models/RectangularDetectorItem.cpp
@@ -61,26 +61,26 @@ const QString RectangularDetectorItem::P_DBEAM_V0 = "v0 (dbeam)";
 const QString RectangularDetectorItem::P_DISTANCE = "Distance";
 
 RectangularDetectorItem::RectangularDetectorItem()
-    : ParameterizedItem(Constants::RectangularDetectorType)
+    : SessionItem(Constants::RectangularDetectorType)
     , m_is_constructed(false)
 {
     // axes parameters
     registerGroupProperty(P_X_AXIS, Constants::BasicAxisType);
-    getGroupItem(P_X_AXIS)->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
-    getGroupItem(P_X_AXIS)->getItem(BasicAxisItem::P_MIN)->setVisible(false);
+    getGroupItem(P_X_AXIS)->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
+    getGroupItem(P_X_AXIS)->getItem(BasicAxisItem::P_MIN)->setVisible(false);
 
     getGroupItem(P_X_AXIS)->setRegisteredProperty(BasicAxisItem::P_MAX, default_detector_width);
-    getGroupItem(P_X_AXIS)->getItem(BasicAxisItem::P_MAX)->setDisplayName(QStringLiteral("Width"));
-    getGroupItem(P_X_AXIS)->getItem(BasicAxisItem::P_MAX)
-            ->setToolTip(QStringLiteral("Width of the detector in mm"));
+    getGroupItem(P_X_AXIS)->getItem(BasicAxisItem::P_MAX)->setDisplayName(QStringLiteral("Width"));
+    getGroupItem(P_X_AXIS)->getItem(BasicAxisItem::P_MAX)
+            ->setToolTip(QStringLiteral("Width of the detector in mm"));
 
     registerGroupProperty(P_Y_AXIS, Constants::BasicAxisType);
-    getGroupItem(P_Y_AXIS)->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
-    getGroupItem(P_Y_AXIS)->getItem(BasicAxisItem::P_MIN)->setVisible(false);
+    getGroupItem(P_Y_AXIS)->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
+    getGroupItem(P_Y_AXIS)->getItem(BasicAxisItem::P_MIN)->setVisible(false);
     getGroupItem(P_Y_AXIS)->setRegisteredProperty(BasicAxisItem::P_MAX, default_detector_height);
-    getGroupItem(P_Y_AXIS)->getItem(BasicAxisItem::P_MAX)->setDisplayName(QStringLiteral("Height"));
-    getGroupItem(P_Y_AXIS)->getItem(BasicAxisItem::P_MAX)
-        ->setToolTip(QStringLiteral("Height of the detector in mm"));
+    getGroupItem(P_Y_AXIS)->getItem(BasicAxisItem::P_MAX)->setDisplayName(QStringLiteral("Height"));
+    getGroupItem(P_Y_AXIS)->getItem(BasicAxisItem::P_MAX)
+        ->setToolTip(QStringLiteral("Height of the detector in mm"));
 
     // resolution function
     registerGroupProperty(P_RESOLUTION_FUNCTION, Constants::ResolutionFunctionGroup);
@@ -102,13 +102,13 @@ RectangularDetectorItem::RectangularDetectorItem()
     registerGroupProperty(P_DIRECTION, Constants::VectorType);
     getGroupItem(P_DIRECTION)->setRegisteredProperty(VectorItem::P_Y, -1.0);
 
-    registerProperty(P_U0, default_detector_width/2.)->setToolTip(tooltip_u0);
-    registerProperty(P_V0, 0.0)->setToolTip(tooltip_v0);
-    registerProperty(P_DBEAM_U0, default_detector_width/2.)->setToolTip(tooltip_dbeam_u0);
-    registerProperty(P_DBEAM_V0, 0.0)->setToolTip(tooltip_dbeam_v0);
+    registerProperty(P_U0, default_detector_width/2.)->setToolTip(tooltip_u0);
+    registerProperty(P_V0, 0.0)->setToolTip(tooltip_v0);
+    registerProperty(P_DBEAM_U0, default_detector_width/2.)->setToolTip(tooltip_dbeam_u0);
+    registerProperty(P_DBEAM_V0, 0.0)->setToolTip(tooltip_dbeam_v0);
 
     registerProperty(P_DISTANCE, default_detector_distance)
-        ->setToolTip(QStringLiteral("Distance in [mm] from the sample origin to the detector plane"));
+        ->setToolTip(QStringLiteral("Distance in [mm] from the sample origin to the detector plane"));
 
     update_properties_appearance();
     m_is_constructed=true;
@@ -205,41 +205,41 @@ void RectangularDetectorItem::update_properties_appearance()
     QStringList prop_list;
     prop_list << P_NORMAL << P_DIRECTION << P_U0 << P_V0 << P_DBEAM_U0 << P_DBEAM_V0 << P_DISTANCE;
     foreach(auto prop, prop_list) {
-        getItem(prop)->setVisible(false);
+        getItem(prop)->setVisible(false);
     }
 
     // enabling some properties back, depending from detector alignment mode
     if (alignment.getValue() == Constants::ALIGNMENT_GENERIC) {
-        getItem(P_NORMAL)->setVisible(true);
-        getItem(P_DIRECTION)->setVisible(true);
-        getItem(P_U0)->setVisible(true);
-        getItem(P_U0)->setToolTip(tooltip_u0);
-        getItem(P_V0)->setVisible(true);
-        getItem(P_V0)->setToolTip(tooltip_v0);
+        getItem(P_NORMAL)->setVisible(true);
+        getItem(P_DIRECTION)->setVisible(true);
+        getItem(P_U0)->setVisible(true);
+        getItem(P_U0)->setToolTip(tooltip_u0);
+        getItem(P_V0)->setVisible(true);
+        getItem(P_V0)->setToolTip(tooltip_v0);
 
     } else if (alignment.getValue() == Constants::ALIGNMENT_TO_SAMPLE) {
-        getItem(P_DISTANCE)->setVisible(true);
-        getItem(P_U0)->setVisible(true);
-        getItem(P_U0)->setToolTip(tooltip_samplex_u0);
-        getItem(P_V0)->setVisible(true);
-        getItem(P_V0)->setToolTip(tooltip_samplex_v0);
+        getItem(P_DISTANCE)->setVisible(true);
+        getItem(P_U0)->setVisible(true);
+        getItem(P_U0)->setToolTip(tooltip_samplex_u0);
+        getItem(P_V0)->setVisible(true);
+        getItem(P_V0)->setToolTip(tooltip_samplex_v0);
 
     } else if (alignment.getValue() == Constants::ALIGNMENT_TO_DIRECT_BEAM) {
-        getItem(P_DISTANCE)->setVisible(true);
-        getItem(P_DBEAM_U0)->setVisible(true);
-        getItem(P_DBEAM_V0)->setVisible(true);
+        getItem(P_DISTANCE)->setVisible(true);
+        getItem(P_DBEAM_U0)->setVisible(true);
+        getItem(P_DBEAM_V0)->setVisible(true);
 
     } else if (alignment.getValue() == Constants::ALIGNMENT_TO_REFLECTED_BEAM) {
-        getItem(P_DISTANCE)->setVisible(true);
-        getItem(P_U0)->setVisible(true);
-        getItem(P_U0)->setToolTip(tooltip_refbeam_u0);
-        getItem(P_V0)->setVisible(true);
-        getItem(P_V0)->setToolTip(tooltip_refbeam_v0);
+        getItem(P_DISTANCE)->setVisible(true);
+        getItem(P_U0)->setVisible(true);
+        getItem(P_U0)->setToolTip(tooltip_refbeam_u0);
+        getItem(P_V0)->setVisible(true);
+        getItem(P_V0)->setToolTip(tooltip_refbeam_v0);
 
     } else if (alignment.getValue() == Constants::ALIGNMENT_TO_REFLECTED_BEAM_DPOS) {
-        getItem(P_DISTANCE)->setVisible(true);
-        getItem(P_DBEAM_U0)->setVisible(true);
-        getItem(P_DBEAM_V0)->setVisible(true);
+        getItem(P_DISTANCE)->setVisible(true);
+        getItem(P_DBEAM_U0)->setVisible(true);
+        getItem(P_DBEAM_V0)->setVisible(true);
     }
 }
 
diff --git a/GUI/coregui/Models/RectangularDetectorItem.h b/GUI/coregui/Models/RectangularDetectorItem.h
index b2ba4d8fdabe9721325a3b325ba402226565552b..e3efc5080775a38ae16def4855ee1847766df642 100644
--- a/GUI/coregui/Models/RectangularDetectorItem.h
+++ b/GUI/coregui/Models/RectangularDetectorItem.h
@@ -16,7 +16,7 @@
 #ifndef RECTANGULARDETECTORITEM_H
 #define RECTANGULARDETECTORITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "Vectors3D.h"
 #include <memory>
 
@@ -24,7 +24,7 @@ class IDetector2D;
 class IResolutionFunction2D;
 
 
-class RectangularDetectorItem : public ParameterizedItem
+class RectangularDetectorItem : public SessionItem
 {
 public:
     static const QString P_X_AXIS;
diff --git a/GUI/coregui/Models/RefractiveIndexItem.cpp b/GUI/coregui/Models/RefractiveIndexItem.cpp
index 4df401d6d92011dff8213127e39293a80a6568cb..9a7e99dd9bb1132eadffc0be4c69854645b39d78 100644
--- a/GUI/coregui/Models/RefractiveIndexItem.cpp
+++ b/GUI/coregui/Models/RefractiveIndexItem.cpp
@@ -22,7 +22,7 @@ const QString RefractiveIndexItem::P_BETA = "beta";
 
 
 RefractiveIndexItem::RefractiveIndexItem()
-    : ParameterizedItem(Constants::RefractiveIndexType)
+    : SessionItem(Constants::RefractiveIndexType)
 {
     ScientificDoubleProperty delta(0.0);
     registerProperty(P_DELTA, delta.getVariant());
@@ -31,7 +31,7 @@ RefractiveIndexItem::RefractiveIndexItem()
     registerProperty(P_BETA, beta.getVariant());
 }
 
-QString RefractiveIndexItem::itemLabel() const
+QString RefractiveIndexItem::itemLabel() const
 {
     return QString("(1 - %1, %2)").arg(getDelta()).arg(getBeta());
 }
diff --git a/GUI/coregui/Models/RefractiveIndexItem.h b/GUI/coregui/Models/RefractiveIndexItem.h
index c43dc5c27fd07c45202c773aa0810ad73ce923d3..7816e5236ce8a0652b257ba80b0f510066190feb 100644
--- a/GUI/coregui/Models/RefractiveIndexItem.h
+++ b/GUI/coregui/Models/RefractiveIndexItem.h
@@ -16,9 +16,9 @@
 #ifndef REFRACTIVEINDEXITEM_H
 #define REFRACTIVEINDEXITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-class BA_CORE_API_ RefractiveIndexItem : public ParameterizedItem
+class BA_CORE_API_ RefractiveIndexItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -26,7 +26,7 @@ public:
     static const QString P_BETA;
     explicit RefractiveIndexItem();
     virtual ~RefractiveIndexItem(){}
-    virtual QString itemLabel() const;
+    virtual QString itemLabel() const;
 
     double getDelta() const;
     void setDelta(double delta);
diff --git a/GUI/coregui/Models/ResolutionFunctionItems.cpp b/GUI/coregui/Models/ResolutionFunctionItems.cpp
index b93694f0f038df8fbfaa5decb606f612033bfe8d..a83565dba35313ae405e7778942d54b9e6a1e79c 100644
--- a/GUI/coregui/Models/ResolutionFunctionItems.cpp
+++ b/GUI/coregui/Models/ResolutionFunctionItems.cpp
@@ -19,7 +19,7 @@
 #include <QDebug>
 
 ResolutionFunctionItem::ResolutionFunctionItem(const QString name)
-    : ParameterizedItem(name)
+    : SessionItem(name)
 {
 }
 
@@ -44,12 +44,12 @@ const QString ResolutionFunction2DGaussianItem::P_SIGMA_Y = "Sigma Y";
 ResolutionFunction2DGaussianItem::ResolutionFunction2DGaussianItem()
     : ResolutionFunctionItem(Constants::ResolutionFunction2DGaussianType)
 {
-    registerProperty(P_SIGMA_X, 0.02);
-    getItem(P_SIGMA_X)->setLimits(AttLimits::lowerLimited(0.0));
-    getItem(P_SIGMA_X)->setDecimals(3);
-    registerProperty(P_SIGMA_Y, 0.02);
-    getItem(P_SIGMA_Y)->setLimits(AttLimits::lowerLimited(0.0));
-    getItem(P_SIGMA_Y)->setDecimals(3);
+    registerProperty(P_SIGMA_X, 0.02);
+    getItem(P_SIGMA_X)->setLimits(AttLimits::lowerLimited(0.0));
+    getItem(P_SIGMA_X)->setDecimals(3);
+    registerProperty(P_SIGMA_Y, 0.02);
+    getItem(P_SIGMA_Y)->setLimits(AttLimits::lowerLimited(0.0));
+    getItem(P_SIGMA_Y)->setDecimals(3);
 }
 
 IResolutionFunction2D *ResolutionFunction2DGaussianItem::createResolutionFunction(double scale) const
diff --git a/GUI/coregui/Models/ResolutionFunctionItems.h b/GUI/coregui/Models/ResolutionFunctionItems.h
index fb4e23a645052e8a91a2f34de1809c90a598438c..f8f484025fa5c4bff9cfa8e37e158f310d79e65a 100644
--- a/GUI/coregui/Models/ResolutionFunctionItems.h
+++ b/GUI/coregui/Models/ResolutionFunctionItems.h
@@ -16,11 +16,11 @@
 #ifndef RESOLUTIONFUNCTIONITEMS_H
 #define RESOLUTIONFUNCTIONITEMS_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "ResolutionFunction2DGaussian.h"
 
 
-class BA_CORE_API_ ResolutionFunctionItem : public ParameterizedItem
+class BA_CORE_API_ ResolutionFunctionItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/RotationItems.h b/GUI/coregui/Models/RotationItems.h
index 4134376963b841bc9e8599e635e0675c565e89dc..fbe11daf81e310543b1266348ec58a0e5e2ccc8b 100644
--- a/GUI/coregui/Models/RotationItems.h
+++ b/GUI/coregui/Models/RotationItems.h
@@ -16,14 +16,14 @@
 #ifndef ROTATIONITEMS_H
 #define ROTATIONITEMS_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "Rotations.h"
 
-class RotationItem : public ParameterizedItem
+class RotationItem : public SessionItem
 {
     Q_OBJECT
 public:
-    explicit RotationItem(const QString name) : ParameterizedItem(name){}
+    explicit RotationItem(const QString name) : SessionItem(name){}
     virtual IRotation *createRotation() const{ return 0;}
     virtual ~RotationItem(){}
 };
diff --git a/GUI/coregui/Models/SampleModel.cpp b/GUI/coregui/Models/SampleModel.cpp
index f6f0f522a0f68a4ea4f80a426dccec2ad3fe6c0b..7c3e3b4ba116fe7b072bfd40d4046fe14e8f05eb 100644
--- a/GUI/coregui/Models/SampleModel.cpp
+++ b/GUI/coregui/Models/SampleModel.cpp
@@ -26,7 +26,7 @@ SampleModel::SampleModel(QObject *parent) : SessionModel(SessionXML::SampleModel
     setObjectName(SessionXML::SampleModelTag);
 }
 
-SampleModel *SampleModel::createCopy(ParameterizedItem *parent)
+SampleModel *SampleModel::createCopy(SessionItem *parent)
 {
     SampleModel *result = new SampleModel();
     result->initFrom(this, parent);
@@ -34,7 +34,7 @@ SampleModel *SampleModel::createCopy(ParameterizedItem *parent)
 }
 
 //! returns list of MultiLayers defined in the model
-QMap<QString, ParameterizedItem *> SampleModel::getSampleMap() const
+QMap<QString, SessionItem *> SampleModel::getSampleMap() const
 {
     return getTopItemMap(Constants::MultiLayerType);
 }
@@ -66,7 +66,7 @@ void SampleModel::exploreForMaterials(const QModelIndex &parentIndex)
 
     for (int i_row = 0; i_row < rowCount(parentIndex); ++i_row) {
         QModelIndex itemIndex = index(i_row, 0, parentIndex);
-        if (ParameterizedItem *item = itemForIndex(itemIndex)) {
+        if (SessionItem *item = itemForIndex(itemIndex)) {
             if (item->modelType() == Constants::LayerType
                 || item->modelType() == Constants::ParticleType) {
                 qDebug() << " found item" << item->modelType();
@@ -78,7 +78,7 @@ void SampleModel::exploreForMaterials(const QModelIndex &parentIndex)
                     // MaterialProperty of the layer corresponds to the material which just has been changed
                     // To trigger color change in ILayerView we have to trigger propertyChanged
                     //emit item->propertyChanged();
-                    item->getItem(LayerItem::P_MATERIAL)->emitValueChanged();
+                    item->getItem(LayerItem::P_MATERIAL)->emitValueChanged();
                 }
             }
         } else {
diff --git a/GUI/coregui/Models/SampleModel.h b/GUI/coregui/Models/SampleModel.h
index 02ea0a804600ed66619ef297e913375b0e3e31b3..183913b625dd40b10e18aab687f0effcb5cf9be9 100644
--- a/GUI/coregui/Models/SampleModel.h
+++ b/GUI/coregui/Models/SampleModel.h
@@ -29,9 +29,9 @@ public:
     explicit SampleModel(QObject *parent = 0);
     virtual ~SampleModel(){}
 
-    virtual SampleModel *createCopy(ParameterizedItem *parent = 0);
+    virtual SampleModel *createCopy(SessionItem *parent = 0);
 
-    QMap<QString, ParameterizedItem *> getSampleMap() const;
+    QMap<QString, SessionItem *> getSampleMap() const;
 
     MultiLayerItem *getMultiLayerItem(const QString &item_name=QString());
 
diff --git a/GUI/coregui/Models/SampleValidator.cpp b/GUI/coregui/Models/SampleValidator.cpp
index 9a4535b1418756e7fad7fa3a3645d440f0a825d8..f5425633a5ee29601ae2f7a8a1a482de67aef59e 100644
--- a/GUI/coregui/Models/SampleValidator.cpp
+++ b/GUI/coregui/Models/SampleValidator.cpp
@@ -30,7 +30,7 @@ void SampleValidator::iterateSampleModel(SampleModel *sampleModel, const QModelI
     for( int i_row = 0; i_row < sampleModel->rowCount( parentIndex ); ++i_row) {
         QModelIndex itemIndex = sampleModel->index( i_row, 0, parentIndex );
 
-        if (ParameterizedItem *item = sampleModel->itemForIndex(itemIndex)){
+        if (SessionItem *item = sampleModel->itemForIndex(itemIndex)){
             qDebug() << item->modelType();
             QString diagnosis;
             if(item->modelType() == Constants::MultiLayerType) {
@@ -54,7 +54,7 @@ void SampleValidator::iterateSampleModel(SampleModel *sampleModel, const QModelI
 }
 
 
-QString SampleValidator::validateMultiLayerItem(ParameterizedItem *item)
+QString SampleValidator::validateMultiLayerItem(SessionItem *item)
 {
     QString result;
     if(!item->childItems().size()) {
@@ -68,11 +68,11 @@ QString SampleValidator::validateMultiLayerItem(ParameterizedItem *item)
 }
 
 
-QString SampleValidator::validateParticleLayoutItem(ParameterizedItem *item)
+QString SampleValidator::validateParticleLayoutItem(SessionItem *item)
 {
     QString result;
     bool particles_found(false);
-    QVector<ParameterizedItem *> children = item->childItems();
+    QVector<SessionItem *> children = item->childItems();
     for (int i=0; i<children.size(); ++i) {
         if (children[i]->modelType() == Constants::ParticleType
             || children[i]->modelType() == Constants::ParticleCoreShellType
@@ -87,11 +87,11 @@ QString SampleValidator::validateParticleLayoutItem(ParameterizedItem *item)
     return result;
 }
 
-QString SampleValidator::validateParticleCoreShellItem(ParameterizedItem *item)
+QString SampleValidator::validateParticleCoreShellItem(SessionItem *item)
 {
     QString result;
     int number_of_subparticles = 0;
-    QVector<ParameterizedItem*> children = item->childItems();
+    QVector<SessionItem*> children = item->childItems();
     for (int i=0; i<children.size(); ++i) {
         if (children[i]->modelType()==Constants::ParticleType) {
             number_of_subparticles++;
diff --git a/GUI/coregui/Models/SampleValidator.h b/GUI/coregui/Models/SampleValidator.h
index acdb9ac31b197e6100855b4e87d4c6986087c461..b471b357a92bf5e40b6fbac39906ddc3c8e84fc2 100644
--- a/GUI/coregui/Models/SampleValidator.h
+++ b/GUI/coregui/Models/SampleValidator.h
@@ -20,7 +20,7 @@
 #include <QModelIndex>
 
 class SampleModel;
-class ParameterizedItem;
+class SessionItem;
 
 //! Validates SampleModel for MultiLayerItem suitable for simulation
 class SampleValidator
@@ -35,9 +35,9 @@ public:
 private:
     void iterateSampleModel(SampleModel *sampleModel, const QModelIndex &parentIndex = QModelIndex());
 
-    QString validateMultiLayerItem(ParameterizedItem *item);
-    QString validateParticleLayoutItem(ParameterizedItem *item);
-    QString validateParticleCoreShellItem(ParameterizedItem *item);
+    QString validateMultiLayerItem(SessionItem *item);
+    QString validateParticleLayoutItem(SessionItem *item);
+    QString validateParticleCoreShellItem(SessionItem *item);
 
     bool m_valid_sample;
     QString m_validation_message;
diff --git a/GUI/coregui/Models/ScientificDoubleProperty.h b/GUI/coregui/Models/ScientificDoubleProperty.h
index 4ffda4124ed42825a712b8552eb76df74be1b221..a09b89069dd0c8eef623cccfa3d95193066f6be5 100644
--- a/GUI/coregui/Models/ScientificDoubleProperty.h
+++ b/GUI/coregui/Models/ScientificDoubleProperty.h
@@ -21,7 +21,7 @@
 #include <QString>
 #include <QVariant>
 
-//! The ScientificDoubleProperty for ParameterizedItem and PropertyEditor
+//! The ScientificDoubleProperty for SessionItem and PropertyEditor
 //!
 //! The reason is to have simple editor for doubles in scientific notation
 //! in PropertyEditor instead of inconvenient QDoubleSpinBox
diff --git a/GUI/coregui/Models/ParameterizedGraphicsItem.cpp b/GUI/coregui/Models/SessionGraphicsItem.cpp
similarity index 63%
rename from GUI/coregui/Models/ParameterizedGraphicsItem.cpp
rename to GUI/coregui/Models/SessionGraphicsItem.cpp
index 9e771797e8c19b1b4a266ea7af1fa5286ccdfb91..921e9af758eab38feacec8f200af8e9886f7a145 100644
--- a/GUI/coregui/Models/ParameterizedGraphicsItem.cpp
+++ b/GUI/coregui/Models/SessionGraphicsItem.cpp
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      coregui/Models/ParameterizedGraphicsItem.cpp
-//! @brief     Implements class ParameterizedGraphicsItem
+//! @file      coregui/Models/SessionGraphicsItem.cpp
+//! @brief     Implements class SessionGraphicsItem
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,17 +13,17 @@
 //
 // ************************************************************************** //
 
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 
 
-const QString ParameterizedGraphicsItem::P_XPOS = "xpos";
-const QString ParameterizedGraphicsItem::P_YPOS = "ypos";
+const QString SessionGraphicsItem::P_XPOS = "xpos";
+const QString SessionGraphicsItem::P_YPOS = "ypos";
 
 
-ParameterizedGraphicsItem::ParameterizedGraphicsItem(const QString &model_type)
-    : ParameterizedItem(model_type)
+SessionGraphicsItem::SessionGraphicsItem(const QString &model_type)
+    : SessionItem(model_type)
 {
-    registerProperty(P_XPOS, qreal(0.0))->setVisible(false);
-    registerProperty(P_YPOS, qreal(0.0))->setVisible(false);
+    registerProperty(P_XPOS, qreal(0.0))->setVisible(false);
+    registerProperty(P_YPOS, qreal(0.0))->setVisible(false);
 }
 
diff --git a/GUI/coregui/Models/ParameterizedGraphicsItem.h b/GUI/coregui/Models/SessionGraphicsItem.h
similarity index 64%
rename from GUI/coregui/Models/ParameterizedGraphicsItem.h
rename to GUI/coregui/Models/SessionGraphicsItem.h
index d7241162a440242cc90ca8f02499d406e12140b8..b9d3a3d4d9b661d3f3a54a12eebdee53d3b35425 100644
--- a/GUI/coregui/Models/ParameterizedGraphicsItem.h
+++ b/GUI/coregui/Models/SessionGraphicsItem.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      coregui/Models/ParameterizedGraphicsItem.h
-//! @brief     Defines class ParameterizedGraphicsItem
+//! @file      coregui/Models/SessionGraphicsItem.h
+//! @brief     Defines class SessionGraphicsItem
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,14 +13,14 @@
 //
 // ************************************************************************** //
 
-#ifndef PARAMETERIZEDGRAPHICSITEM_h
-#define PARAMETERIZEDGRAPHICSITEM_h
+#ifndef SESSIONGRAPHICSITEM_h
+#define SESSIONGRAPHICSITEM_h
 
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
 
-class BA_CORE_API_ ParameterizedGraphicsItem : public ParameterizedItem
+class BA_CORE_API_ SessionGraphicsItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -28,7 +28,7 @@ public:
     static const QString P_YPOS;
 
 protected:
-    explicit ParameterizedGraphicsItem(const QString &model_type=QString());
+    explicit SessionGraphicsItem(const QString &model_type=QString());
 };
 
 #endif
diff --git a/GUI/coregui/Models/ParameterizedItem.cpp b/GUI/coregui/Models/SessionItem.cpp
similarity index 75%
rename from GUI/coregui/Models/ParameterizedItem.cpp
rename to GUI/coregui/Models/SessionItem.cpp
index 248bbe32af6f542143e11670f3c7c5f88d2530ed..0088bc70c378ea424e3ea747b1a5a2a73d85a038 100644
--- a/GUI/coregui/Models/ParameterizedItem.cpp
+++ b/GUI/coregui/Models/SessionItem.cpp
@@ -3,7 +3,7 @@
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
 //! @file      coregui/Models/ParameterizedItem.cpp
-//! @brief     Implements class ParameterizedItem
+//! @brief     Implements class SessionItem
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,7 +13,7 @@
 //
 // ************************************************************************** //
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "SessionModel.h"
 #include "GroupPropertyRegistry.h"
 #include "GroupProperty.h"
@@ -36,9 +36,9 @@ public:
     }
 };
 
-const QString ParameterizedItem::P_NAME = "Name";
+const QString SessionItem::P_NAME = "Name";
 
-ParameterizedItem::ParameterizedItem(QString modelType)
+SessionItem::SessionItem(QString modelType)
     : mp_parent(0)
     , m_model(0)
 {
@@ -49,11 +49,11 @@ ParameterizedItem::ParameterizedItem(QString modelType)
 }
 
 // internal
-ParameterizedItem::~ParameterizedItem()
+SessionItem::~SessionItem()
 {
-    QVector<ParameterizedItem*>::const_iterator it;
+    QVector<SessionItem*>::const_iterator it;
     for (it = m_children.constBegin(); it != m_children.constEnd(); ++it) {
-        ParameterizedItem *child = *it;
+        SessionItem *child = *it;
         if (child)
             child->setModel(nullptr);
         delete child;
@@ -64,7 +64,7 @@ ParameterizedItem::~ParameterizedItem()
 }
 
 // internal
-void ParameterizedItem::childDeleted(ParameterizedItem *child)
+void SessionItem::childDeleted(SessionItem *child)
 {
     int index = rowOfChild(child);
     Q_ASSERT(index != -1);
@@ -72,14 +72,14 @@ void ParameterizedItem::childDeleted(ParameterizedItem *child)
 }
 
 // internal
-void ParameterizedItem::setParentAndModel(ParameterizedItem *parent, SessionModel *model)
+void SessionItem::setParentAndModel(SessionItem *parent, SessionModel *model)
 {
     setModel(model);
     mp_parent = parent;
 }
 
 // internal
-void ParameterizedItem::setModel(SessionModel *model)
+void SessionItem::setModel(SessionModel *model)
 {
     m_model = model;
     if (m_mapper) {
@@ -92,7 +92,7 @@ void ParameterizedItem::setModel(SessionModel *model)
 }
 
 // protected
-bool ParameterizedItem::registerTag(QString name, int min, int max, QStringList modelTypes)
+bool SessionItem::registerTag(QString name, int min, int max, QStringList modelTypes)
 {
     // max: -1 -> no limits
     // min = max = 1 -> fixed
@@ -105,7 +105,7 @@ bool ParameterizedItem::registerTag(QString name, int min, int max, QStringList
 }
 
 // protected
-SessionTagInfo ParameterizedItem::getTagInfo(const QString &name) const
+SessionTagInfo SessionItem::getTagInfo(const QString &name) const
 {
     QVector<SessionTagInfo>::const_iterator it;
     for (it = m_tags.constBegin(); it != m_tags.constEnd(); ++it) {
@@ -119,7 +119,7 @@ SessionTagInfo ParameterizedItem::getTagInfo(const QString &name) const
 
 
 // internal
-bool ParameterizedItem::insertItem(int row, ParameterizedItem *item, const QString &tag)
+bool SessionItem::insertItem(int row, SessionItem *item, const QString &tag)
 {
     SessionTagInfo tagInfo = getTagInfo(tag);
     if (!tagInfo.isValid())
@@ -161,7 +161,7 @@ bool ParameterizedItem::insertItem(int row, ParameterizedItem *item, const QStri
     return true;
 }
 
-ParameterizedItem *ParameterizedItem::takeItem(int row, const QString &tag)
+SessionItem *SessionItem::takeItem(int row, const QString &tag)
 {
     SessionTagInfo tagInfo = getTagInfo(tag);
     if (!tagInfo.isValid())
@@ -174,7 +174,7 @@ ParameterizedItem *ParameterizedItem::takeItem(int row, const QString &tag)
     Q_ASSERT(index >= 0 && index <= m_children.size());
     if (m_model)
             m_model->beginRemoveRows(this->index(),index, index);
-    ParameterizedItem *result = m_children.takeAt(index);
+    SessionItem *result = m_children.takeAt(index);
     result->setParentAndModel(nullptr, nullptr);
 
     QVector<SessionTagInfo>::iterator it;
@@ -190,9 +190,9 @@ ParameterizedItem *ParameterizedItem::takeItem(int row, const QString &tag)
     return result;
 }
 
-QString ParameterizedItem::tagFromItem(const ParameterizedItem *item) const
+QString SessionItem::tagFromItem(const SessionItem *item) const
 {
-    int index = m_children.indexOf(const_cast<ParameterizedItem*>(item));
+    int index = m_children.indexOf(const_cast<SessionItem*>(item));
     if (index == -1)
         return QString();
     QVector<SessionTagInfo>::const_iterator it;
@@ -206,7 +206,7 @@ QString ParameterizedItem::tagFromItem(const ParameterizedItem *item) const
     }
 }
 
-QVector<int> ParameterizedItem::getRoles() const
+QVector<int> SessionItem::getRoles() const
 {
     QVector<int> result;
     QVector<SessionItemData>::const_iterator it;
@@ -217,7 +217,7 @@ QVector<int> ParameterizedItem::getRoles() const
 }
 
 // internal
-int ParameterizedItem::tagStartIndex(const QString &name) const
+int SessionItem::tagStartIndex(const QString &name) const
 {
     int index = 0;
     QVector<SessionTagInfo>::const_iterator it;
@@ -232,7 +232,7 @@ int ParameterizedItem::tagStartIndex(const QString &name) const
     return -1;
 }
 
-ParameterizedItem *ParameterizedItem::getItem(QString tag, int index) const
+SessionItem *SessionItem::getItem(QString tag, int index) const
 {
     if (tag.isEmpty())
         tag = defaultTag();
@@ -248,18 +248,18 @@ ParameterizedItem *ParameterizedItem::getItem(QString tag, int index) const
     return m_children[acc_index];
 }
 
-QVector<ParameterizedItem *> ParameterizedItem::getItems(QString tag) const
+QVector<SessionItem *> SessionItem::getItems(QString tag) const
 {
     if (tag.isEmpty())
         tag = defaultTag();
     SessionTagInfo tagInfo = getTagInfo(tag);
     if (!tagInfo.isValid())
-        return QVector<ParameterizedItem*>();
+        return QVector<SessionItem*>();
     int index = tagStartIndex(tag);
     Q_ASSERT(index >= 0 && index < m_children.size());
     return m_children.mid(index, tagInfo.childCount);
 }
-void ParameterizedItem::changeFlags(bool enabled, int flag)
+void SessionItem::changeFlags(bool enabled, int flag)
 {
     int flags = this->flags();
     if (enabled) {
@@ -270,7 +270,7 @@ void ParameterizedItem::changeFlags(bool enabled, int flag)
     setData(SessionModel::FlagRole, flags);
 }
 
-int ParameterizedItem::flags() const
+int SessionItem::flags() const
 {
     QVariant flags = data(SessionModel::FlagRole);
     if (!flags.isValid())
@@ -281,7 +281,7 @@ int ParameterizedItem::flags() const
 
 
 
-QVariant ParameterizedItem::data(int role) const
+QVariant SessionItem::data(int role) const
 {
     role = (role == Qt::EditRole) ? Qt::DisplayRole : role;
     QVector<SessionItemData>::const_iterator it;
@@ -292,7 +292,7 @@ QVariant ParameterizedItem::data(int role) const
     return QVariant();
 }
 
-bool ParameterizedItem::setData(int role, const QVariant &value)
+bool SessionItem::setData(int role, const QVariant &value)
 {
     role = (role == Qt::EditRole) ? Qt::DisplayRole : role;
     QVector<SessionItemData>::iterator it;
@@ -321,7 +321,7 @@ bool ParameterizedItem::setData(int role, const QVariant &value)
 
 
 
-void ParameterizedItem::emitValueChanged(int role)
+void SessionItem::emitValueChanged(int role)
 {
     if (m_model) {
         QModelIndex index = m_model->indexOfItem(this);
@@ -329,17 +329,17 @@ void ParameterizedItem::emitValueChanged(int role)
     }
 }
 
-QVariant ParameterizedItem::value() const
+QVariant SessionItem::value() const
 {
     return data(Qt::DisplayRole);
 }
 
-bool ParameterizedItem::setValue(QVariant value)
+bool SessionItem::setValue(QVariant value)
 {
     return setData(Qt::DisplayRole, value);
 }
 
-QString ParameterizedItem::itemName() const
+QString SessionItem::itemName() const
 {
     if (isRegisteredProperty(P_NAME)) {
         return getRegisteredProperty(P_NAME).toString();
@@ -348,7 +348,7 @@ QString ParameterizedItem::itemName() const
     }
 }
 
-void ParameterizedItem::setItemName(const QString &name)
+void SessionItem::setItemName(const QString &name)
 {
     if (isRegisteredProperty(P_NAME)) {
         setRegisteredProperty(P_NAME, name);
@@ -357,7 +357,7 @@ void ParameterizedItem::setItemName(const QString &name)
     }
 }
 
-QString ParameterizedItem::displayName() const
+QString SessionItem::displayName() const
 {
     if (mp_parent) {
         int index = mp_parent->getCopyNumberOfChild(this);
@@ -369,68 +369,68 @@ QString ParameterizedItem::displayName() const
     return data(SessionModel::DisplayNameRole).toString();
 }
 
-QString ParameterizedItem::modelType() const
+QString SessionItem::modelType() const
 {
     return data(SessionModel::ModelTypeRole).toString();
 }
 
-QString ParameterizedItem::itemLabel() const
+QString SessionItem::itemLabel() const
 {
     return QString("");
 }
 
-SessionModel *ParameterizedItem::model() const
+SessionModel *SessionItem::model() const
 {
     return m_model;
 }
 
-QModelIndex ParameterizedItem::index() const
+QModelIndex SessionItem::index() const
 {
     if (m_model) {
-        return m_model->indexOfItem(const_cast<ParameterizedItem*>(this));
+        return m_model->indexOfItem(const_cast<SessionItem*>(this));
     }
     return QModelIndex();
 }
 
-ParameterizedItem *ParameterizedItem::parent() const
+SessionItem *SessionItem::parent() const
 {
     return mp_parent;
 }
 
-int ParameterizedItem::childItemCount() const
+int SessionItem::childItemCount() const
 {
     return m_children.count();
 }
 
-ParameterizedItem *ParameterizedItem::childAt(int row) const
+SessionItem *SessionItem::childAt(int row) const
 {
     return m_children.value(row, nullptr);
 }
 
-int ParameterizedItem::rowOfChild(ParameterizedItem *child) const
+int SessionItem::rowOfChild(SessionItem *child) const
 {
     return m_children.indexOf(child);
 }
 
-int ParameterizedItem::childNumber() const
+int SessionItem::childNumber() const
 {
     if (mp_parent)
-        return mp_parent->rowOfChild(const_cast<ParameterizedItem*>(this));
+        return mp_parent->rowOfChild(const_cast<SessionItem*>(this));
 
     return -1;
 }
 
-bool ParameterizedItem::hasChildItems() const
+bool SessionItem::hasChildItems() const
 {
     return !m_children.isEmpty();
 }
 
-QVector<ParameterizedItem *> ParameterizedItem::childItems() const
+QVector<SessionItem *> SessionItem::childItems() const
 {
     return m_children;
 }
 
-ParameterizedItem *ParameterizedItem::getChildOfType(const QString &type) const
+SessionItem *SessionItem::getChildOfType(const QString &type) const
 {
     for (auto child : m_children) {
         if (child->modelType() == type) return child;
@@ -438,7 +438,7 @@ ParameterizedItem *ParameterizedItem::getChildOfType(const QString &type) const
     return nullptr;
 }
 
-ParameterizedItem *ParameterizedItem::getChildByName(const QString &name) const
+SessionItem *SessionItem::getChildByName(const QString &name) const
 {
     for (auto child : m_children) {
         if (child->itemName() == name) return child;
@@ -446,9 +446,9 @@ ParameterizedItem *ParameterizedItem::getChildByName(const QString &name) const
     return nullptr;
 }
 
-QList<ParameterizedItem *> ParameterizedItem::getChildrenOfType(const QString &model_type) const
+QList<SessionItem *> SessionItem::getChildrenOfType(const QString &model_type) const
 {
-    QList<ParameterizedItem *> result;
+    QList<SessionItem *> result;
     for (auto child : m_children) {
         if (child->modelType() == model_type)
             result.append(child);
@@ -456,9 +456,9 @@ QList<ParameterizedItem *> ParameterizedItem::getChildrenOfType(const QString &m
     return result;
 }
 
-QList<ParameterizedItem *> ParameterizedItem::getUnregisteredChildren() const
+QList<SessionItem *> SessionItem::getUnregisteredChildren() const
 {
-    QList<ParameterizedItem *> result;
+    QList<SessionItem *> result;
     for (auto child : m_children) {
         if (!isRegisteredProperty(child->itemName()))
             result.append(child);
@@ -466,7 +466,7 @@ QList<ParameterizedItem *> ParameterizedItem::getUnregisteredChildren() const
     return result;
 }
 
-void ParameterizedItem::insertChildItem(int row, ParameterizedItem *item, const QString tag)
+void SessionItem::insertChildItem(int row, SessionItem *item, const QString tag)
 {
     SessionTagInfo tagInfo = getTagInfo(tag.isEmpty() ? defaultTag() : tag);
     if (!tagInfo.isValid())
@@ -476,7 +476,7 @@ void ParameterizedItem::insertChildItem(int row, ParameterizedItem *item, const
 //    item->mp_parent = this;
 //    item->setModel(m_model);
 
-//    qDebug() << "IIIII ParameterizedItem::insertChildItem this" << this << this->modelType() << this->itemName() << "itemToInsert" << item << item->modelType() << item->itemName();
+//    qDebug() << "IIIII SessionItem::insertChildItem this" << this << this->modelType() << this->itemName() << "itemToInsert" << item << item->modelType() << item->itemName();
 
 //    if (m_model) {
 //        qDebug() << "AAA beginInsertRows" << m_model->indexOfItem(this);
@@ -497,28 +497,28 @@ void ParameterizedItem::insertChildItem(int row, ParameterizedItem *item, const
 }
 
 
-ParameterizedItem *ParameterizedItem::takeChildItem(int row)
+SessionItem *SessionItem::takeChildItem(int row)
 {
 //    return takeItem(row, defaultTag());
-    ParameterizedItem *item = childAt(row);
+    SessionItem *item = childAt(row);
     QString tag = tagFromItem(item);
     auto items = getItems(tag);
     return takeItem(items.indexOf(item), tag);
 }
 
-bool ParameterizedItem::acceptsAsChild(const QString &child_name) const
+bool SessionItem::acceptsAsChild(const QString &child_name) const
 {
     return getTagInfo(defaultTag()).modelTypes.contains(child_name);
 }
 
-QList<QString> ParameterizedItem::acceptableChildItems() const
+QList<QString> SessionItem::acceptableChildItems() const
 {
     return getTagInfo(defaultTag()).modelTypes.toVector().toList();
 }
 
 //! Registers new property. If variant represents some valid modelType, appropriate
 //! item will be created. I
-ParameterizedItem *ParameterizedItem::registerProperty(const QString &name, const QVariant &variant)
+SessionItem *SessionItem::registerProperty(const QString &name, const QVariant &variant)
 {
     if (isRegisteredProperty(name))
         throw GUIHelpers::Error(
@@ -534,7 +534,7 @@ ParameterizedItem *ParameterizedItem::registerProperty(const QString &name, cons
 //        Q_ASSERT(0);
 //    }
 
-    ParameterizedItem *property = ItemFactory::createItem(property_type);
+    SessionItem *property = ItemFactory::createItem(property_type);
     property->setDisplayName(name);
 //    property->setAttribute(attribute);
     registerTag(name, 1, 1, QStringList() << property_type);
@@ -549,12 +549,12 @@ ParameterizedItem *ParameterizedItem::registerProperty(const QString &name, cons
         return property;
 }
 
-bool ParameterizedItem::isRegisteredProperty(const QString &name) const
+bool SessionItem::isRegisteredProperty(const QString &name) const
 {
     return getTagInfo(name).isValid();
 }
 
-QVariant ParameterizedItem::getRegisteredProperty(const QString &name) const
+QVariant SessionItem::getRegisteredProperty(const QString &name) const
 {
     if (!isRegisteredProperty(name))
         throw GUIHelpers::Error(
@@ -564,7 +564,7 @@ QVariant ParameterizedItem::getRegisteredProperty(const QString &name) const
     return getItem(name)->value();
 }
 
-void ParameterizedItem::setRegisteredProperty(const QString &name, const QVariant &variant)
+void SessionItem::setRegisteredProperty(const QString &name, const QVariant &variant)
 {
     // check if variant of previous property coincides with new one
     if (!isRegisteredProperty(name))
@@ -581,11 +581,11 @@ void ParameterizedItem::setRegisteredProperty(const QString &name, const QVarian
      getItem(name)->setValue(variant);
 }
 
-void ParameterizedItem::removeRegisteredProperty(const QString &name)
+void SessionItem::removeRegisteredProperty(const QString &name)
 {
     if(isRegisteredProperty(name)) {
         qDebug() << "ParameterizedItem::removeRegisteredProperty()" << name;
-        if (ParameterizedItem *para =  takeItem(0, name)) {
+        if (SessionItem *para =  takeItem(0, name)) {
             delete para;
 //            if (m_model) {
 //                QModelIndex index = m_model->indexOfItem(para);
@@ -599,7 +599,7 @@ void ParameterizedItem::removeRegisteredProperty(const QString &name)
     }
 }
 
-ParameterizedItem *ParameterizedItem::registerGroupProperty(const QString &group_name,
+SessionItem *SessionItem::registerGroupProperty(const QString &group_name,
                                                             const Constants::ModelType &group_model)
 {
 //    qDebug() << "ParameterizedItem::registerGroupProperty() ->"
@@ -614,14 +614,14 @@ ParameterizedItem *ParameterizedItem::registerGroupProperty(const QString &group
     registerTag(group_name, 1, 1, QStringList() << Constants::GroupItemType);
     insertItem(0, groupItem, group_name);
 //    insertChildItem(-1, groupItem);
-//    ParameterizedItem *p_result = m_sub_items[group_name];
+//    SessionItem *p_result = m_sub_items[group_name];
 //    if (group_property->type() == GroupProperty::FIXED) {
 //        p_result->setDisplayName(group_name);
 //    }
     return groupItem;
 }
 
-bool ParameterizedItem::isGroupProperty(const QString &name) const
+bool SessionItem::isGroupProperty(const QString &name) const
 {
     SessionTagInfo tagInfo = getTagInfo(name);
     if (tagInfo.isValid()) {
@@ -630,7 +630,7 @@ bool ParameterizedItem::isGroupProperty(const QString &name) const
     return false;
 }
 
-ParameterizedItem *ParameterizedItem::setGroupProperty(const QString &name, const QString &value) const
+SessionItem *SessionItem::setGroupProperty(const QString &name, const QString &value) const
 {
     qDebug() << "ParameterizedItem::setGroupProperty()" << name << value;
     if (GroupItem *item = dynamic_cast<GroupItem *>(getItem(name))) {
@@ -643,7 +643,7 @@ ParameterizedItem *ParameterizedItem::setGroupProperty(const QString &name, cons
     return nullptr;
 }
 
-ParameterizedItem *ParameterizedItem::getGroupItem(const QString &name, const QString &type) const
+SessionItem *SessionItem::getGroupItem(const QString &name, const QString &type) const
 {
     if (GroupItem *item = dynamic_cast<GroupItem *>(getItem(name))) {
         GroupProperty_t group_property = item->group();
@@ -652,84 +652,84 @@ ParameterizedItem *ParameterizedItem::getGroupItem(const QString &name, const QS
         }
         QString backup = group_property->getCurrentType();
         group_property->setCurrentType(type);
-        ParameterizedItem *value = group_property->getCurrentItem();
+        SessionItem *value = group_property->getCurrentItem();
         group_property->setCurrentType(backup);
         return value;
     }
     return nullptr;
 }
 
-void ParameterizedItem::setVisible(bool enabled)
+void SessionItem::setVisible(bool enabled)
 {
     changeFlags(enabled, SessionModel::VISIBLE);
 }
 
-void ParameterizedItem::setEnabled(bool enabled)
+void SessionItem::setEnabled(bool enabled)
 {
     changeFlags(enabled, SessionModel::ENABLED);
 }
 
-void ParameterizedItem::setEditable(bool enabled)
+void SessionItem::setEditable(bool enabled)
 {
     changeFlags(enabled, SessionModel::EDITABLE);
 }
 
-bool ParameterizedItem::isVisible() const
+bool SessionItem::isVisible() const
 {
     return flags() & SessionModel::VISIBLE;
 }
 
-bool ParameterizedItem::isEnabled() const
+bool SessionItem::isEnabled() const
 {
     return flags() & SessionModel::ENABLED;
 }
 
-bool ParameterizedItem::isEditable() const
+bool SessionItem::isEditable() const
 {
     return flags() & SessionModel::EDITABLE;
 }
 
-AttLimits ParameterizedItem::limits() const
+AttLimits SessionItem::limits() const
 {
     return data(SessionModel::LimitsRole).value<AttLimits>();
 }
 
-void ParameterizedItem::setLimits(AttLimits value)
+void SessionItem::setLimits(AttLimits value)
 {
     this->setData(SessionModel::LimitsRole, QVariant::fromValue<AttLimits>(value));
 }
 
-int ParameterizedItem::decimals() const
+int SessionItem::decimals() const
 {
     return data(SessionModel::DecimalRole).toInt();
 }
 
-void ParameterizedItem::setDecimals(int n)
+void SessionItem::setDecimals(int n)
 {
     setData(SessionModel::DecimalRole, n);
 }
 
-QString ParameterizedItem::toolTip() const
+QString SessionItem::toolTip() const
 {
     return data(Qt::ToolTipRole).toString();
 }
 
-void ParameterizedItem::setToolTip(QString tooltip)
+void SessionItem::setToolTip(QString tooltip)
 {
     setData(Qt::ToolTipRole, tooltip);
 }
 
-QString ParameterizedItem::defaultTag() const
+QString SessionItem::defaultTag() const
 {
     return data(SessionModel::DefaultTagRole).toString();
 }
 
-void ParameterizedItem::setDefaultTag(QString tag)
+void SessionItem::setDefaultTag(QString tag)
 {
     setData(SessionModel::DefaultTagRole, tag);
 }
 
-ModelMapper *ParameterizedItem::mapper()
+ModelMapper *SessionItem::mapper()
 {
     if (!m_mapper) {
         m_mapper = std::unique_ptr<ModelMapper>(new ModelMapper);
@@ -738,12 +738,12 @@ ModelMapper *ParameterizedItem::mapper()
     return m_mapper.get();
 }
 
-void ParameterizedItem::setDisplayName(QString display_name)
+void SessionItem::setDisplayName(QString display_name)
 {
     setData(SessionModel::DisplayNameRole, display_name);
 }
 
-int ParameterizedItem::getCopyNumberOfChild(const ParameterizedItem *p_item) const
+int SessionItem::getCopyNumberOfChild(const SessionItem *p_item) const
 {
     if (!p_item) return -1;
     int result = -1;
diff --git a/GUI/coregui/Models/ParameterizedItem.h b/GUI/coregui/Models/SessionItem.h
similarity index 65%
rename from GUI/coregui/Models/ParameterizedItem.h
rename to GUI/coregui/Models/SessionItem.h
index 38dd5b3fb945d4fd182389594d7b7b93ac9bb685..b9abf07c61fe727f8e68f744329aa98edf26a893 100644
--- a/GUI/coregui/Models/ParameterizedItem.h
+++ b/GUI/coregui/Models/SessionItem.h
@@ -3,7 +3,7 @@
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
 //! @file      coregui/Models/ParameterizedItem.h
-//! @brief     Defines class ParameterizedItem
+//! @brief     Defines class SessionItem
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,8 +13,8 @@
 //
 // ************************************************************************** //
 
-#ifndef PARAMETERIZEDITEM_H_
-#define PARAMETERIZEDITEM_H_
+#ifndef SESSIONITEM_H_
+#define SESSIONITEM_H_
 
 #include "WinDllMacros.h"
 #include "item_constants.h"
@@ -51,7 +51,7 @@ public:
 };
 
 
-class BA_CORE_API_ ParameterizedItem : public QObject
+class BA_CORE_API_ SessionItem : public QObject
 {
     Q_OBJECT
 
@@ -59,14 +59,14 @@ class BA_CORE_API_ ParameterizedItem : public QObject
 
 public:
     static const QString P_NAME;
-    explicit ParameterizedItem(QString modelType = QString());
-    virtual ~ParameterizedItem();
+    explicit SessionItem(QString modelType = QString());
+    virtual ~SessionItem();
     QVariant data(int role) const;
     virtual bool setData(int role, const QVariant &value);
     QModelIndex index() const;
-    ParameterizedItem *parent() const;
+    SessionItem *parent() const;
     int childItemCount() const;
-    ParameterizedItem *childAt(int row) const;
+    SessionItem *childAt(int row) const;
 
     SessionModel *model() const;
     ModelMapper *mapper();
@@ -76,11 +76,11 @@ public:
     SessionTagInfo getTagInfo(const QString &name) const;
     bool registerTag(QString name, int min = 0, int max = -1, QStringList modelTypes = QStringList());
 
-    ParameterizedItem *getItem(QString tag = QString(), int index = 0) const;
-    QVector<ParameterizedItem *> getItems(QString tag = QString()) const;
-    bool insertItem(int row, ParameterizedItem *item, const QString &tag);
-    ParameterizedItem *takeItem(int row, const QString &tag);
-    QString tagFromItem(const ParameterizedItem *item) const;
+    SessionItem *getItem(QString tag = QString(), int index = 0) const;
+    QVector<SessionItem *> getItems(QString tag = QString()) const;
+    bool insertItem(int row, SessionItem *item, const QString &tag);
+    SessionItem *takeItem(int row, const QString &tag);
+    QString tagFromItem(const SessionItem *item) const;
 
     QVector<int> getRoles() const;
 
@@ -89,8 +89,8 @@ public:
 
 
 
-    ParameterizedItem *registerProperty(const QString &name, const QVariant &variant);
-    ParameterizedItem *registerGroupProperty(const QString &group_name,
+    SessionItem *registerProperty(const QString &name, const QVariant &variant);
+    SessionItem *registerGroupProperty(const QString &group_name,
                                              const Constants::ModelType &group_model);
 
     bool isRegisteredProperty(const QString &name) const;
@@ -98,21 +98,21 @@ public:
     void setRegisteredProperty(const QString &name, const QVariant &variant);
     void removeRegisteredProperty(const QString &name);
     bool isGroupProperty(const QString &name) const;
-    ParameterizedItem *setGroupProperty(const QString &name, const QString &value = QString()) const;
-    ParameterizedItem *getGroupItem(const QString &name, const QString &type = QString()) const;
+    SessionItem *setGroupProperty(const QString &name, const QString &value = QString()) const;
+    SessionItem *getGroupItem(const QString &name, const QString &type = QString()) const;
 
     virtual QString itemLabel() const;
-    int rowOfChild(ParameterizedItem *child) const;
+    int rowOfChild(SessionItem *child) const;
     int childNumber() const;
     bool hasChildItems() const;
-    QVector<ParameterizedItem *> childItems() const;
-    ParameterizedItem *getChildOfType(const QString &type) const;
-    ParameterizedItem* getChildByName(const QString &name) const;
-    QList<ParameterizedItem *> getChildrenOfType(const QString &model_type) const;
-    QList<ParameterizedItem *> getUnregisteredChildren() const;
-
-    virtual void insertChildItem(int row, ParameterizedItem *item, const QString tag = QString());
-    virtual ParameterizedItem *takeChildItem(int row);
+    QVector<SessionItem *> childItems() const;
+    SessionItem *getChildOfType(const QString &type) const;
+    SessionItem* getChildByName(const QString &name) const;
+    QList<SessionItem *> getChildrenOfType(const QString &model_type) const;
+    QList<SessionItem *> getUnregisteredChildren() const;
+
+    virtual void insertChildItem(int row, SessionItem *item, const QString tag = QString());
+    virtual SessionItem *takeChildItem(int row);
     bool acceptsAsChild(const QString &child_name) const;
     QList<QString> acceptableChildItems() const;
 
@@ -153,20 +153,20 @@ public:
 
 
 private:
-    int getCopyNumberOfChild(const ParameterizedItem *p_item) const;
-    void childDeleted(ParameterizedItem *child);
-    void setParentAndModel(ParameterizedItem *parent, SessionModel *model);
+    int getCopyNumberOfChild(const SessionItem *p_item) const;
+    void childDeleted(SessionItem *child);
+    void setParentAndModel(SessionItem *parent, SessionModel *model);
     void setModel(SessionModel *model);
     int tagStartIndex(const QString &name) const;
     void changeFlags(bool enabled, int flag);
     int flags() const;
 
-    ParameterizedItem *mp_parent;
+    SessionItem *mp_parent;
     SessionModel *m_model;
-    QVector<ParameterizedItem *> m_children;
+    QVector<SessionItem *> m_children;
     QVector<SessionItemData> m_values;
     QVector<SessionTagInfo> m_tags;
     std::unique_ptr<ModelMapper> m_mapper;
 };
 
-#endif /* PARAMETERIZEDITEM_H_ */
+#endif /* SessionItem_H_ */
diff --git a/GUI/coregui/Models/SessionModel.cpp b/GUI/coregui/Models/SessionModel.cpp
index 8706e3a3e082b1838967b906eac3d6daed714124..44d91d8a575f0c3456d85704a2a199121fe3eeaf 100644
--- a/GUI/coregui/Models/SessionModel.cpp
+++ b/GUI/coregui/Models/SessionModel.cpp
@@ -24,7 +24,7 @@
 #include "MaterialUtils.h"
 #include "MaterialProperty.h"
 #include "AngleProperty.h"
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 #include "WarningMessageService.h"
 #include <QFile>
 #include <QMimeData>
@@ -72,7 +72,7 @@ Qt::ItemFlags SessionModel::flags(const QModelIndex &index) const
     if (index.isValid()) {
         result_flags |= Qt::ItemIsSelectable | Qt::ItemIsEnabled // | Qt::ItemIsEditable
                         | Qt::ItemIsDragEnabled;
-        ParameterizedItem *item = itemForIndex(index); // NEW make data editable as default
+        SessionItem *item = itemForIndex(index); // NEW make data editable as default
         if (index.column() == ITEM_VALUE)      // NEW
             result_flags |= Qt::ItemIsEditable;        // NEW
         QList<QString> acceptable_child_items = getAcceptableChildItems(index);
@@ -90,7 +90,7 @@ QVariant SessionModel::data(const QModelIndex &index, int role) const
     if (!m_root_item || !index.isValid() || index.column() < 0 || index.column() >= columnCount(QModelIndex())) {
         return QVariant();
     }
-    if (ParameterizedItem *item = itemForIndex(index)) {
+    if (SessionItem *item = itemForIndex(index)) {
         if (role == Qt::DisplayRole || role == Qt::EditRole) {
             if (index.column() == ITEM_VALUE)
                 return item->data(Qt::DisplayRole);
@@ -122,7 +122,7 @@ int SessionModel::rowCount(const QModelIndex &parent) const
 {
     if (parent.isValid() && parent.column() != 0)
         return 0;
-    ParameterizedItem *parent_item = itemForIndex(parent);
+    SessionItem *parent_item = itemForIndex(parent);
     return parent_item ? parent_item->childItemCount() : 0;
 }
 
@@ -138,8 +138,8 @@ QModelIndex SessionModel::index(int row, int column, const QModelIndex &parent)
     if (!m_root_item || row < 0 || column < 0 || column >= columnCount(QModelIndex())
         || (parent.isValid() && parent.column() != 0))
         return QModelIndex();
-    ParameterizedItem *parent_item = itemForIndex(parent);
-    if (ParameterizedItem *item = parent_item->childAt(row)) {
+    SessionItem *parent_item = itemForIndex(parent);
+    if (SessionItem *item = parent_item->childAt(row)) {
         return createIndex(row, column, item);
     }
     return QModelIndex();
@@ -149,11 +149,11 @@ QModelIndex SessionModel::parent(const QModelIndex &child) const
 {
     if (!child.isValid())
         return QModelIndex();
-    if (ParameterizedItem *child_item = itemForIndex(child)) {
-        if (ParameterizedItem *parent_item = child_item->parent()) {
+    if (SessionItem *child_item = itemForIndex(child)) {
+        if (SessionItem *parent_item = child_item->parent()) {
             if (parent_item == m_root_item)
                 return QModelIndex();
-//            if (ParameterizedItem *grandparent_item = parent_item->parent()) {
+//            if (SessionItem *grandparent_item = parent_item->parent()) {
 //                int row = grandparent_item->rowOfChild(parent_item);
                 return createIndex(parent_item->childNumber(), 0, parent_item); // CHANGED use new method
 //            }
@@ -171,7 +171,7 @@ bool SessionModel::setData(const QModelIndex &index, const QVariant &value, int
     if (role == Qt::UserRole) {                     // NEW
         dataIndex = index.sibling(index.row(), 1);  // NEW
     }                                               // NEW
-    if (ParameterizedItem *item = itemForIndex(dataIndex)) {
+    if (SessionItem *item = itemForIndex(dataIndex)) {
 //        if (role == Qt::EditRole) {
 //            qDebug() << "SessionModel::setData ";
 //            item->setItemName(value.toString());
@@ -189,7 +189,7 @@ bool SessionModel::removeRows(int row, int count, const QModelIndex &parent)
 {
     if (!m_root_item)
         return false;
-    ParameterizedItem *item = parent.isValid() ? itemForIndex(parent) : m_root_item;
+    SessionItem *item = parent.isValid() ? itemForIndex(parent) : m_root_item;
 //    beginRemoveRows(parent, row, row + count - 1);
     for (int i = 0; i < count; ++i) {
         delete item->takeChildItem(row);
@@ -207,7 +207,7 @@ QMimeData *SessionModel::mimeData(const QModelIndexList &indices) const
 {
     if (indices.count() != 2)
         return 0;
-    if (ParameterizedItem *item = itemForIndex(indices.at(0))) {
+    if (SessionItem *item = itemForIndex(indices.at(0))) {
         QMimeData *mime_data = new QMimeData;
         QByteArray xml_data;
         QXmlStreamWriter writer(&xml_data);
@@ -253,7 +253,7 @@ bool SessionModel::dropMimeData(const QMimeData *data, Qt::DropAction action, in
         return false;
     if (!canDropMimeData(data, action, row, column, parent))
         return false;
-    if (ParameterizedItem *item = itemForIndex(parent)) {
+    if (SessionItem *item = itemForIndex(parent)) {
         QByteArray xml_data = qUncompress(data->data(SessionXML::MimeType));
         QXmlStreamReader reader(xml_data);
         if (row == -1)
@@ -266,24 +266,24 @@ bool SessionModel::dropMimeData(const QMimeData *data, Qt::DropAction action, in
     return false;
 }
 
-QModelIndex SessionModel::indexOfItem(ParameterizedItem *item) const
+QModelIndex SessionModel::indexOfItem(SessionItem *item) const
 {
     if (!item || item == m_root_item || !item->parent())
         return QModelIndex();
-    ParameterizedItem *parent_item = item->parent();
+    SessionItem *parent_item = item->parent();
 //    qDebug() << "OOO indexOfItem:" << item << " parent_item" <<  parent_item << "m_root_item:" << m_root_item;
     int row = parent_item->rowOfChild(item);
     Q_ASSERT(row>=0); // FIXME For Debugging
     return createIndex(row, 0, item);
 }
 
-ParameterizedItem *SessionModel::insertNewItem(QString model_type, const QModelIndex &parent,
+SessionItem *SessionModel::insertNewItem(QString model_type, const QModelIndex &parent,
                                                int row, QString tag)
 {
 //    if (!m_root_item) {
 //        m_root_item = ItemFactory::createEmptyItem();
 //    }
-    ParameterizedItem *parent_item = itemForIndex(parent);
+    SessionItem *parent_item = itemForIndex(parent);
 //    if (row == -1)
 //        row = parent_item->childItemCount();
 //    beginInsertRows(parent, row, row);
@@ -302,9 +302,9 @@ ParameterizedItem *SessionModel::insertNewItem(QString model_type, const QModelI
         }
     }
 
-//    ParameterizedItem *new_item = new ParameterizedItem(model_type); // NEW -> item factory!
-    ParameterizedItem *new_item = ItemFactory::createItem(model_type);
-//    if (port != ParameterizedItem::PortInfo::DEFAULT)
+//    SessionItem *new_item = new SessionItem(model_type); // NEW -> item factory!
+    SessionItem *new_item = ItemFactory::createItem(model_type);
+//    if (port != SessionItem::PortInfo::DEFAULT)
 //        new_item->setPort(port);
 
     if (!new_item)
@@ -328,7 +328,7 @@ ParameterizedItem *SessionModel::insertNewItem(QString model_type, const QModelI
 QList<QString> SessionModel::getAcceptableChildItems(const QModelIndex &parent) const
 {
     QList<QString> result;
-    if (ParameterizedItem *parent_item = itemForIndex(parent)) {
+    if (SessionItem *parent_item = itemForIndex(parent)) {
         result = parent_item->acceptableChildItems();
     }
     return result;
@@ -373,10 +373,10 @@ void SessionModel::save(const QString &filename)
     writer.writeEndDocument();
 }
 
-ParameterizedItem *SessionModel::itemForIndex(const QModelIndex &index) const
+SessionItem *SessionModel::itemForIndex(const QModelIndex &index) const
 {
     if (index.isValid()) {
-        if (ParameterizedItem *item = static_cast<ParameterizedItem *>(index.internalPointer()))
+        if (SessionItem *item = static_cast<SessionItem *>(index.internalPointer()))
             return item;
     }
     return m_root_item;
@@ -406,7 +406,7 @@ void SessionModel::readFrom(QXmlStreamReader *reader)
 
 }
 
-void SessionModel::writeTo(QXmlStreamWriter *writer, ParameterizedItem *parent)
+void SessionModel::writeTo(QXmlStreamWriter *writer, SessionItem *parent)
 {
     // MOVED OUT TO SessionXML.h
 
@@ -418,7 +418,7 @@ void SessionModel::writeTo(QXmlStreamWriter *writer, ParameterizedItem *parent)
 
 //! Move given parameterized item to the new_parent at given row. If new_parent is not defined,
 //! use root_item as a new parent.
-ParameterizedItem *SessionModel::moveParameterizedItem(ParameterizedItem *item, ParameterizedItem *new_parent,
+SessionItem *SessionModel::moveParameterizedItem(SessionItem *item, SessionItem *new_parent,
                                          int row)
 {
     qDebug() << "";
@@ -452,7 +452,7 @@ ParameterizedItem *SessionModel::moveParameterizedItem(ParameterizedItem *item,
     SessionReader::readItems(&reader, new_parent, row);
     endInsertRows();
 
-    ParameterizedItem *newItem = new_parent->childAt(row);
+    SessionItem *newItem = new_parent->childAt(row);
 
     qDebug() << " ";
     qDebug() << "    SessionModel::moveParameterizedItem() >>> Now deleting indexOfItem(item).row()"
@@ -467,8 +467,8 @@ ParameterizedItem *SessionModel::moveParameterizedItem(ParameterizedItem *item,
 
 //! Copy given item to the new_parent at given raw. Item indended for copying can belong to
 //! another model and it will remains intact. Returns pointer to the new child.
-ParameterizedItem *SessionModel::copyParameterizedItem(const ParameterizedItem *item_to_copy,
-                                                       ParameterizedItem *new_parent, int row)
+SessionItem *SessionModel::copyParameterizedItem(const SessionItem *item_to_copy,
+                                                       SessionItem *new_parent, int row)
 {
     if (new_parent) {
         if (!new_parent->acceptsAsChild(item_to_copy->modelType()))
@@ -492,20 +492,20 @@ ParameterizedItem *SessionModel::copyParameterizedItem(const ParameterizedItem *
     return new_parent->childAt(row);
 }
 
-SessionModel *SessionModel::createCopy(ParameterizedItem *parent)
+SessionModel *SessionModel::createCopy(SessionItem *parent)
 {
     (void)parent;
     throw GUIHelpers::Error("SessionModel::createCopy() -> Error. Not implemented.");
 }
 
-//! returns map of item name to ParameterizedItem for all top level items in the model
-QMap<QString, ParameterizedItem *> SessionModel::getTopItemMap(const QString &model_type) const
+//! returns map of item name to SessionItem for all top level items in the model
+QMap<QString, SessionItem *> SessionModel::getTopItemMap(const QString &model_type) const
 {
-    QMap<QString, ParameterizedItem *> result;
+    QMap<QString, SessionItem *> result;
     QModelIndex parentIndex;
     for (int i_row = 0; i_row < rowCount(parentIndex); ++i_row) {
         QModelIndex itemIndex = index(i_row, 0, parentIndex);
-        if (ParameterizedItem *item = itemForIndex(itemIndex)) {
+        if (SessionItem *item = itemForIndex(itemIndex)) {
             if (model_type.isEmpty()) {
                 result.insertMulti(item->itemName(), item);
             } else {
@@ -519,11 +519,11 @@ QMap<QString, ParameterizedItem *> SessionModel::getTopItemMap(const QString &mo
 }
 
 //! returns top level item with given name and model type
-ParameterizedItem *SessionModel::getTopItem(const QString &model_type,
+SessionItem *SessionModel::getTopItem(const QString &model_type,
                                             const QString &item_name) const
 {
-    ParameterizedItem *result(0);
-    QMap<QString, ParameterizedItem *> item_map = getTopItemMap(model_type);
+    SessionItem *result(0);
+    QMap<QString, SessionItem *> item_map = getTopItemMap(model_type);
     if (item_map.size()) {
         if (item_name.isEmpty()) {
             result = item_map.first();
@@ -539,7 +539,7 @@ void SessionModel::setMessageService(WarningMessageService *messageService)
     m_messageService = messageService;
 }
 
-ParameterizedItem *SessionModel::insertNewItem(QString model_type, ParameterizedItem *parent,
+SessionItem *SessionModel::insertNewItem(QString model_type, SessionItem *parent,
                                                int row)
 {
 //    if (!m_root_item) {
@@ -548,7 +548,7 @@ ParameterizedItem *SessionModel::insertNewItem(QString model_type, Parameterized
 
 }
 
-void SessionModel::initFrom(SessionModel *model, ParameterizedItem *parent)
+void SessionModel::initFrom(SessionModel *model, SessionItem *parent)
 {
     qDebug() << "SessionModel::initFrom() -> " << model->getModelTag() << parent;
     QByteArray byte_array;
@@ -569,14 +569,14 @@ void SessionModel::initFrom(SessionModel *model, ParameterizedItem *parent)
 
 void SessionModel::cleanItem(const QModelIndex &parent, int first, int /* last */)
 {
-    ParameterizedItem *parentItem = itemForIndex(parent);
+    SessionItem *parentItem = itemForIndex(parent);
     Q_ASSERT(parentItem);
     QModelIndex childIndex = index(first, 0, parent);
-    ParameterizedItem *childItem = itemForIndex(childIndex);
+    SessionItem *childItem = itemForIndex(childIndex);
     Q_ASSERT(childItem);
 
     // TODO restore logic
-    ParameterizedItem *candidate_for_removal = nullptr;//parentItem->getCandidateForRemoval(childItem);
+    SessionItem *candidate_for_removal = nullptr;//parentItem->getCandidateForRemoval(childItem);
     if (candidate_for_removal) {
         // qDebug() << " candidate_for_removal" << candidate_for_removal;
         moveParameterizedItem(candidate_for_removal, 0);
@@ -593,6 +593,6 @@ void SessionModel::report_error(const QString &error_type, const QString &messag
     }
 }
 
-ParameterizedItem* SessionModel::rootItem() const{
+SessionItem* SessionModel::rootItem() const{
     return m_root_item;
 }
diff --git a/GUI/coregui/Models/SessionModel.h b/GUI/coregui/Models/SessionModel.h
index 118923522810ab13e95544c6dd39f6502a7132d4..ad7ae78a460aea5d962b8862807da528342ebcf9 100644
--- a/GUI/coregui/Models/SessionModel.h
+++ b/GUI/coregui/Models/SessionModel.h
@@ -20,7 +20,7 @@
 #include <QtCore/QXmlStreamReader>
 #include <QtCore/QXmlStreamWriter>
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
 #include "SessionXML.h"
 
@@ -30,7 +30,7 @@ class WarningMessageService;
 class BA_CORE_API_ SessionModel : public QAbstractItemModel
 {
     Q_OBJECT
-    friend class ParameterizedItem; // NEW
+    friend class SessionItem; // NEW
 public:
     explicit SessionModel(QString model_tag, QObject *parent = 0);
     virtual ~SessionModel();
@@ -70,8 +70,8 @@ public:
                       const QModelIndex &parent);
     // End overridden methods from QAbstractItemModel
 
-    QModelIndex indexOfItem(ParameterizedItem *item) const;
-    ParameterizedItem *insertNewItem(QString model_type, const QModelIndex &parent = QModelIndex(),
+    QModelIndex indexOfItem(SessionItem *item) const;
+    SessionItem *insertNewItem(QString model_type, const QModelIndex &parent = QModelIndex(),
                                      int row = -1, QString tag = QString());
 
     QString getModelTag() const;
@@ -88,45 +88,45 @@ public:
     void setDraggedItemType(const QString &type);
 
     // Returns root item if index is not valid
-    ParameterizedItem *itemForIndex(const QModelIndex &index) const;
+    SessionItem *itemForIndex(const QModelIndex &index) const;
 
     void readFrom(QXmlStreamReader *reader);
-    void writeTo(QXmlStreamWriter *writer, ParameterizedItem *parent = 0);
+    void writeTo(QXmlStreamWriter *writer, SessionItem *parent = 0);
 
-    ParameterizedItem *moveParameterizedItem(ParameterizedItem *item,
-                                             ParameterizedItem *new_parent = 0, int row = -1);
+    SessionItem *moveParameterizedItem(SessionItem *item,
+                                             SessionItem *new_parent = 0, int row = -1);
 
-    ParameterizedItem *copyParameterizedItem(const ParameterizedItem *item_to_copy,
-                                             ParameterizedItem *new_parent = 0, int row = -1);
+    SessionItem *copyParameterizedItem(const SessionItem *item_to_copy,
+                                             SessionItem *new_parent = 0, int row = -1);
 
     void setIconProvider(IconProvider *icon_provider);
 
-    virtual SessionModel *createCopy(ParameterizedItem *parent = 0);
+    virtual SessionModel *createCopy(SessionItem *parent = 0);
 
-    QMap<QString, ParameterizedItem *> getTopItemMap(const QString &model_type = QString()) const;
-    ParameterizedItem *getTopItem(const QString &model_type = QString(),
+    QMap<QString, SessionItem *> getTopItemMap(const QString &model_type = QString()) const;
+    SessionItem *getTopItem(const QString &model_type = QString(),
                                   const QString &item_name = QString()) const;
 
     void setMessageService(WarningMessageService *messageService);
 
-    virtual void initFrom(SessionModel *model, ParameterizedItem *parent);
-    ParameterizedItem* rootItem() const;
+    virtual void initFrom(SessionModel *model, SessionItem *parent);
+    SessionItem* rootItem() const;
 
 
 
 
 protected:
-    void setRootItem(ParameterizedItem *root) {m_root_item = root;}
+    void setRootItem(SessionItem *root) {m_root_item = root;}
 
 private:
 
-    ParameterizedItem *insertNewItem(QString model_type, ParameterizedItem *parent, int row = -1);
+    SessionItem *insertNewItem(QString model_type, SessionItem *parent, int row = -1);
 
     void cleanItem(const QModelIndex &parent, int first, int last);
 
     void report_error(const QString &error_type, const QString &message);
 
-    ParameterizedItem *m_root_item;
+    SessionItem *m_root_item;
     QString m_dragged_item_type;
     QString m_name;      //!< model name
     QString m_model_tag; //!< model tag (SampleModel, InstrumentModel)
diff --git a/GUI/coregui/Models/SessionModelAssistant.cpp b/GUI/coregui/Models/SessionModelAssistant.cpp
index 912a619e60f190f1dbce8b53eb149aaa76a263bb..59c1d4dab8bc6faaa7f5a72b50278e066fa1ac7d 100644
--- a/GUI/coregui/Models/SessionModelAssistant.cpp
+++ b/GUI/coregui/Models/SessionModelAssistant.cpp
@@ -15,7 +15,7 @@
 
 #include "SessionModelAssistant.h"
 #include "GUIHelpers.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
 SessionModelAssistant::SessionModelAssistant()
     : m_on_error_behavior(THROW_EXCEPTION)
@@ -44,7 +44,7 @@ bool SessionModelAssistant::hasErrors() const
     return m_list_of_errors.size();
 }
 
-void SessionModelAssistant::report_unknown_item_property(const ParameterizedItem *item,
+void SessionModelAssistant::report_unknown_item_property(const SessionItem *item,
                                                          const QString &property_name)
 {
     QString message = QString("Unknown property '%1' for item type '%2'")
diff --git a/GUI/coregui/Models/SessionModelAssistant.h b/GUI/coregui/Models/SessionModelAssistant.h
index 2f7f068d87fa4b71bb87a11f8e0a11d2d85a8a65..700e5ef6e77ba148748e427ca786eba2fc06524c 100644
--- a/GUI/coregui/Models/SessionModelAssistant.h
+++ b/GUI/coregui/Models/SessionModelAssistant.h
@@ -19,7 +19,7 @@
 #include <QString>
 #include <QMap>
 
-class ParameterizedItem;
+class SessionItem;
 
 //! @class SessionModelAssistant
 //! @brief Assists SessionModel in various aspects. Currently keeps record of all reading errors
@@ -60,7 +60,7 @@ public:
 
     bool hasErrors() const;
 
-    void report_unknown_item_property(const ParameterizedItem *item, const QString &property_name);
+    void report_unknown_item_property(const SessionItem *item, const QString &property_name);
 
 private:
     QList<Error> m_list_of_errors;
diff --git a/GUI/coregui/Models/SessionProxyModels.cpp b/GUI/coregui/Models/SessionProxyModels.cpp
index 5a0a8cf8e1e3a270a64f82d6d1ac1b3af654960a..313520258ee6a9e68bfe5abfe470f716cf876f05 100644
--- a/GUI/coregui/Models/SessionProxyModels.cpp
+++ b/GUI/coregui/Models/SessionProxyModels.cpp
@@ -32,9 +32,9 @@ void SessionCompactModel::setSourceModel(QAbstractItemModel *source)
 QModelIndex SessionCompactModel::index(int row, int column, const QModelIndex &parent) const
 {
     const QModelIndex sourceParent = mapToSource(parent);
-    ParameterizedItem *parentt = m_source->itemForIndex(sourceParent);
+    SessionItem *parentt = m_source->itemForIndex(sourceParent);
     if (parentt->modelType() == Constants::GroupItemType) {
-        ParameterizedItem *cur = parentt->parent()->getGroupItem(parentt->itemName());
+        SessionItem *cur = parentt->parent()->getGroupItem(parentt->itemName());
         const QModelIndex sourceIndex = m_source->index(row, column, cur->index());
         return mapFromSource(sourceIndex);
     }
@@ -45,7 +45,7 @@ QModelIndex SessionCompactModel::index(int row, int column, const QModelIndex &p
 QModelIndex SessionCompactModel::parent(const QModelIndex &child) const
 {
     const QModelIndex sourceIndex = mapToSource(child);
-    ParameterizedItem *head = m_source->itemForIndex(sourceIndex.parent());
+    SessionItem *head = m_source->itemForIndex(sourceIndex.parent());
     if (head && head->parent() && head->parent()->modelType() == Constants::GroupItemType) {
         // skip immediate layer
         return mapFromSource(head->parent()->index());
@@ -57,9 +57,9 @@ QModelIndex SessionCompactModel::parent(const QModelIndex &child) const
 int SessionCompactModel::rowCount(const QModelIndex &parent) const
 {
     QModelIndex sourceParent = mapToSource(parent);
-    ParameterizedItem *item = m_source->itemForIndex(sourceParent);
+    SessionItem *item = m_source->itemForIndex(sourceParent);
     if (item && item->modelType() == Constants::GroupItemType) {
-        ParameterizedItem *cur = item->parent()->getGroupItem(item->itemName());
+        SessionItem *cur = item->parent()->getGroupItem(item->itemName());
         if (cur)
             return m_source->rowCount(cur->index());
         else
@@ -87,15 +87,15 @@ QModelIndex SessionTestModel::mapFromSource(const QModelIndex &sourceIndex) cons
 {
 
     // one to one
-//    ParameterizedItem *item = m_source->itemForIndex(sourceIndex);
+//    SessionItem *item = m_source->itemForIndex(sourceIndex);
 //    return createIndex(sourceIndex.row(), sourceIndex.column(), item);
 
 
     int nrow(0);
     for(int i_row=0; i_row<m_source->rowCount(sourceIndex.parent()); ++i_row) {
         QModelIndex itemIndex = m_source->index(i_row, sourceIndex.column(), sourceIndex.parent());
-        if(ParameterizedItem *item = m_source->itemForIndex(itemIndex)) {
-            if(!item->isVisible()) continue;
+        if(SessionItem *item = m_source->itemForIndex(itemIndex)) {
+            if(!item->isVisible()) continue;
             if(i_row == sourceIndex.row()) {
                 return createIndex(nrow, sourceIndex.column(), item);
             }
@@ -112,7 +112,7 @@ QModelIndex SessionTestModel::mapFromSource(const QModelIndex &sourceIndex) cons
 QModelIndex SessionTestModel::mapToSource(const QModelIndex &proxyIndex) const
 {
     // ont-to-one
-//    ParameterizedItem *item = static_cast<ParameterizedItem *>(proxyIndex.internalPointer());
+//    SessionItem *item = static_cast<SessionItem *>(proxyIndex.internalPointer());
 //    if(item && item->parent()) {
 //        return m_source->index(proxyIndex.row(), proxyIndex.column(), m_source->indexOfItem(item->parent()));
 //    } else {
@@ -120,7 +120,7 @@ QModelIndex SessionTestModel::mapToSource(const QModelIndex &proxyIndex) const
 //    }
 
 
-    ParameterizedItem *item = static_cast<ParameterizedItem *>(proxyIndex.internalPointer());
+    SessionItem *item = static_cast<SessionItem *>(proxyIndex.internalPointer());
     if(item) {
         if(item->parent()) {
             return m_source->index(item->index().row(), proxyIndex.column(), item->parent()->index());
@@ -142,14 +142,14 @@ QModelIndex SessionTestModel::index(int row, int column, const QModelIndex &pare
     if(row <0 || row >=rowCount(parent) || column <0 || column >=columnCount(parent)) return QModelIndex();
 
     return createIndex(row, column, nullptr);
-//    ParameterizedItem *item = static_cast<ParameterizedItem *>(proxyIndex.internalPointer());
+//    SessionItem *item = static_cast<SessionItem *>(proxyIndex.internalPointer());
 
 }
 
 QModelIndex SessionTestModel::parent(const QModelIndex &child) const
 {
     const QModelIndex sourceIndex = mapToSource(child);
-//    ParameterizedItem *head = m_source->itemForIndex(sourceIndex.parent());
+//    SessionItem *head = m_source->itemForIndex(sourceIndex.parent());
 //    if (head && head->parent() && head->parent()->modelType() == Constants::GroupItemType) {
 //        // skip immediate layer
 //        return mapFromSource(head->parent()->index());
@@ -164,17 +164,17 @@ int SessionTestModel::rowCount(const QModelIndex &parent) const
     QModelIndex sourceParent = mapToSource(parent);
 //    return m_source->rowCount(sourceParent);
 
-    ParameterizedItem *item = m_source->itemForIndex(sourceParent);
+    SessionItem *item = m_source->itemForIndex(sourceParent);
     int nrow(0);
-    foreach(ParameterizedItem *child, item->childItems()) {
-        if(!child->isVisible()) continue;
+    foreach(SessionItem *child, item->childItems()) {
+        if(!child->isVisible()) continue;
         ++nrow;
     }
     return nrow;
 
-//    ParameterizedItem *item = m_source->itemForIndex(sourceParent);
+//    SessionItem *item = m_source->itemForIndex(sourceParent);
 //    if (item && item->modelType() == Constants::GroupItemType) {
-//        ParameterizedItem *cur = item->parent()->getGroupItem(item->itemName());
+//        SessionItem *cur = item->parent()->getGroupItem(item->itemName());
 //        if (cur)
 //            return m_source->rowCount(cur->index());
 //        else
diff --git a/GUI/coregui/Models/SessionXML.cpp b/GUI/coregui/Models/SessionXML.cpp
index d6a447908656908393d99720111c1f2311961c48..39939ecd67bb50d3202b5b6bc5906cc60226affa 100644
--- a/GUI/coregui/Models/SessionXML.cpp
+++ b/GUI/coregui/Models/SessionXML.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "SessionXML.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "SessionModel.h"
 #include "MaterialProperty.h"
 #include "ComboProperty.h"
@@ -30,7 +30,7 @@
 #include <QDebug>
 
 
-void SessionWriter::writeTo(QXmlStreamWriter *writer, ParameterizedItem *parent)
+void SessionWriter::writeTo(QXmlStreamWriter *writer, SessionItem *parent)
 {
     writer->writeStartElement(parent->model()->getModelTag());
     writer->writeAttribute(SessionXML::ModelNameAttribute, parent->model()->getModelName());
@@ -40,7 +40,7 @@ void SessionWriter::writeTo(QXmlStreamWriter *writer, ParameterizedItem *parent)
     writer->writeEndElement(); // m_model_tag
 }
 
-void SessionWriter::writeItemAndChildItems(QXmlStreamWriter *writer, const ParameterizedItem *item)
+void SessionWriter::writeItemAndChildItems(QXmlStreamWriter *writer, const SessionItem *item)
 {
     qDebug() << "SessionModel::writeItemAndChildItems " << item;
     Q_ASSERT(item);
@@ -63,7 +63,7 @@ void SessionWriter::writeItemAndChildItems(QXmlStreamWriter *writer, const Param
         }
 
     }
-    foreach (ParameterizedItem *child_item, item->childItems()) {
+    foreach (SessionItem *child_item, item->childItems()) {
         writeItemAndChildItems(writer, child_item);
     }
     if (item->parent()) {
@@ -127,14 +127,14 @@ void SessionWriter::writeVariant(QXmlStreamWriter *writer, QVariant variant, int
     }
 }
 
-void SessionReader::readItems(QXmlStreamReader *reader, ParameterizedItem *item, int row)
+void SessionReader::readItems(QXmlStreamReader *reader, SessionItem *item, int row)
 {
     qDebug() << "SessionModel::readItems() " << row;
     if(item) qDebug() << "  item" << item->modelType();
     const QString modelType = item->model()->getModelTag();
 //    bool inside_parameter_tag = false;
 //    QString parent_parameter_name;
-//    ParameterizedItem *parent_backup(0);
+//    SessionItem *parent_backup(0);
     while (!reader->atEnd()) {
         reader->readNext();
         if (reader->isStartElement()) {
@@ -150,7 +150,7 @@ void SessionReader::readItems(QXmlStreamReader *reader, ParameterizedItem *item,
                 } else {
                     item_name = reader->attributes().value(SessionXML::ParameterNameAttribute).toString();
                 }*/
-                if (tag == ParameterizedItem::P_NAME)
+                if (tag == SessionItem::P_NAME)
                     item->setItemName("");
                 if (model_type == Constants::PropertyType || model_type == Constants::GroupItemType) {
                     item = item->getItem(tag);
@@ -163,7 +163,7 @@ void SessionReader::readItems(QXmlStreamReader *reader, ParameterizedItem *item,
                         qDebug() << "!!";
                     }
                 } else {
-                    ParameterizedItem *new_item = ItemFactory::createItem(model_type);
+                    SessionItem *new_item = ItemFactory::createItem(model_type);
                     if (tag == "")
                         tag = item->defaultTag();
                     if (!item->insertItem(-1, new_item, tag)) {
@@ -179,7 +179,7 @@ void SessionReader::readItems(QXmlStreamReader *reader, ParameterizedItem *item,
 
 //                if (inside_parameter_tag) {
 //                    Q_ASSERT(item);
-//                    ParameterizedItem *parent = item;
+//                    SessionItem *parent = item;
 //                    item = parent->getGroupItem(parent_parameter_name);
 //                    if(!item) {
 //                        // to provide partial loading of obsolete project files
@@ -216,7 +216,7 @@ void SessionReader::readItems(QXmlStreamReader *reader, ParameterizedItem *item,
     }
 }
 
-QString SessionReader::readProperty(QXmlStreamReader *reader, ParameterizedItem *item)
+QString SessionReader::readProperty(QXmlStreamReader *reader, SessionItem *item)
 {
 //    qDebug() << "SessionModel::readProperty() for" << item;
     if (item)
diff --git a/GUI/coregui/Models/SessionXML.h b/GUI/coregui/Models/SessionXML.h
index fb8b9a33fbca408e184a051d5cc1ce58155ac6bf..28f4566b6ac256f793819675689e67ecab3583b2 100644
--- a/GUI/coregui/Models/SessionXML.h
+++ b/GUI/coregui/Models/SessionXML.h
@@ -22,7 +22,7 @@
 
 class QXmlStreamWriter;
 class QXmlStreamReader;
-class ParameterizedItem;
+class SessionItem;
 
 namespace SessionXML {
 const QString MimeType = "application/org.bornagainproject.xml.item.z";
@@ -34,8 +34,8 @@ const QString FitModelTag("FitModel");
 const QString JobModelTag("JobModel");
 const QString MaskModelTag("MaskModel");
 
-const QString TagAttribute("Tag");
-
+const QString TagAttribute("Tag");
+
 const QString ModelNameAttribute("Name");
 const QString ItemTag("Item");
 const QString ModelTypeAttribute("ModelType");
@@ -44,7 +44,7 @@ const QString ParameterTag("Parameter");
 const QString ParameterNameAttribute("ParName");
 const QString ParameterTypeAttribute("ParType");
 const QString ParameterValueAttribute("ParValue");
-const QString ParameterRoleAttribute("ParRole");
+const QString ParameterRoleAttribute("ParRole");
 
 const QString IdentifierAttribute("Identifier");
 
@@ -60,18 +60,18 @@ const QString AngleUnitsAttribute("Units");
 class BA_CORE_API_ SessionWriter
 {
 public:
-    static void writeTo(QXmlStreamWriter *writer, ParameterizedItem *parent);
-    static void writeItemAndChildItems(QXmlStreamWriter *writer, const ParameterizedItem *item);
+    static void writeTo(QXmlStreamWriter *writer, SessionItem *parent);
+    static void writeItemAndChildItems(QXmlStreamWriter *writer, const SessionItem *item);
 private:
-    static void writeVariant(QXmlStreamWriter *writer, QVariant variant, int role);
+    static void writeVariant(QXmlStreamWriter *writer, QVariant variant, int role);
 };
 
 class BA_CORE_API_ SessionReader
 {
 public:
-    static void readItems(QXmlStreamReader *reader, ParameterizedItem *item, int row = -1);
+    static void readItems(QXmlStreamReader *reader, SessionItem *item, int row = -1);
 private:
-    static QString readProperty(QXmlStreamReader *reader, ParameterizedItem *item);
+    static QString readProperty(QXmlStreamReader *reader, SessionItem *item);
 };
 
 #endif // SESSIONXML_H
diff --git a/GUI/coregui/Models/SphericalDetectorItem.cpp b/GUI/coregui/Models/SphericalDetectorItem.cpp
index 69d4856a98095d379fdcf9b9e3bc8001796f3789..bc2651ef1107a72af5103daaf271725b61196367 100644
--- a/GUI/coregui/Models/SphericalDetectorItem.cpp
+++ b/GUI/coregui/Models/SphericalDetectorItem.cpp
@@ -26,15 +26,15 @@ const QString SphericalDetectorItem::P_ALPHA_AXIS = "Alpha axis";
 const QString SphericalDetectorItem::P_RESOLUTION_FUNCTION = "Type";
 
 SphericalDetectorItem::SphericalDetectorItem()
-    : ParameterizedItem(Constants::SphericalDetectorType)
+    : SessionItem(Constants::SphericalDetectorType)
 {
     registerGroupProperty(P_PHI_AXIS, Constants::BasicAxisType);
-    getGroupItem(P_PHI_AXIS)->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
+    getGroupItem(P_PHI_AXIS)->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
     getGroupItem(P_PHI_AXIS)->setRegisteredProperty(BasicAxisItem::P_MIN, -1.0);
     getGroupItem(P_PHI_AXIS)->setRegisteredProperty(BasicAxisItem::P_MAX, 1.0);
 
     registerGroupProperty(P_ALPHA_AXIS, Constants::BasicAxisType);
-    getGroupItem(P_ALPHA_AXIS)->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
+    getGroupItem(P_ALPHA_AXIS)->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
     getGroupItem(P_ALPHA_AXIS)->setRegisteredProperty(BasicAxisItem::P_MIN, 0.0);
     getGroupItem(P_ALPHA_AXIS)->setRegisteredProperty(BasicAxisItem::P_MAX, 2.0);
 
diff --git a/GUI/coregui/Models/SphericalDetectorItem.h b/GUI/coregui/Models/SphericalDetectorItem.h
index 39e6b6fd6a6f9f4839bdaecb08ac494085b58265..c665cb01c0026b00a182753218546226c0634fba 100644
--- a/GUI/coregui/Models/SphericalDetectorItem.h
+++ b/GUI/coregui/Models/SphericalDetectorItem.h
@@ -16,13 +16,13 @@
 #ifndef SPHERICALDETECTORITEM_H
 #define SPHERICALDETECTORITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <memory>
 
 class IDetector2D;
 class IResolutionFunction2D;
 
-class SphericalDetectorItem : public ParameterizedItem
+class SphericalDetectorItem : public SessionItem
 {
 public:
     static const QString P_PHI_AXIS;
diff --git a/GUI/coregui/Models/TestItem.cpp b/GUI/coregui/Models/TestItem.cpp
index e5da673c3efecec0b7d738ebcb5fddecdcb23b9e..898c0a89812406e97298d5f4fb26251c757027f8 100644
--- a/GUI/coregui/Models/TestItem.cpp
+++ b/GUI/coregui/Models/TestItem.cpp
@@ -24,7 +24,7 @@ const QString TestItem::P_VALUE = "Value";
 const QString TestItem::P_COMBO = "Combo";
 const QString TestItem::P_VECTOR = "Vector";
 TestItem::TestItem()
-    : ParameterizedItem(QString("TestItem"))
+    : SessionItem(QString("TestItem"))
 {
     registerGroupProperty(P_DISTRIBUTION, Constants::DistributionExtendedGroup);
     registerProperty(P_VALUE, 99.0);
diff --git a/GUI/coregui/Models/TestItem.h b/GUI/coregui/Models/TestItem.h
index e7de4e8f52eaee5f3474f2d50ce04efbf8302502..135bb5c5467144b9f9e6d298af2604c9bd202151 100644
--- a/GUI/coregui/Models/TestItem.h
+++ b/GUI/coregui/Models/TestItem.h
@@ -16,10 +16,10 @@
 #ifndef TESTITEM_H
 #define TESTITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-//! The TestItem class for TestParameterizedItem unit tests and for checking AwesomePropertyEditor machinery
-class BA_CORE_API_ TestItem : public ParameterizedItem
+//! The TestItem class for TestSessionItem unit tests and for checking AwesomePropertyEditor machinery
+class BA_CORE_API_ TestItem : public SessionItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index 3d2a4bcd65fb1d170e4070489798a59e5abf7629..940d5ce94ff0a5f3d8493d909e6995c5645f3d71 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "TransformFromDomain.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "InterferenceFunctions.h"
 #include "InterferenceFunctionItems.h"
 #include "FTDistributions.h"
@@ -70,17 +70,17 @@
 
 using namespace BornAgain;
 
-void SetPDF1D(ParameterizedItem *item, const IFTDistribution1D *pdf, QString group_name);
-void setPDF2D(ParameterizedItem *item, const IFTDistribution2D *pdf, QString group_name);
-void SetDecayFunction1D(ParameterizedItem *item, const IFTDecayFunction1D *pdf, QString group_name);
-void SetDecayFunction2D(ParameterizedItem *item, const IFTDecayFunction2D *pdf, QString group_name);
+void SetPDF1D(SessionItem *item, const IFTDistribution1D *pdf, QString group_name);
+void setPDF2D(SessionItem *item, const IFTDistribution2D *pdf, QString group_name);
+void SetDecayFunction1D(SessionItem *item, const IFTDecayFunction1D *pdf, QString group_name);
+void SetDecayFunction2D(SessionItem *item, const IFTDecayFunction2D *pdf, QString group_name);
 
-void set2DLatticeParameters(ParameterizedItem *item, Lattice2DParameters lattice_params,
-                            ParameterizedItem *lattice_item);
-void setDistribution(ParameterizedItem *item, ParameterDistribution par_distr,
+void set2DLatticeParameters(SessionItem *item, Lattice2DParameters lattice_params,
+                            SessionItem *lattice_item);
+void setDistribution(SessionItem *item, ParameterDistribution par_distr,
                      QString group_name, double factor = 1.0);
 
-void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
+void TransformFromDomain::setItemFromSample(SessionItem *item,
                                             const InterferenceFunctionRadialParaCrystal *sample)
 {
     item->setRegisteredProperty(InterferenceFunctionRadialParaCrystalItem::P_PEAK_DISTANCE,
@@ -98,10 +98,10 @@ void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
     SetPDF1D(item, ipdf, group_name);
 }
 
-void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
+void TransformFromDomain::setItemFromSample(SessionItem *item,
                                             const InterferenceFunction2DParaCrystal *sample)
 {
-    ParameterizedItem *lattice_item(0);
+    SessionItem *lattice_item(0);
     Lattice2DParameters lattice_params = sample->getLatticeParameters();
     set2DLatticeParameters(item, lattice_params, lattice_item);
 
@@ -124,7 +124,7 @@ void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
     }
 }
 
-void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
+void TransformFromDomain::setItemFromSample(SessionItem *item,
                                             const InterferenceFunction1DLattice *sample)
 {
     Lattice1DParameters lattice_params = sample->getLatticeParameters();
@@ -139,10 +139,10 @@ void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
     SetDecayFunction1D(item, pdf, group_name);
 }
 
-void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
+void TransformFromDomain::setItemFromSample(SessionItem *item,
                                             const InterferenceFunction2DLattice *sample)
 {
-    ParameterizedItem *lattice_item(0);
+    SessionItem *lattice_item(0);
     Lattice2DParameters lattice_params = sample->getLatticeParameters();
     set2DLatticeParameters(item, lattice_params, lattice_item);
 
@@ -152,7 +152,7 @@ void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
     SetDecayFunction2D(item, p_pdf, group_name);
 }
 
-void TransformFromDomain::setItemFromSample(ParameterizedItem *layerItem, const Layer *layer,
+void TransformFromDomain::setItemFromSample(SessionItem *layerItem, const Layer *layer,
                                             const LayerInterface *top_interface)
 {
     layerItem->setRegisteredProperty(LayerItem::P_THICKNESS, layer->getThickness());
@@ -161,14 +161,14 @@ void TransformFromDomain::setItemFromSample(ParameterizedItem *layerItem, const
     if (top_interface) {
         const LayerRoughness *roughness = top_interface->getRoughness();
         if (TransformFromDomain::isValidRoughness(roughness)) {
-            ParameterizedItem *roughnessItem = layerItem->setGroupProperty(
+            SessionItem *roughnessItem = layerItem->setGroupProperty(
                 LayerItem::P_ROUGHNESS, Constants::LayerBasicRoughnessType);
             TransformFromDomain::setItemFromSample(roughnessItem, roughness);
         }
     }
 }
 
-void TransformFromDomain::setItemFromSample(ParameterizedItem *item, const LayerRoughness *sample)
+void TransformFromDomain::setItemFromSample(SessionItem *item, const LayerRoughness *sample)
 {
     item->setRegisteredProperty(LayerBasicRoughnessItem::P_SIGMA, sample->getSigma());
     item->setRegisteredProperty(LayerBasicRoughnessItem::P_HURST, sample->getHurstParameter());
@@ -177,7 +177,7 @@ void TransformFromDomain::setItemFromSample(ParameterizedItem *item, const Layer
 }
 
 //! Initialization of ParticleDistributionItem
-void TransformFromDomain::setItemFromSample(ParameterizedItem *item,
+void TransformFromDomain::setItemFromSample(SessionItem *item,
                                             const ParticleDistribution *sample)
 {
     item->setRegisteredProperty(ParticleItem::P_ABUNDANCE, sample->getAbundance());
@@ -320,7 +320,7 @@ void TransformFromDomain::setItemFromSample(SphericalDetectorItem *detectorItem,
             if (const ResolutionFunction2DGaussian *resfunc
                 = dynamic_cast<const ResolutionFunction2DGaussian *>(
                     p_convfunc->getResolutionFunction2D())) {
-                ParameterizedItem *item
+                SessionItem *item
                     = detectorItem->setGroupProperty(SphericalDetectorItem::P_RESOLUTION_FUNCTION,
                                                      Constants::ResolutionFunction2DGaussianType);
                 item->setRegisteredProperty(ResolutionFunction2DGaussianItem::P_SIGMA_X,
@@ -428,7 +428,7 @@ void TransformFromDomain::setItemFromSample(RectangularDetectorItem *detectorIte
             if (const ResolutionFunction2DGaussian *resfunc
                 = dynamic_cast<const ResolutionFunction2DGaussian *>(
                     p_convfunc->getResolutionFunction2D())) {
-                ParameterizedItem *item
+                SessionItem *item
                     = detectorItem->setGroupProperty(RectangularDetectorItem::P_RESOLUTION_FUNCTION,
                                                      Constants::ResolutionFunction2DGaussianType);
                 item->setRegisteredProperty(ResolutionFunction2DGaussianItem::P_SIGMA_X,
@@ -547,7 +547,7 @@ void TransformFromDomain::setItemFromSample(BeamDistributionItem *beamDistributi
     setDistribution(beamDistributionItem, parameterDistribution, group_name, unit_factor);
 }
 
-QString TransformFromDomain::translateParameterNameToGUI(ParameterizedItem *item,
+QString TransformFromDomain::translateParameterNameToGUI(SessionItem *item,
                                                          const QString &par_name)
 {
     auto gui_par_list = ModelPath::getParameterTreeList(item);
@@ -560,35 +560,35 @@ QString TransformFromDomain::translateParameterNameToGUI(ParameterizedItem *item
     return QString();
 }
 
-void SetPDF1D(ParameterizedItem *item, const IFTDistribution1D *ipdf, QString group_name)
+void SetPDF1D(SessionItem *item, const IFTDistribution1D *ipdf, QString group_name)
 {
     if (const FTDistribution1DCauchy *pdf = dynamic_cast<const FTDistribution1DCauchy *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution1DCauchyType);
         pdfItem->setRegisteredProperty(FTDistribution1DCauchyItem::P_CORR_LENGTH, pdf->getOmega());
     } else if (const FTDistribution1DGauss *pdf
                = dynamic_cast<const FTDistribution1DGauss *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution1DGaussType);
         pdfItem->setRegisteredProperty(FTDistribution1DGaussItem::P_CORR_LENGTH, pdf->getOmega());
     } else if (const FTDistribution1DGate *pdf = dynamic_cast<const FTDistribution1DGate *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution1DGateType);
         pdfItem->setRegisteredProperty(FTDistribution1DGateItem::P_CORR_LENGTH, pdf->getOmega());
     } else if (const FTDistribution1DTriangle *pdf
                = dynamic_cast<const FTDistribution1DTriangle *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution1DTriangleType);
         pdfItem->setRegisteredProperty(FTDistribution1DTriangleItem::P_CORR_LENGTH,
                                        pdf->getOmega());
     } else if (const FTDistribution1DCosine *pdf
                = dynamic_cast<const FTDistribution1DCosine *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution1DCosineType);
         pdfItem->setRegisteredProperty(FTDistribution1DCosineItem::P_CORR_LENGTH, pdf->getOmega());
     } else if (const FTDistribution1DVoigt *pdf
                = dynamic_cast<const FTDistribution1DVoigt *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution1DVoigtType);
         pdfItem->setRegisteredProperty(FTDistribution1DVoigtItem::P_CORR_LENGTH, pdf->getOmega());
         pdfItem->setRegisteredProperty(FTDistribution1DVoigtItem::P_ETA, pdf->getEta());
@@ -597,11 +597,11 @@ void SetPDF1D(ParameterizedItem *item, const IFTDistribution1D *ipdf, QString gr
     }
 }
 
-void setPDF2D(ParameterizedItem *item, const IFTDistribution2D *pdf, QString group_name)
+void setPDF2D(SessionItem *item, const IFTDistribution2D *pdf, QString group_name)
 {
     if (const FTDistribution2DCauchy *pdf_cauchy
         = dynamic_cast<const FTDistribution2DCauchy *>(pdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution2DCauchyType);
         pdfItem->setRegisteredProperty(FTDistribution2DCauchyItem::P_CORR_LENGTH_X,
                                        pdf_cauchy->getCoherenceLengthX());
@@ -611,7 +611,7 @@ void setPDF2D(ParameterizedItem *item, const IFTDistribution2D *pdf, QString gro
                                        Units::rad2deg(pdf_cauchy->getGamma()));
     } else if (const FTDistribution2DGauss *pdf_gauss
                = dynamic_cast<const FTDistribution2DGauss *>(pdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution2DGaussType);
         pdfItem->setRegisteredProperty(FTDistribution2DGaussItem::P_CORR_LENGTH_X,
                                        pdf_gauss->getCoherenceLengthX());
@@ -621,7 +621,7 @@ void setPDF2D(ParameterizedItem *item, const IFTDistribution2D *pdf, QString gro
                                        Units::rad2deg(pdf_gauss->getGamma()));
     } else if (const FTDistribution2DGate *pdf_gate
                = dynamic_cast<const FTDistribution2DGate *>(pdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution2DGateType);
         pdfItem->setRegisteredProperty(FTDistribution2DGateItem::P_CORR_LENGTH_X,
                                        pdf_gate->getCoherenceLengthX());
@@ -631,7 +631,7 @@ void setPDF2D(ParameterizedItem *item, const IFTDistribution2D *pdf, QString gro
                                        Units::rad2deg(pdf_gate->getGamma()));
     } else if (const FTDistribution2DCone *pdf_cone
                = dynamic_cast<const FTDistribution2DCone *>(pdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution2DConeType);
         pdfItem->setRegisteredProperty(FTDistribution2DConeItem::P_CORR_LENGTH_X,
                                        pdf_cone->getCoherenceLengthX());
@@ -641,7 +641,7 @@ void setPDF2D(ParameterizedItem *item, const IFTDistribution2D *pdf, QString gro
                                        Units::rad2deg(pdf_cone->getGamma()));
     } else if (const FTDistribution2DVoigt *pdf_voigt
                = dynamic_cast<const FTDistribution2DVoigt *>(pdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDistribution2DVoigtType);
         pdfItem->setRegisteredProperty(FTDistribution2DVoigtItem::P_CORR_LENGTH_X,
                                        pdf_voigt->getCoherenceLengthX());
@@ -655,26 +655,26 @@ void setPDF2D(ParameterizedItem *item, const IFTDistribution2D *pdf, QString gro
     }
 }
 
-void SetDecayFunction1D(ParameterizedItem *item, const IFTDecayFunction1D *ipdf, QString group_name)
+void SetDecayFunction1D(SessionItem *item, const IFTDecayFunction1D *ipdf, QString group_name)
 {
     if (const FTDecayFunction1DCauchy *pdf = dynamic_cast<const FTDecayFunction1DCauchy *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDecayFunction1DCauchyType);
         pdfItem->setRegisteredProperty(FTDecayFunction1DItem::P_DECAY_LENGTH, pdf->getOmega());
     } else if (const FTDecayFunction1DGauss *pdf
                = dynamic_cast<const FTDecayFunction1DGauss *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDecayFunction1DGaussType);
         pdfItem->setRegisteredProperty(FTDecayFunction1DItem::P_DECAY_LENGTH, pdf->getOmega());
     } else if (const FTDecayFunction1DTriangle *pdf
                = dynamic_cast<const FTDecayFunction1DTriangle *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDecayFunction1DTriangleType);
         pdfItem->setRegisteredProperty(FTDecayFunction1DItem::P_DECAY_LENGTH,
                                        pdf->getOmega());
     } else if (const FTDecayFunction1DVoigt *pdf
                = dynamic_cast<const FTDecayFunction1DVoigt *>(ipdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDecayFunction1DVoigtType);
         pdfItem->setRegisteredProperty(FTDecayFunction1DItem::P_DECAY_LENGTH, pdf->getOmega());
         pdfItem->setRegisteredProperty(FTDecayFunction1DVoigtItem::P_ETA, pdf->getEta());
@@ -683,11 +683,11 @@ void SetDecayFunction1D(ParameterizedItem *item, const IFTDecayFunction1D *ipdf,
     }
 }
 
-void SetDecayFunction2D(ParameterizedItem *item, const IFTDecayFunction2D *pdf, QString group_name)
+void SetDecayFunction2D(SessionItem *item, const IFTDecayFunction2D *pdf, QString group_name)
 {
     if (const FTDecayFunction2DCauchy *pdf_cauchy
         = dynamic_cast<const FTDecayFunction2DCauchy *>(pdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDecayFunction2DCauchyType);
         pdfItem->setRegisteredProperty(FTDecayFunction2DItem::P_DECAY_LENGTH_X,
                                        pdf_cauchy->getDecayLengthX());
@@ -697,7 +697,7 @@ void SetDecayFunction2D(ParameterizedItem *item, const IFTDecayFunction2D *pdf,
                                        Units::rad2deg(pdf_cauchy->getGamma()));
     } else if (const FTDecayFunction2DGauss *pdf_gauss
                = dynamic_cast<const FTDecayFunction2DGauss *>(pdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDecayFunction2DGaussType);
         pdfItem->setRegisteredProperty(FTDecayFunction2DItem::P_DECAY_LENGTH_X,
                                        pdf_gauss->getDecayLengthX());
@@ -707,7 +707,7 @@ void SetDecayFunction2D(ParameterizedItem *item, const IFTDecayFunction2D *pdf,
                                        Units::rad2deg(pdf_gauss->getGamma()));
     } else if (const FTDecayFunction2DVoigt *pdf_voigt
                = dynamic_cast<const FTDecayFunction2DVoigt *>(pdf)) {
-        ParameterizedItem *pdfItem
+        SessionItem *pdfItem
             = item->setGroupProperty(group_name, Constants::FTDecayFunction2DVoigtType);
         pdfItem->setRegisteredProperty(FTDecayFunction2DItem::P_DECAY_LENGTH_X,
                                        pdf_voigt->getDecayLengthX());
@@ -721,8 +721,8 @@ void SetDecayFunction2D(ParameterizedItem *item, const IFTDecayFunction2D *pdf,
     }
 }
 
-void set2DLatticeParameters(ParameterizedItem *item, Lattice2DParameters lattice_params,
-                            ParameterizedItem *lattice_item)
+void set2DLatticeParameters(SessionItem *item, Lattice2DParameters lattice_params,
+                            SessionItem *lattice_item)
 {
     if (TransformFromDomain::isSquareLattice(lattice_params.m_length_1, lattice_params.m_length_2,
                                              lattice_params.m_angle)) {
@@ -750,11 +750,11 @@ void set2DLatticeParameters(ParameterizedItem *item, Lattice2DParameters lattice
                                 Units::rad2deg(lattice_params.m_xi));
 }
 
-void setDistribution(ParameterizedItem *item, ParameterDistribution par_distr,
+void setDistribution(SessionItem *item, ParameterDistribution par_distr,
                      QString group_name, double factor)
 {
     const IDistribution1D *p_distribution = par_distr.getDistribution();
-    ParameterizedItem *pdfItem = 0;
+    SessionItem *pdfItem = 0;
     if (const DistributionGate *distr = dynamic_cast<const DistributionGate *>(p_distribution)) {
         pdfItem = item->setGroupProperty(group_name, Constants::DistributionGateType);
         pdfItem->setRegisteredProperty(DistributionGateItem::P_MIN, factor*distr->getMin());
diff --git a/GUI/coregui/Models/TransformFromDomain.h b/GUI/coregui/Models/TransformFromDomain.h
index 064496d953cc2e539ec53f83aa0cb2e8deeb2864..fe6248ea8a0194d984cff128ebcb35595a505582 100644
--- a/GUI/coregui/Models/TransformFromDomain.h
+++ b/GUI/coregui/Models/TransformFromDomain.h
@@ -19,7 +19,7 @@
 #include "WinDllMacros.h"
 #include <QString>
 
-class ParameterizedItem;
+class SessionItem;
 class BeamItem;
 class SphericalDetectorItem;
 class FormFactorAnisoPyramid;
@@ -45,26 +45,26 @@ class RectangularDetector;
 
 namespace TransformFromDomain
 {
-BA_CORE_API_ void setItemFromSample(ParameterizedItem *item, const FormFactorAnisoPyramid *sample);
+BA_CORE_API_ void setItemFromSample(SessionItem *item, const FormFactorAnisoPyramid *sample);
 
-BA_CORE_API_ void setItemFromSample(ParameterizedItem *item,
+BA_CORE_API_ void setItemFromSample(SessionItem *item,
                                     const InterferenceFunctionRadialParaCrystal *sample);
 
-BA_CORE_API_ void setItemFromSample(ParameterizedItem *item,
+BA_CORE_API_ void setItemFromSample(SessionItem *item,
                                     const InterferenceFunction2DParaCrystal *sample);
 
-BA_CORE_API_ void setItemFromSample(ParameterizedItem *item,
+BA_CORE_API_ void setItemFromSample(SessionItem *item,
                                     const InterferenceFunction1DLattice *sample);
 
-BA_CORE_API_ void setItemFromSample(ParameterizedItem *item,
+BA_CORE_API_ void setItemFromSample(SessionItem *item,
                                     const InterferenceFunction2DLattice *sample);
 
-BA_CORE_API_ void setItemFromSample(ParameterizedItem *layerItem, const Layer *layer,
+BA_CORE_API_ void setItemFromSample(SessionItem *layerItem, const Layer *layer,
                                     const LayerInterface *top_interface);
 
-BA_CORE_API_ void setItemFromSample(ParameterizedItem *item, const LayerRoughness *sample);
+BA_CORE_API_ void setItemFromSample(SessionItem *item, const LayerRoughness *sample);
 
-BA_CORE_API_ void setItemFromSample(ParameterizedItem *item, const ParticleDistribution *sample);
+BA_CORE_API_ void setItemFromSample(SessionItem *item, const ParticleDistribution *sample);
 
 BA_CORE_API_ bool isValidRoughness(const LayerRoughness *roughness);
 
@@ -92,7 +92,7 @@ BA_CORE_API_ void setItemFromSample(BeamDistributionItem *beamDistributionItem,
                                     const ParameterDistribution &parameterDistribution);
 
 
-BA_CORE_API_ QString translateParameterNameToGUI(ParameterizedItem *item, const QString &par_name);
+BA_CORE_API_ QString translateParameterNameToGUI(SessionItem *item, const QString &par_name);
 }
 
 #endif
diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp
index ae8c0338891412277afe15b094f83e558aada929..ef7c47990ffc0132eda95ddcb917ea5d1cd3fde7 100644
--- a/GUI/coregui/Models/TransformToDomain.cpp
+++ b/GUI/coregui/Models/TransformToDomain.cpp
@@ -55,7 +55,7 @@
 
 using namespace BornAgain;
 
-std::unique_ptr<IMaterial> TransformToDomain::createDomainMaterial(const ParameterizedItem &item)
+std::unique_ptr<IMaterial> TransformToDomain::createDomainMaterial(const SessionItem &item)
 {
     MaterialProperty material_property;
     if (item.modelType() == Constants::ParticleType) {
@@ -72,7 +72,7 @@ std::unique_ptr<IMaterial> TransformToDomain::createDomainMaterial(const Paramet
     return MaterialUtils::createDomainMaterial(material_property);
 }
 
-std::unique_ptr<MultiLayer> TransformToDomain::createMultiLayer(const ParameterizedItem &item)
+std::unique_ptr<MultiLayer> TransformToDomain::createMultiLayer(const SessionItem &item)
 {
     auto P_multilayer = GUIHelpers::make_unique<MultiLayer>();
     auto cross_corr_length
@@ -82,7 +82,7 @@ std::unique_ptr<MultiLayer> TransformToDomain::createMultiLayer(const Parameteri
     return P_multilayer;
 }
 
-std::unique_ptr<Layer> TransformToDomain::createLayer(const ParameterizedItem &item)
+std::unique_ptr<Layer> TransformToDomain::createLayer(const SessionItem &item)
 {
     auto P_layer = GUIHelpers::make_unique<Layer>();
     auto thickness = item.getRegisteredProperty(LayerItem::P_THICKNESS).toDouble();
@@ -93,7 +93,7 @@ std::unique_ptr<Layer> TransformToDomain::createLayer(const ParameterizedItem &i
 }
 
 std::unique_ptr<LayerRoughness>
-TransformToDomain::createLayerRoughness(const ParameterizedItem &roughnessItem)
+TransformToDomain::createLayerRoughness(const SessionItem &roughnessItem)
 {
     if (roughnessItem.modelType() == Constants::LayerZeroRoughnessType) {
         return nullptr;
@@ -109,7 +109,7 @@ TransformToDomain::createLayerRoughness(const ParameterizedItem &roughnessItem)
 }
 
 std::unique_ptr<ParticleLayout>
-TransformToDomain::createParticleLayout(const ParameterizedItem &item)
+TransformToDomain::createParticleLayout(const SessionItem &item)
 {
     auto P_layout = GUIHelpers::make_unique<ParticleLayout>();
     auto prop = item.getRegisteredProperty(ParticleLayoutItem::P_APPROX).value<ComboProperty>();
@@ -125,7 +125,7 @@ TransformToDomain::createParticleLayout(const ParameterizedItem &item)
     return P_layout;
 }
 
-std::unique_ptr<IParticle> TransformToDomain::createIParticle(const ParameterizedItem &item)
+std::unique_ptr<IParticle> TransformToDomain::createIParticle(const SessionItem &item)
 {
     std::unique_ptr<IParticle> P_particle;
     if (item.modelType() == Constants::ParticleType) {
@@ -142,7 +142,7 @@ std::unique_ptr<IParticle> TransformToDomain::createIParticle(const Parameterize
 }
 
 std::unique_ptr<ParticleDistribution> TransformToDomain::createParticleDistribution(
-        const ParameterizedItem &item)
+        const SessionItem &item)
 {
     auto& particle_distribution = static_cast<const ParticleDistributionItem&>(item);
     auto P_part_distr = particle_distribution.createParticleDistribution();
@@ -150,7 +150,7 @@ std::unique_ptr<ParticleDistribution> TransformToDomain::createParticleDistribut
 }
 
 std::unique_ptr<IDistribution1D>
-TransformToDomain::createDistribution(const ParameterizedItem &item)
+TransformToDomain::createDistribution(const SessionItem &item)
 {
     auto distr_item = dynamic_cast<const DistributionItem *>(&item);
     Q_ASSERT(distr_item);
@@ -158,7 +158,7 @@ TransformToDomain::createDistribution(const ParameterizedItem &item)
 }
 
 std::unique_ptr<IInterferenceFunction>
-TransformToDomain::createInterferenceFunction(const ParameterizedItem &item)
+TransformToDomain::createInterferenceFunction(const SessionItem &item)
 {
     std::unique_ptr<IInterferenceFunction> P_result{};
     if (item.modelType() == Constants::InterferenceFunctionRadialParaCrystalType) {
@@ -297,13 +297,13 @@ TransformToDomain::createInterferenceFunction(const ParameterizedItem &item)
     return P_result;
 }
 
-std::unique_ptr<Instrument> TransformToDomain::createInstrument(const ParameterizedItem &item)
+std::unique_ptr<Instrument> TransformToDomain::createInstrument(const SessionItem &item)
 {
     Q_UNUSED(item);
     return GUIHelpers::make_unique<Instrument>();
 }
 
-std::unique_ptr<Beam> TransformToDomain::createBeam(const ParameterizedItem &item)
+std::unique_ptr<Beam> TransformToDomain::createBeam(const SessionItem &item)
 {
     auto P_beam = GUIHelpers::make_unique<Beam>();
 
@@ -317,7 +317,7 @@ std::unique_ptr<Beam> TransformToDomain::createBeam(const ParameterizedItem &ite
     return P_beam;
 }
 
-void TransformToDomain::initInstrumentFromDetectorItem(const ParameterizedItem &item,
+void TransformToDomain::initInstrumentFromDetectorItem(const SessionItem &item,
                                                        Instrument *instrument)
 {
     auto subDetector = item.getGroupItem(DetectorItem::P_DETECTOR);
@@ -345,7 +345,7 @@ void TransformToDomain::initInstrumentFromDetectorItem(const ParameterizedItem &
 }
 
 //! adds DistributionParameters to the Simulation
-void TransformToDomain::addDistributionParametersToSimulation(const ParameterizedItem &beam_item,
+void TransformToDomain::addDistributionParametersToSimulation(const SessionItem &beam_item,
                                                               GISASSimulation *simulation)
 {
     ParameterPattern pattern_wavelength;
@@ -379,7 +379,7 @@ void TransformToDomain::addDistributionParametersToSimulation(const Parameterize
     }
 }
 
-void TransformToDomain::addMasksToSimulation(const ParameterizedItem &detector_item,
+void TransformToDomain::addMasksToSimulation(const SessionItem &detector_item,
                                              GISASSimulation *simulation)
 {
     Q_ASSERT(detector_item.modelType() == Constants::DetectorType);
@@ -417,24 +417,24 @@ void TransformToDomain::addMasksToSimulation(const ParameterizedItem &detector_i
 //}
 
 
-void TransformToDomain::setTransformationInfo(IParticle *result, const ParameterizedItem &item)
+void TransformToDomain::setTransformationInfo(IParticle *result, const SessionItem &item)
 {
     setPositionInfo(result, item);
     setRotationInfo(result, item);
 }
 
-void TransformToDomain::setPositionInfo(IParticle *result, const ParameterizedItem &item)
+void TransformToDomain::setPositionInfo(IParticle *result, const SessionItem &item)
 {
-    ParameterizedItem *pos_item = item.getGroupItem(ParticleItem::P_POSITION);
+    SessionItem *pos_item = item.getGroupItem(ParticleItem::P_POSITION);
     double pos_x = pos_item->getRegisteredProperty(VectorItem::P_X).toDouble();
     double pos_y = pos_item->getRegisteredProperty(VectorItem::P_Y).toDouble();
     double pos_z = pos_item->getRegisteredProperty(VectorItem::P_Z).toDouble();
     result->setPosition(pos_x, pos_y, pos_z);
 }
 
-void TransformToDomain::setRotationInfo(IParticle *result, const ParameterizedItem &item)
+void TransformToDomain::setRotationInfo(IParticle *result, const SessionItem &item)
 {
-    QVector<ParameterizedItem *> children = item.childItems();
+    QVector<SessionItem *> children = item.childItems();
     for (int i = 0; i < children.size(); ++i) {
         if (children[i]->modelType() == Constants::TransformationType) {
             RotationItem *rot_item = dynamic_cast<RotationItem *>(
diff --git a/GUI/coregui/Models/TransformToDomain.h b/GUI/coregui/Models/TransformToDomain.h
index a3bf0bfc0191aac52cb20e537acff50bf5854a44..2872e9a8123252997117fc4e3e85219377be59f2 100644
--- a/GUI/coregui/Models/TransformToDomain.h
+++ b/GUI/coregui/Models/TransformToDomain.h
@@ -18,35 +18,35 @@
 
 #include "Samples.h"
 #include "InterferenceFunctions.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "Instrument.h"
 
 #include <memory>
 
 namespace TransformToDomain
 {
-BA_CORE_API_ std::unique_ptr<IMaterial> createDomainMaterial(const ParameterizedItem &item);
-BA_CORE_API_ std::unique_ptr<MultiLayer> createMultiLayer(const ParameterizedItem &item);
-BA_CORE_API_ std::unique_ptr<Layer> createLayer(const ParameterizedItem &item);
-BA_CORE_API_ std::unique_ptr<LayerRoughness> createLayerRoughness(const ParameterizedItem &item);
-BA_CORE_API_ std::unique_ptr<ParticleLayout> createParticleLayout(const ParameterizedItem &item);
-BA_CORE_API_ std::unique_ptr<IParticle> createIParticle(const ParameterizedItem &item);
+BA_CORE_API_ std::unique_ptr<IMaterial> createDomainMaterial(const SessionItem &item);
+BA_CORE_API_ std::unique_ptr<MultiLayer> createMultiLayer(const SessionItem &item);
+BA_CORE_API_ std::unique_ptr<Layer> createLayer(const SessionItem &item);
+BA_CORE_API_ std::unique_ptr<LayerRoughness> createLayerRoughness(const SessionItem &item);
+BA_CORE_API_ std::unique_ptr<ParticleLayout> createParticleLayout(const SessionItem &item);
+BA_CORE_API_ std::unique_ptr<IParticle> createIParticle(const SessionItem &item);
 BA_CORE_API_ std::unique_ptr<ParticleDistribution> createParticleDistribution(
-        const ParameterizedItem &item);
-BA_CORE_API_ std::unique_ptr<IDistribution1D> createDistribution(const ParameterizedItem &item);
+        const SessionItem &item);
+BA_CORE_API_ std::unique_ptr<IDistribution1D> createDistribution(const SessionItem &item);
 BA_CORE_API_ std::unique_ptr<IInterferenceFunction> createInterferenceFunction(
-        const ParameterizedItem &item);
-BA_CORE_API_ std::unique_ptr<Instrument> createInstrument(const ParameterizedItem &item);
-BA_CORE_API_ std::unique_ptr<Beam> createBeam(const ParameterizedItem &item);
-BA_CORE_API_ void initInstrumentFromDetectorItem(const ParameterizedItem &item,
+        const SessionItem &item);
+BA_CORE_API_ std::unique_ptr<Instrument> createInstrument(const SessionItem &item);
+BA_CORE_API_ std::unique_ptr<Beam> createBeam(const SessionItem &item);
+BA_CORE_API_ void initInstrumentFromDetectorItem(const SessionItem &item,
                                                  Instrument *instrument);
-BA_CORE_API_ void addDistributionParametersToSimulation(const ParameterizedItem &beam_item,
+BA_CORE_API_ void addDistributionParametersToSimulation(const SessionItem &beam_item,
                                                         GISASSimulation *simulation);
-BA_CORE_API_ void addMasksToSimulation(const ParameterizedItem &detector_item,
+BA_CORE_API_ void addMasksToSimulation(const SessionItem &detector_item,
                                                         GISASSimulation *simulation);
-BA_CORE_API_ void setTransformationInfo(IParticle *result, const ParameterizedItem &item);
-BA_CORE_API_ void setPositionInfo(IParticle *result, const ParameterizedItem &item);
-BA_CORE_API_ void setRotationInfo(IParticle *result, const ParameterizedItem &item);
+BA_CORE_API_ void setTransformationInfo(IParticle *result, const SessionItem &item);
+BA_CORE_API_ void setPositionInfo(IParticle *result, const SessionItem &item);
+BA_CORE_API_ void setRotationInfo(IParticle *result, const SessionItem &item);
 }
 
 #endif // TRANSFORMTODOMAIN_H
diff --git a/GUI/coregui/Models/TransformationItem.cpp b/GUI/coregui/Models/TransformationItem.cpp
index 741288e8e4bb456b0e0b6e31d514acfa25c66e02..455e0b408ed8ecd034b2de4ea139a17d45b699d0 100644
--- a/GUI/coregui/Models/TransformationItem.cpp
+++ b/GUI/coregui/Models/TransformationItem.cpp
@@ -22,7 +22,7 @@ const QString TransformationItem::P_ROT = "Rotation type";
 
 
 TransformationItem::TransformationItem()
-    : ParameterizedGraphicsItem(Constants::TransformationType)
+    : SessionGraphicsItem(Constants::TransformationType)
 {
     registerGroupProperty(P_ROT, Constants::RotationGroup );
 }
diff --git a/GUI/coregui/Models/TransformationItem.h b/GUI/coregui/Models/TransformationItem.h
index 2f8e6130718ff5329361ef537fd5963a78db1879..3d82b71f47923ab32efcb36fe014c77e5a87593e 100644
--- a/GUI/coregui/Models/TransformationItem.h
+++ b/GUI/coregui/Models/TransformationItem.h
@@ -16,10 +16,10 @@
 #ifndef TRANSFORMATIONITEM_H
 #define TRANSFORMATIONITEM_H
 
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 #include <QVector>
 
-class TransformationItem : public ParameterizedGraphicsItem
+class TransformationItem : public SessionGraphicsItem
 {
     Q_OBJECT
 public:
diff --git a/GUI/coregui/Models/VectorItem.cpp b/GUI/coregui/Models/VectorItem.cpp
index 42d08567019cf5a1ace474ad1ee2a64ddfa70fc9..20596fc5a0c5dcbe5bfda021bccfdc2cab049e3b 100644
--- a/GUI/coregui/Models/VectorItem.cpp
+++ b/GUI/coregui/Models/VectorItem.cpp
@@ -20,14 +20,14 @@ const QString VectorItem::P_Y = "Y";
 const QString VectorItem::P_Z = "Z";
 
 VectorItem::VectorItem()
-    : ParameterizedItem(Constants::VectorType)
+    : SessionItem(Constants::VectorType)
 {
-    registerProperty(P_X, 0.0)->setLimits(AttLimits::limitless());
-    registerProperty(P_Y, 0.0)->setLimits(AttLimits::limitless());
-    registerProperty(P_Z, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_X, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_Y, 0.0)->setLimits(AttLimits::limitless());
+    registerProperty(P_Z, 0.0)->setLimits(AttLimits::limitless());
 }
 
-QString VectorItem::itemLabel() const
+QString VectorItem::itemLabel() const
 {
     return QString("(%1, %2, %3)").arg(getRegisteredProperty(P_X).toDouble())
                                   .arg(getRegisteredProperty(P_Y).toDouble())
diff --git a/GUI/coregui/Models/VectorItem.h b/GUI/coregui/Models/VectorItem.h
index 4f91cb4c612a73c3731fc3ae3490699285902c87..d9ef9ec75fa73dfc6e2a0027fca65331ed202c60 100644
--- a/GUI/coregui/Models/VectorItem.h
+++ b/GUI/coregui/Models/VectorItem.h
@@ -16,10 +16,10 @@
 #ifndef VECTORITEM_H
 #define VECTORITEM_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "Vectors3D.h"
 
-class BA_CORE_API_  VectorItem : public ParameterizedItem
+class BA_CORE_API_  VectorItem : public SessionItem
 {
     Q_OBJECT
 public:
@@ -28,7 +28,7 @@ public:
     static const QString P_Z;
     explicit VectorItem();
     virtual ~VectorItem(){}
-    virtual QString itemLabel() const;
+    virtual QString itemLabel() const;
 
     kvector_t getVector() const;
 };
diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
index 04b311f630c7d5931c59ae229e51298fa98884b8..e1ee563cc16075de07cae1652d77100e249df615 100644
--- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
@@ -152,7 +152,7 @@ void FitParameterWidget::clearParameter() {
     }
 }
 
-void FitParameterWidget::buildTree(QStandardItem *root, ParameterizedItem *top)
+void FitParameterWidget::buildTree(QStandardItem *root, SessionItem *top)
 {
     QStringList parameterTree = ModelPath::getParameterTreeList(top);
 
@@ -196,8 +196,8 @@ void FitParameterWidget::buildSelectorModel() {
     m_selectorModel->setHorizontalHeaderItem(1, new QStandardItem("Value"));
     QStandardItem *root = m_selectorModel->invisibleRootItem();
 
-    ParameterizedItem *topSample = m_fitModel->getSelectedMultiLayerItem();
-    ParameterizedItem *topInst = m_fitModel->getSelectedInstrumentItem();
+    SessionItem *topSample = m_fitModel->getSelectedMultiLayerItem();
+    SessionItem *topInst = m_fitModel->getSelectedInstrumentItem();
     if (topSample && topInst) {
         QStandardItem *multilayer = new QStandardItem("MultiLayer");
         root->appendRow(multilayer);
@@ -229,7 +229,7 @@ void FitParameterWidget::onCustomContextMenu(const QPoint &point) {
     m_removeAction->setEnabled(false);
     QModelIndex index = m_parameterTreeview->indexAt(point);
     if (index.isValid()) {
-        ParameterizedItem *cur = m_parameterModel->itemForIndex(index);
+        SessionItem *cur = m_parameterModel->itemForIndex(index);
         if (cur->itemName().startsWith("FitParameter")) {
             m_parameterTreeview->setCurrentIndex(index);
             m_removeAction->setEnabled(true);
@@ -252,7 +252,7 @@ void FitParameterWidget::onParameterSelectionChanged(const QItemSelection &selec
     QModelIndex index = selection.indexes().first();
     QModelIndex newSelection = QModelIndex();
     if (index.isValid() && index.parent().isValid()) {
-        ParameterizedItem *val = m_fitModel->itemForIndex(index);
+        SessionItem *val = m_fitModel->itemForIndex(index);
         QString link = val->getRegisteredProperty(FitParameterLinkItem::P_LINK).toString();
         QStandardItem *t = m_selectorModel->getItemFromPath(link);
         newSelection = m_selectorModel->indexFromItem(t);
diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.h b/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
index 83672f4328d489ae8cf9adc775e9a9abf4f5ecaf..3e1be0653bf09b180e61337dc917521f66fa2c7d 100644
--- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
+++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
@@ -29,7 +29,7 @@ class QMenu;
 class SampleModel;
 class InstrumentModel;
 class FitModel;
-class ParameterizedItem;
+class SessionItem;
 class FitParameterModel;
 class QItemSelection;
 class QSplitter;
@@ -61,7 +61,7 @@ private:
     void buildSelectorModel();
     void connectSelectorView(bool active = true);
     void connectParameterView(bool active = true);
-    void buildTree(QStandardItem *root, ParameterizedItem *top);
+    void buildTree(QStandardItem *root, SessionItem *top);
     void removeEmptyParameter();
 
     FitModel *m_fitModel;
diff --git a/GUI/coregui/Views/FitWidgets/RunFitWidget.cpp b/GUI/coregui/Views/FitWidgets/RunFitWidget.cpp
index b8f83487040d0582a0f6331afc53e9516dedeb64..a8b65f19715d595378bb438d5d4604a1ac9eb40d 100644
--- a/GUI/coregui/Views/FitWidgets/RunFitWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/RunFitWidget.cpp
@@ -25,7 +25,7 @@
 #include "FitModel.h"
 #include "DomainSimulationBuilder.h"
 #include "FitParameterItems.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "MultiLayerItem.h"
 #include "InstrumentItem.h"
 #include "SessionModel.h"
@@ -122,8 +122,8 @@ void RunFitWidget::onFittingFinished()
 // test only
 std::shared_ptr<FitSuite> RunFitWidget::init_test_fitsuite()
 {
-    ParameterizedItem *multilayer = m_fitModel->getSelectedMultiLayerItem();
-    ParameterizedItem *instrument = m_fitModel->getSelectedInstrumentItem();
+    SessionItem *multilayer = m_fitModel->getSelectedMultiLayerItem();
+    SessionItem *instrument = m_fitModel->getSelectedInstrumentItem();
 
     DomainSimulationBuilder builder;
      std::shared_ptr<FitSuite> m_fitsuite = std::shared_ptr<FitSuite>(new FitSuite());
@@ -159,16 +159,16 @@ std::shared_ptr<FitSuite> RunFitWidget::init_test_fitsuite()
     m_fitsuite->addSimulationAndRealData(*simulation.get(), *data);
 
 
-    ParameterizedItem *container = m_fitModel->getFitParameterContainer();
+    SessionItem *container = m_fitModel->getFitParameterContainer();
 
 
 
     QModelIndex c_index = m_fitModel->indexOfItem(container);
     for (int i = 0; i < m_fitModel->rowCount(c_index); i++) {
         QModelIndex child = m_fitModel->index(i,0,c_index);
-        ParameterizedItem *parameter = m_fitModel->itemForIndex(child);
+        SessionItem *parameter = m_fitModel->itemForIndex(child);
         for (int j = 0; j < m_fitModel->rowCount(child); j++) {
-            ParameterizedItem *link = m_fitModel->itemForIndex(m_fitModel->index(j,0,child));
+            SessionItem *link = m_fitModel->itemForIndex(m_fitModel->index(j,0,child));
             QString value = link->getRegisteredProperty(FitParameterLinkItem::P_LINK).toString();
             value = value.replace("Position Offset/X", "PositionX");
             value = value.replace("Position Offset/Y", "PositionY");
diff --git a/GUI/coregui/Views/FitWidgets/RunFitWidget.h b/GUI/coregui/Views/FitWidgets/RunFitWidget.h
index 548126123df60b8df21b2d222692dece420d3835..077167f8a2aa6454922dc55e2189b399d1888332 100644
--- a/GUI/coregui/Views/FitWidgets/RunFitWidget.h
+++ b/GUI/coregui/Views/FitWidgets/RunFitWidget.h
@@ -29,7 +29,7 @@ class FitProgressWidget;
 class FitModel;
 class SampleModel;
 class InstrumentModel;
-class ParameterizedItem;
+class SessionItem;
 class SessionModel;
 
 class BA_CORE_API_ RunFitWidget : public QWidget
@@ -65,7 +65,7 @@ private:
     FitProgressWidget *m_fitprogress;
     FitModel *m_fitModel;
 
-    ParameterizedItem *getTopItemFromSelection(SessionModel *model, const QString &itemType, const QString &selectionType);
+    SessionItem *getTopItemFromSelection(SessionModel *model, const QString &itemType, const QString &selectionType);
 };
 
 #endif
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionDialog.cpp b/GUI/coregui/Views/InfoWidgets/DistributionDialog.cpp
index 6cec8c4fb3fb2bc9eaaaebf8497af70941d15e9a..aa3f80110842e393680640f5e46a191bb3a4618f 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionDialog.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionDialog.cpp
@@ -15,7 +15,7 @@
 
 #include "DistributionDialog.h"
 #include "DistributionEditor.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QHBoxLayout>
 #include <QPushButton>
 
@@ -48,7 +48,7 @@ DistributionDialog::DistributionDialog(QWidget *parent)
     setAttribute(Qt::WA_DeleteOnClose, true);
 }
 
-void DistributionDialog::setItem(ParameterizedItem *item)
+void DistributionDialog::setItem(SessionItem *item)
 {
     m_editor->setItem(item);
 }
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionDialog.h b/GUI/coregui/Views/InfoWidgets/DistributionDialog.h
index 18f7951d4cc8ed6a4b1e72eca152e9fa72fe79cb..be94e7851e97044594d0093e2c14efe5f683d475 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionDialog.h
+++ b/GUI/coregui/Views/InfoWidgets/DistributionDialog.h
@@ -18,7 +18,7 @@
 
 #include <QDialog>
 class DistributionEditor;
-class ParameterizedItem;
+class SessionItem;
 
 //! The dialog which shows an editor to change parameters of DistributionItem
 class DistributionDialog : public QDialog
@@ -29,7 +29,7 @@ public:
     DistributionDialog(QWidget *parent = 0);
     virtual ~DistributionDialog(){}
 
-    void setItem(ParameterizedItem *item);
+    void setItem(SessionItem *item);
     void setNameOfEditor(const QString &name);
 
 private:
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp b/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
index 004b0127404d2d9d50af7acb7ee1b2bb5eee99d8..1bb02d7bdf0d1579d7531ba6ca9c7afb9ba94be5 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "BeamWavelengthItem.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "ComponentBoxEditor.h"
 #include "DistributionWidget.h"
 #include "DistributionEditor.h"
@@ -55,7 +55,7 @@ DistributionEditor::DistributionEditor(QWidget *parent)
     setLayout(mainLayout);
 }
 
-void DistributionEditor::setItem(ParameterizedItem *item)
+void DistributionEditor::setItem(SessionItem *item)
 {
     m_propertyEditor->clearEditor();
     m_propertyEditor->addPropertyItems(item);
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionEditor.h b/GUI/coregui/Views/InfoWidgets/DistributionEditor.h
index 637fff3616b813c5b0442d59ca7c83e1e883a084..4aaf45f1a050975db1062756520cdfd14d0c374b 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionEditor.h
+++ b/GUI/coregui/Views/InfoWidgets/DistributionEditor.h
@@ -21,7 +21,7 @@
 
 class QGroupBox;
 class DistributionWidget;
-class ParameterizedItem;
+class SessionItem;
 class ComponentBoxEditor;
 
 //! The DistributionEditor class, being a child of DistributionDialog, contains a widget
@@ -32,8 +32,8 @@ class DistributionEditor : public QWidget
 public:
     DistributionEditor(QWidget *parent = 0);
     virtual ~DistributionEditor() {}
-    void setItem(ParameterizedItem *item);
-    void plotItem(ParameterizedItem *item);
+    void setItem(SessionItem *item);
+    void plotItem(SessionItem *item);
     void setNameOfEditor(QString name);
 
 private slots:
@@ -41,7 +41,7 @@ private slots:
 
 private:
     ComponentBoxEditor *m_propertyEditor;
-    ParameterizedItem *m_item;
+    SessionItem *m_item;
     DistributionWidget *m_plotwidget;
     QString m_nameOfEditor;
     QGroupBox *m_box;
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionWidget.h b/GUI/coregui/Views/InfoWidgets/DistributionWidget.h
index 724d88ff0b679a00477f8d76c23b7783c4623ab3..339a378f006db7500429e9b40699a8ef034df8e4 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionWidget.h
+++ b/GUI/coregui/Views/InfoWidgets/DistributionWidget.h
@@ -20,7 +20,7 @@
 #include "WarningSignWidget.h"
 #include "qcustomplot.h"
 
-class ParameterizedItem;
+class SessionItem;
 class AwesomePropertyEditor;
 class QLabel;
 class QCustomPlot;
diff --git a/GUI/coregui/Views/InfoWidgets/PySampleWidget.cpp b/GUI/coregui/Views/InfoWidgets/PySampleWidget.cpp
index f314c3cb2ebccd8e1ac3ce6363dc898495e9ebba..a90885bf9b8e34a09f585d044253219f87f335fe 100644
--- a/GUI/coregui/Views/InfoWidgets/PySampleWidget.cpp
+++ b/GUI/coregui/Views/InfoWidgets/PySampleWidget.cpp
@@ -227,13 +227,13 @@ QString PySampleWidget::generateCodeSnippet()
 
     QString result;
 
-    QMap<QString, ParameterizedItem *> sampleMap = m_sampleModel->getSampleMap();
-    for(QMap<QString, ParameterizedItem *>::iterator it = sampleMap.begin();
+    QMap<QString, SessionItem *> sampleMap = m_sampleModel->getSampleMap();
+    for(QMap<QString, SessionItem *>::iterator it = sampleMap.begin();
         it!=sampleMap.end(); ++it) {
 
         DomainObjectBuilder builder;
         PyGenVisitor visitor;
-        ParameterizedItem *sampleItem = it.value();
+        SessionItem *sampleItem = it.value();
 
         try {
             auto P_multilayer = builder.buildMultiLayer(*sampleItem);
diff --git a/GUI/coregui/Views/InstrumentView.cpp b/GUI/coregui/Views/InstrumentView.cpp
index c4b96119bc3b7a8a746176bf014f7e48fdd2eb67..2b7b2c7f597e71b74216ef011828e2bebba30091 100644
--- a/GUI/coregui/Views/InstrumentView.cpp
+++ b/GUI/coregui/Views/InstrumentView.cpp
@@ -79,7 +79,7 @@ void InstrumentView::resetView()
 {
     qDebug() << "InstrumentView::resetView()";
 
-    QMap<ParameterizedItem *, InstrumentEditorWidget *>::iterator it = m_instrumentToEditor.begin();
+    QMap<SessionItem *, InstrumentEditorWidget *>::iterator it = m_instrumentToEditor.begin();
     while(it!=m_instrumentToEditor.end()) {
         m_stackWidget->removeWidget(it.value());
         delete it.value();
@@ -98,8 +98,8 @@ void InstrumentView::onSelectionChanged(const QItemSelection &selected, const QI
         return;
     }
 
-    ParameterizedItem *instrument = m_instrumentModel->itemForIndex(selected.indexes().back());
-    qDebug() << "InstrumentView::onSelectionChanged()" << instrument->itemName();
+    SessionItem *instrument = m_instrumentModel->itemForIndex(selected.indexes().back());
+    qDebug() << "InstrumentView::onSelectionChanged()" << instrument->itemName();
 
     InstrumentEditorWidget *widget = m_instrumentToEditor[instrument];
 
@@ -123,8 +123,8 @@ void InstrumentView::onSelectionChanged(const QItemSelection &selected, const QI
 void InstrumentView::onAddInstrument()
 {
     qDebug() << "InstrumentView::onAddInstrument()";
-    ParameterizedItem *instrument = m_instrumentModel->insertNewItem(Constants::InstrumentType);
-    instrument->setItemName(getNewInstrumentName("Default GISAS"));
+    SessionItem *instrument = m_instrumentModel->insertNewItem(Constants::InstrumentType);
+    instrument->setItemName(getNewInstrumentName("Default GISAS"));
     m_instrumentModel->insertNewItem(Constants::DetectorType, m_instrumentModel->indexOfItem(instrument));
     m_instrumentModel->insertNewItem(Constants::BeamType, m_instrumentModel->indexOfItem(instrument));
     QModelIndex itemIndex = m_instrumentModel->indexOfItem(instrument);
@@ -148,13 +148,13 @@ void InstrumentView::onRemoveInstrument()
 void InstrumentView::onRowsAboutToBeRemoved(QModelIndex parent, int first, int /* last */)
 {
     qDebug() << "InstrumentView::onRowsAboutToBeRemoved()";
-    ParameterizedItem *item = m_instrumentModel->itemForIndex(m_instrumentModel->index(first,0, parent));
+    SessionItem *item = m_instrumentModel->itemForIndex(m_instrumentModel->index(first,0, parent));
     Q_ASSERT(item);
     InstrumentEditorWidget *widget = m_instrumentToEditor[item];
 
     if(!widget) return;
 
-    QMap<ParameterizedItem *, InstrumentEditorWidget *>::iterator it = m_instrumentToEditor.begin();
+    QMap<SessionItem *, InstrumentEditorWidget *>::iterator it = m_instrumentToEditor.begin();
     while(it!=m_instrumentToEditor.end()) {
         if(it.value() == widget) {
             it = m_instrumentToEditor.erase(it);
@@ -266,7 +266,7 @@ void InstrumentView::updateMapOfNames()
     QModelIndex parentIndex;
     for( int i_row = 0; i_row < m_instrumentModel->rowCount( parentIndex ); ++i_row) {
         QModelIndex itemIndex = m_instrumentModel->index( i_row, 0, parentIndex );
-        QString name =  m_instrumentModel->itemForIndex(itemIndex)->itemName();
+        QString name =  m_instrumentModel->itemForIndex(itemIndex)->itemName();
         int ncopy(1);
         QRegExp regexp("\\((.*)\\)");
         if(regexp.indexIn(name) >= 0) {
diff --git a/GUI/coregui/Views/InstrumentView.h b/GUI/coregui/Views/InstrumentView.h
index 76266479a1d600e7b155e948ac1495e95f4c072c..e7adfd023205f3b944c59dcaaa499bcfbb6fa197 100644
--- a/GUI/coregui/Views/InstrumentView.h
+++ b/GUI/coregui/Views/InstrumentView.h
@@ -29,7 +29,7 @@ class QStackedWidget;
 class QMenu;
 class QAction;
 class QItemSelection;
-class ParameterizedItem;
+class SessionItem;
 class QToolBar;
 class QToolButton;
 class DetectorItem;
@@ -64,7 +64,7 @@ private:
     QToolBar *m_toolBar;
     InstrumentSelectorWidget *m_instrumentSelector;
     QStackedWidget *m_stackWidget;
-    QMap<ParameterizedItem *, InstrumentEditorWidget *> m_instrumentToEditor;
+    QMap<SessionItem *, InstrumentEditorWidget *> m_instrumentToEditor;
     QAction *m_addInstrumentAction;
     QAction *m_removeInstrumentAction;
     QToolButton *m_addInstrumentButton;
diff --git a/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.cpp
index c3a598ea810aef50964e0a51104a904467b331ca..ed013ca810c51f6913367325643dbf0c48178a00 100644
--- a/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.cpp
@@ -61,18 +61,18 @@ BeamEditorWidget::BeamEditorWidget(QWidget *parent)
 
     m_wavelengthPresenter = new ComponentInfoBox(name_of_groupbox_wavenlength);
     m_gridLayout->addWidget(m_wavelengthPresenter, 1, 0);
-    connect(m_wavelengthPresenter, SIGNAL(onDialogRequest(ParameterizedItem*, QString)), this,
-            SLOT(onDialogRequest(ParameterizedItem*, QString)));
+    connect(m_wavelengthPresenter, SIGNAL(onDialogRequest(SessionItem*, QString)), this,
+            SLOT(onDialogRequest(SessionItem*, QString)));
 
     m_inclinationAnglePresenter = new ComponentInfoBox(name_of_groupbox_inclination, this);
     m_gridLayout->addWidget(m_inclinationAnglePresenter, 1, 1);
-    connect(m_inclinationAnglePresenter, SIGNAL(onDialogRequest(ParameterizedItem*, QString)),
-            this, SLOT(onDialogRequest(ParameterizedItem*, QString)));
+    connect(m_inclinationAnglePresenter, SIGNAL(onDialogRequest(SessionItem*, QString)),
+            this, SLOT(onDialogRequest(SessionItem*, QString)));
 
     m_azimuthalAnglePresenter = new ComponentInfoBox(name_of_groupbox_azimuthal, this);
     m_gridLayout->addWidget(m_azimuthalAnglePresenter, 1, 2);
-    connect(m_azimuthalAnglePresenter, SIGNAL(onDialogRequest(ParameterizedItem*, QString)),
-            this, SLOT(onDialogRequest(ParameterizedItem*, QString)));
+    connect(m_azimuthalAnglePresenter, SIGNAL(onDialogRequest(SessionItem*, QString)),
+            this, SLOT(onDialogRequest(SessionItem*, QString)));
 
     groupLayout->addLayout(m_gridLayout);
 
@@ -94,20 +94,20 @@ void BeamEditorWidget::setBeamItem(BeamItem *beamItem)
     if (!m_beamItem)
         return;
 
-    m_intensityEditor->addItem(m_beamItem->getItem(BeamItem::P_INTENSITY));
+    m_intensityEditor->addItem(m_beamItem->getItem(BeamItem::P_INTENSITY));
 
-    ParameterizedItem *wavelengthItem = m_beamItem->getGroupItem(BeamItem::P_WAVELENGTH);
+    SessionItem *wavelengthItem = m_beamItem->getGroupItem(BeamItem::P_WAVELENGTH);
     m_wavelengthPresenter->addPropertyItems(wavelengthItem);
 
-    ParameterizedItem *inclinationAngleItem
+    SessionItem *inclinationAngleItem
             = m_beamItem->getGroupItem(BeamItem::P_INCLINATION_ANGLE);
     m_inclinationAnglePresenter->addPropertyItems(inclinationAngleItem);
 
-    ParameterizedItem *azimuthalAngleItem = m_beamItem->getGroupItem(BeamItem::P_AZIMUTHAL_ANGLE);
+    SessionItem *azimuthalAngleItem = m_beamItem->getGroupItem(BeamItem::P_AZIMUTHAL_ANGLE);
     m_azimuthalAnglePresenter->addPropertyItems(azimuthalAngleItem);
 }
 
-void BeamEditorWidget::onDialogRequest(ParameterizedItem *item, QString name)
+void BeamEditorWidget::onDialogRequest(SessionItem *item, QString name)
 {
     DistributionDialog *dialog = new DistributionDialog(this);
     dialog->setItem(item);
diff --git a/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.h b/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.h
index 301884e67f7a6f4b647d69781a7b652397e73d4a..cdbc8605a018c77b4f31e0952da0cfead1591084 100644
--- a/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.h
+++ b/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.h
@@ -18,7 +18,7 @@
 
 #include "WinDllMacros.h"
 #include <QWidget>
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
 class BeamItem;
 class ComponentBoxEditor;
@@ -36,7 +36,7 @@ public:
     QGridLayout *getGridLayout() { return m_gridLayout;}
 
 private slots:
-    void onDialogRequest(ParameterizedItem *item, QString name);
+    void onDialogRequest(SessionItem *item, QString name);
 
 private:
     ComponentBoxEditor *m_intensityEditor;
diff --git a/GUI/coregui/Views/InstrumentWidgets/ComponentInfoBox.cpp b/GUI/coregui/Views/InstrumentWidgets/ComponentInfoBox.cpp
index cb782bf635d23f344e139307479a22ffb180129d..9821bd4b8ce621d9d4454416efd05fe8d2f94ed3 100644
--- a/GUI/coregui/Views/InstrumentWidgets/ComponentInfoBox.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/ComponentInfoBox.cpp
@@ -41,7 +41,7 @@ ComponentInfoBox::ComponentInfoBox(const QString &title, QWidget *parent)
     setLayout(mainLayout);
 }
 
-void ComponentInfoBox::addPropertyItems(ParameterizedItem *item)
+void ComponentInfoBox::addPropertyItems(SessionItem *item)
 {
     m_editor->addPropertyItems(item);
     m_item = item;
diff --git a/GUI/coregui/Views/InstrumentWidgets/ComponentInfoBox.h b/GUI/coregui/Views/InstrumentWidgets/ComponentInfoBox.h
index 8c22032aaac421aa59a3aee5baeb21ff6f89aaf4..3203c50b173eb1538bf84580286fa7c49aedc0c6 100644
--- a/GUI/coregui/Views/InstrumentWidgets/ComponentInfoBox.h
+++ b/GUI/coregui/Views/InstrumentWidgets/ComponentInfoBox.h
@@ -21,7 +21,7 @@
 #include <QWidget>
 
 class ComponentBoxEditor;
-class ParameterizedItem;
+class SessionItem;
 
 //! The ComponentEditorBox is a widget to display ComponentEditor inside
 //! custom group box equipped with help sign functionality
@@ -33,12 +33,12 @@ public:
 
     ComponentInfoBox(const QString &title, QWidget *parent = 0);
 
-    void addPropertyItems(ParameterizedItem *item);
+    void addPropertyItems(SessionItem *item);
 
     void clearEditor();
 
 signals:
-    void onDialogRequest(ParameterizedItem *item, QString names);
+    void onDialogRequest(SessionItem *item, QString names);
 
 private slots:
     void dialogRequest();
@@ -46,7 +46,7 @@ private slots:
 private:
     GroupInfoBox *m_groupBox;
     ComponentBoxEditor *m_editor;
-    ParameterizedItem *m_item;
+    SessionItem *m_item;
     QString m_title;
 };
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.cpp
index b59bb8e9f9f69b5869ca0521ab992c24fdc59ab8..6f2ee3fd80ef5be9916a248fc8ae3e0cdb7f505f 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.cpp
@@ -71,7 +71,7 @@ void DetectorEditorWidget::setDetectorItem(DetectorItem *detectorItem)
     });
 
     m_detectorTypeEditor->clearEditor();
-    m_detectorTypeEditor->addItem(m_detectorItem->getItem(DetectorItem::P_DETECTOR));
+    m_detectorTypeEditor->addItem(m_detectorItem->getItem(DetectorItem::P_DETECTOR));
 
     init_SubDetector_Widget();
 }
@@ -95,7 +95,7 @@ void DetectorEditorWidget::init_SubDetector_Widget()
     m_subDetectorWidget = 0;
 
 
-    ParameterizedItem *subItem = m_detectorItem->getGroupItem(DetectorItem::P_DETECTOR);
+    SessionItem *subItem = m_detectorItem->getGroupItem(DetectorItem::P_DETECTOR);
 //    if(SphericalDetectorItem *SphericalDetectorItem = dynamic_cast<)
 
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
index 1f091a5493b4c6f29d29ca0b23ece15246e452c1..256c2d240a825ba771ba7f68cc3bb9b41aae2429 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "InstrumentEditorWidget.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "BeamItem.h"
 #include "DetectorItems.h"
 #include "DetectorEditorWidget.h"
@@ -107,7 +107,7 @@ InstrumentEditorWidget::InstrumentEditorWidget(QWidget *parent)
             );
 }
 
-void InstrumentEditorWidget::setInstrumentItem(ParameterizedItem *instrument)
+void InstrumentEditorWidget::setInstrumentItem(SessionItem *instrument)
 {
     Q_ASSERT(instrument);
     if(instrument != m_currentItem) {
@@ -148,7 +148,7 @@ void InstrumentEditorWidget::onChangedEditor(const QString &)
     Q_ASSERT(m_currentItem);
     if(m_block_signals) return;
     qDebug() << "          InstrumentEditorWidget::onChangedEditor(): " << m_nameLineEdit->text();
-    m_currentItem->setItemName(m_nameLineEdit->text());
+    m_currentItem->setItemName(m_nameLineEdit->text());
 }
 
 void InstrumentEditorWidget::onPropertyChanged(const QString &)
@@ -180,6 +180,6 @@ void InstrumentEditorWidget::updateWidgets()
     qDebug() << "InstrumentEditorWidget::updateWidgets() ->";
     Q_ASSERT(m_currentItem);
     m_block_signals = true;
-    m_nameLineEdit->setText(m_currentItem->itemName());
+    m_nameLineEdit->setText(m_currentItem->itemName());
     m_block_signals = false;
 }
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h
index 1569de14844b06b4327de84d49070115603a16b6..e2508a9a537f304ed420111f54b1ebc04981e3db 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h
@@ -22,7 +22,7 @@
 #include <QLabel>
 #include <QMap>
 
-class ParameterizedItem;
+class SessionItem;
 class DetectorEditorWidget;
 class BeamEditorWidget;
 class QLineEdit;
@@ -38,7 +38,7 @@ public:
     InstrumentEditorWidget(QWidget *parent = 0);
     QSize sizeHint() const { return QSize(600, 600); }
 
-    void setInstrumentItem(ParameterizedItem *instrument);
+    void setInstrumentItem(SessionItem *instrument);
 
 signals:
     void extendedDetectorEditorRequest(DetectorItem *);
@@ -54,7 +54,7 @@ private:
 
     QLineEdit *m_nameLineEdit;
     QComboBox *m_typeComboBox;
-    ParameterizedItem *m_currentItem;
+    SessionItem *m_currentItem;
     bool m_block_signals;
     InstrumentComponentsWidget *m_instrumentComponents;
 };
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.cpp
index cf4cbda71816293090541686214fac51c7623c5f..11379a6601f7d628f9ee8466f5e3481f542a1e54 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.cpp
@@ -15,7 +15,7 @@
 
 #include "InstrumentSelectorWidget.h"
 #include "InstrumentModel.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QListView>
 #include <QVBoxLayout>
 #include <QPushButton>
diff --git a/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorWidget.cpp
index 0d2bf9b9f588d36e9d1e42a0102434944e951d02..053c25a51631fe834475a8f811816905a47defd9 100644
--- a/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorWidget.cpp
@@ -143,21 +143,21 @@ void RectangularDetectorWidget::create_editors()
 void RectangularDetectorWidget::init_editors()
 {
     m_xAxisEditor->clearEditor();
-    ParameterizedItem *xAxisItem = m_detectorItem->getGroupItem(RectangularDetectorItem::P_X_AXIS);
+    SessionItem *xAxisItem = m_detectorItem->getGroupItem(RectangularDetectorItem::P_X_AXIS);
     m_xAxisEditor->addPropertyItems(xAxisItem, QString("X axis"));
 
     m_yAxisEditor->clearEditor();
-    ParameterizedItem *yAxisItem
+    SessionItem *yAxisItem
         = m_detectorItem->getGroupItem(RectangularDetectorItem::P_Y_AXIS);
     m_yAxisEditor->addPropertyItems(yAxisItem, QString("Y axis"));
 
     m_resolutionFunctionEditor->clearEditor();
-    ParameterizedItem *resFuncGroup = m_detectorItem->getItem(RectangularDetectorItem::P_RESOLUTION_FUNCTION);
+    SessionItem *resFuncGroup = m_detectorItem->getItem(RectangularDetectorItem::P_RESOLUTION_FUNCTION);
     m_resolutionFunctionEditor->addPropertyItems(resFuncGroup, QString("Resolution function"));
 
 
     m_alignmentEditor->clearEditor();
-    m_alignmentEditor->addItem(m_detectorItem->getItem(RectangularDetectorItem::P_ALIGNMENT));
+    m_alignmentEditor->addItem(m_detectorItem->getItem(RectangularDetectorItem::P_ALIGNMENT));
 
     init_alignment_editors();
 }
@@ -183,33 +183,33 @@ void RectangularDetectorWidget::init_alignment_editors()
         m_normalEditor->show();
         m_directionEditor->show();
 
-        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_U0), "Positions");
-        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_V0), "Positions");
+        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_U0), "Positions");
+        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_V0), "Positions");
 
-        ParameterizedItem *normalVectorItem
+        SessionItem *normalVectorItem
             = m_detectorItem->getGroupItem(RectangularDetectorItem::P_NORMAL);
         m_normalEditor->addPropertyItems(normalVectorItem, "Normal vector");
 
-        ParameterizedItem *directionVectorItem
+        SessionItem *directionVectorItem
             = m_detectorItem->getGroupItem(RectangularDetectorItem::P_DIRECTION);
         m_directionEditor->addPropertyItems(directionVectorItem, "Direction vector");
 
     } else if (alignment.getValue() == Constants::ALIGNMENT_TO_DIRECT_BEAM ||
                alignment.getValue() == Constants::ALIGNMENT_TO_REFLECTED_BEAM_DPOS) {
         m_positionsEditor->show();
-        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_DBEAM_U0), "Positions");
-        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_DBEAM_V0), "Positions");
+        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_DBEAM_U0), "Positions");
+        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_DBEAM_V0), "Positions");
 
-        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_DISTANCE), "Positions");
+        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_DISTANCE), "Positions");
 
     } else if (alignment.getValue() == Constants::ALIGNMENT_TO_SAMPLE ||
                alignment.getValue() == Constants::ALIGNMENT_TO_REFLECTED_BEAM) {
         m_positionsEditor->show();
 
-        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_U0), "Positions");
-        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_V0), "Positions");
+        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_U0), "Positions");
+        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_V0), "Positions");
 
-        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_DISTANCE), "Positions");
+        m_positionsEditor->addPropertyItems(m_detectorItem->getItem(RectangularDetectorItem::P_DISTANCE), "Positions");
 
     }
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorWidget.cpp
index 21e9e3c6fdafc2fe6ebfa9a2c88a56d66871feca..aa53975c383fac437ce4cfe37a3ab2583db1fdf9 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorWidget.cpp
@@ -80,14 +80,14 @@ void SphericalDetectorWidget::setDetectorItem(DetectorItem *detectorItem)
                 detectorItem->getGroupItem(DetectorItem::P_DETECTOR));
     Q_ASSERT(sphericalDetector);
 
-    ParameterizedItem *phiAxisItem = sphericalDetector->getGroupItem(SphericalDetectorItem::P_PHI_AXIS);
+    SessionItem *phiAxisItem = sphericalDetector->getGroupItem(SphericalDetectorItem::P_PHI_AXIS);
     m_phiAxisEditor->addPropertyItems(phiAxisItem, QString("Phi axis"));
 
-    ParameterizedItem *alphaAxisItem
+    SessionItem *alphaAxisItem
         = sphericalDetector->getGroupItem(SphericalDetectorItem::P_ALPHA_AXIS);
     m_alphaAxisEditor->addPropertyItems(alphaAxisItem, QString("Alpha axis"));
 
-    ParameterizedItem *resFuncGroup = sphericalDetector->getItem(SphericalDetectorItem::P_RESOLUTION_FUNCTION);
+    SessionItem *resFuncGroup = sphericalDetector->getItem(SphericalDetectorItem::P_RESOLUTION_FUNCTION);
     m_resolutionFunctionEditor->addPropertyItems(resFuncGroup, QString("Resolution function"));
 }
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMapPlot.cpp b/GUI/coregui/Views/IntensityDataWidgets/ColorMapPlot.cpp
index 70c4aae8d85fd35ffe3ea4067f8333eb5d9634b3..4b73e7163c4707f0a6e45b8b198a169d9314b860 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMapPlot.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMapPlot.cpp
@@ -68,7 +68,7 @@ void ColorMapPlot::setItem(IntensityDataItem *item)
         onPropertyChanged(name);
     });
     mapper->setOnChildPropertyChange(
-                [this](ParameterizedItem* item, const QString name)
+                [this](SessionItem* item, const QString name)
     {
         if (item->parent() && item->parent()->modelType() == Constants::GroupItemType)
             onSubItemPropertyChanged(item->itemName(), name);
diff --git a/GUI/coregui/Views/IntensityDataWidgets/HorizontalSlicePlot.cpp b/GUI/coregui/Views/IntensityDataWidgets/HorizontalSlicePlot.cpp
index 04b7ad942078dfe17c3812ec7019f066202b357b..757aca96eb19d5ab60d2eabfcc269590ee857b0c 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/HorizontalSlicePlot.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/HorizontalSlicePlot.cpp
@@ -63,7 +63,7 @@ void HorizontalSlicePlot::setItem(IntensityDataItem *item)
     m_mapper = new ModelMapper(this);
     m_mapper->setItem(item);
     m_mapper->setOnChildPropertyChange(
-                [this](ParameterizedItem* item, const QString name)
+                [this](SessionItem* item, const QString name)
     {
         if (item->parent() && item->parent()->modelType() == Constants::GroupItemType)
             onSubItemPropertyChanged(item->itemName(), name);
diff --git a/GUI/coregui/Views/IntensityDataWidgets/VerticalSlicePlot.cpp b/GUI/coregui/Views/IntensityDataWidgets/VerticalSlicePlot.cpp
index e529dcb11ac042048c1a5b685c8343409171b22f..b656e6445c83adda8d91ab68db1446d0d93086bc 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/VerticalSlicePlot.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/VerticalSlicePlot.cpp
@@ -60,7 +60,7 @@ void VerticalSlicePlot::setItem(IntensityDataItem *item)
     m_mapper = new ModelMapper(this);
     m_mapper->setItem(item);
     m_mapper->setOnChildPropertyChange(
-                [this](ParameterizedItem* item, const QString name)
+                [this](SessionItem* item, const QString name)
     {
         if (item->parent() && item->parent()->modelType() == Constants::GroupItemType)
             onSubItemPropertyChanged(item->itemName(), name);
diff --git a/GUI/coregui/Views/JobWidgets/ModelTuningDelegate.cpp b/GUI/coregui/Views/JobWidgets/ModelTuningDelegate.cpp
index 618c53bbee75f130359d6e123a223dad897365db..af386fdc4b94ed425bc6e988d689e7f7676f4609 100644
--- a/GUI/coregui/Views/JobWidgets/ModelTuningDelegate.cpp
+++ b/GUI/coregui/Views/JobWidgets/ModelTuningDelegate.cpp
@@ -135,15 +135,15 @@ QWidget *ModelTuningDelegate::createEditor(QWidget *parent,
 
         m_current_link = index.model()->data(index, Qt::UserRole).value<ItemLink>();
 
-        ParameterizedItem *item = m_current_link.getItem();
-        AttLimits limits = item->getItem(m_current_link.getPropertyName())->limits();
+        SessionItem *item = m_current_link.getItem();
+        AttLimits limits = item->getItem(m_current_link.getPropertyName())->limits();
 
         // initializing value box
         m_valueBox = new QDoubleSpinBox();
         m_valueBox->setKeyboardTracking(false);
         m_valueBox->setFixedWidth(80);
-        m_valueBox->setDecimals(item->getItem(m_current_link.getPropertyName())->decimals());
-        m_valueBox->setSingleStep(1./std::pow(10.,item->getItem(m_current_link.getPropertyName())->decimals()-1));
+        m_valueBox->setDecimals(item->getItem(m_current_link.getPropertyName())->decimals());
+        m_valueBox->setSingleStep(1./std::pow(10.,item->getItem(m_current_link.getPropertyName())->decimals()-1));
 
         if(limits.hasLowerLimit()) {
             m_valueBox->setMinimum(limits.getLowerLimit());
diff --git a/GUI/coregui/Views/MaskWidgets/IMaskView.cpp b/GUI/coregui/Views/MaskWidgets/IMaskView.cpp
index 1d8ef07d10253e12f287ca81d198d2632c7f796f..e7effa5f6edb4f84d3923c94d769c57ed3835aa6 100644
--- a/GUI/coregui/Views/MaskWidgets/IMaskView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/IMaskView.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "IMaskView.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "ISceneAdaptor.h"
 #include "MaskItems.h"
 #include <QMenu>
@@ -37,7 +37,7 @@ QRectF IMaskView::boundingRect() const
     return m_bounding_rect;
 }
 
-void IMaskView::setParameterizedItem(ParameterizedItem *item)
+void IMaskView::setParameterizedItem(SessionItem *item)
 {
 //    if(m_item != item) {
 //        if(m_item) {
@@ -78,7 +78,7 @@ void IMaskView::setParameterizedItem(ParameterizedItem *item)
 
 }
 
-ParameterizedItem *IMaskView::getParameterizedItem()
+SessionItem *IMaskView::getParameterizedItem()
 {
     return m_item;
 }
diff --git a/GUI/coregui/Views/MaskWidgets/IMaskView.h b/GUI/coregui/Views/MaskWidgets/IMaskView.h
index f843d1b0cd5dbadca02bebd707ce334fb0bc7f4a..c4c237fa463144d15d8116c9b889a88c5c6ff676 100644
--- a/GUI/coregui/Views/MaskWidgets/IMaskView.h
+++ b/GUI/coregui/Views/MaskWidgets/IMaskView.h
@@ -20,7 +20,7 @@
 #include "MaskEditorHelper.h"
 #include <QGraphicsObject>
 
-class ParameterizedItem;
+class SessionItem;
 class ISceneAdaptor;
 class QPainter;
 class ModelMapper;
@@ -38,8 +38,8 @@ public:
 
     QRectF boundingRect() const;
 
-    virtual void setParameterizedItem(ParameterizedItem *item);
-    virtual ParameterizedItem *getParameterizedItem();
+    virtual void setParameterizedItem(SessionItem *item);
+    virtual SessionItem *getParameterizedItem();
 
     const ISceneAdaptor *getAdaptor();
     virtual void setSceneAdaptor(const ISceneAdaptor *adaptor);
@@ -68,7 +68,7 @@ public slots:
     virtual void onPropertyChange(const QString &propertyName);
 
 protected:
-    ParameterizedItem *m_item;
+    SessionItem *m_item;
     const ISceneAdaptor *m_adaptor;
     QRectF m_bounding_rect;
     ModelMapper *m_mapper;
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
index 2ee5163f038324ef2ec6340167e7af7c5d2a7824..03f4aaf132e5b243fbdec8041686ef736567d75e 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
@@ -105,7 +105,7 @@ void MaskEditor::init_test_model()
 
     // Rectangle
 
-    ParameterizedItem *container = maskModel->insertNewItem(Constants::MaskContainerType, maskModel->indexOfItem(intensityItem));
+    SessionItem *container = maskModel->insertNewItem(Constants::MaskContainerType, maskModel->indexOfItem(intensityItem));
     Q_ASSERT(container);
 
 //    RectangleItem *rect = new RectangleItem();
@@ -117,15 +117,15 @@ void MaskEditor::init_test_model()
 
 
     // Polygon
-//    ParameterizedItem *poly = m_maskModel->insertNewItem(Constants::PolygonMaskType, m_maskModel->indexOfItem(item));
+//    SessionItem *poly = m_maskModel->insertNewItem(Constants::PolygonMaskType, m_maskModel->indexOfItem(item));
 
-//    ParameterizedItem *p1 = m_maskModel->insertNewItem(Constants::PolygonPointType, m_maskModel->indexOfItem(poly));
+//    SessionItem *p1 = m_maskModel->insertNewItem(Constants::PolygonPointType, m_maskModel->indexOfItem(poly));
 //    p1->setRegisteredProperty(PolygonPointItem::P_POSX, 0.6);
 //    p1->setRegisteredProperty(PolygonPointItem::P_POSY, 1.5);
-//    ParameterizedItem *p2 = m_maskModel->insertNewItem(Constants::PolygonPointType, m_maskModel->indexOfItem(poly));
+//    SessionItem *p2 = m_maskModel->insertNewItem(Constants::PolygonPointType, m_maskModel->indexOfItem(poly));
 //    p2->setRegisteredProperty(PolygonPointItem::P_POSX, 1.0);
 //    p2->setRegisteredProperty(PolygonPointItem::P_POSY, 1.5);
-//    ParameterizedItem *p3 = m_maskModel->insertNewItem(Constants::PolygonPointType, m_maskModel->indexOfItem(poly));
+//    SessionItem *p3 = m_maskModel->insertNewItem(Constants::PolygonPointType, m_maskModel->indexOfItem(poly));
 //    p3->setRegisteredProperty(PolygonPointItem::P_POSX, 1.0);
 //    p3->setRegisteredProperty(PolygonPointItem::P_POSY, 0.6);
 
@@ -139,7 +139,7 @@ void MaskEditor::init_test_model()
 //   container->insertChildItem(-1, hline);
 
 
-//   ParameterizedItem *line = m_maskModel->insertNewItem(Constants::HorizontalLineMaskType, m_maskModel->indexOfItem(item));
+//   SessionItem *line = m_maskModel->insertNewItem(Constants::HorizontalLineMaskType, m_maskModel->indexOfItem(item));
 //   line->setRegisteredProperty(HorizontalLineItem::P_POSY, 1.0);
 
     // Ellipse
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
index a65ddc7df68b91976d03efd25551f9d6440e9d43..e14c995314b574960ac5d83b25f8daa1946987ee 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
@@ -86,7 +86,7 @@ void MaskEditorActions::onToggleMaskValueAction()
     Q_ASSERT(m_maskModel);
     Q_ASSERT(m_selectionModel);
     foreach(QModelIndex itemIndex, m_selectionModel->selectedIndexes()) {
-        if(ParameterizedItem *item =  m_maskModel->itemForIndex(itemIndex)) {
+        if(SessionItem *item =  m_maskModel->itemForIndex(itemIndex)) {
             bool old_value = item->getRegisteredProperty(MaskItem::P_MASK_VALUE).toBool();
             item->setRegisteredProperty(MaskItem::P_MASK_VALUE, !old_value);
         }
@@ -127,10 +127,10 @@ void MaskEditorActions::changeMaskStackingOrder(MaskEditorFlags::Stacking value)
     QModelIndexList indexes = m_selectionModel->selectedIndexes();
 
     foreach(QModelIndex itemIndex, indexes) {
-        if(ParameterizedItem *item =  m_maskModel->itemForIndex(itemIndex)) {
+        if(SessionItem *item =  m_maskModel->itemForIndex(itemIndex)) {
             int new_row = itemIndex.row() + change_in_row;
             if(new_row >= 0 && new_row <= m_maskModel->rowCount(m_rootIndex)) {
-                ParameterizedItem *newItem = m_maskModel->moveParameterizedItem(
+                SessionItem *newItem = m_maskModel->moveParameterizedItem(
                             item,m_maskModel->itemForIndex(m_rootIndex), new_row);
                 m_selectionModel->select(m_maskModel->indexOfItem(newItem),
                                          QItemSelectionModel::Select);
@@ -157,8 +157,8 @@ bool MaskEditorActions::isSendToBackPossible() const
     bool result(false);
     QModelIndexList indexes = m_selectionModel->selectedIndexes();
     if(indexes.size() == 1) {
-        ParameterizedItem *item = m_maskModel->itemForIndex(indexes.front());
-        if(indexes.front().row() != item->parent()->childItemCount() -1) result = true;
+        SessionItem *item = m_maskModel->itemForIndex(indexes.front());
+        if(indexes.front().row() != item->parent()->childItemCount() -1) result = true;
     }
     return result;
 }
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h b/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h
index a97aabf62d937563bf4500547fd74d1f36bdd1bd..b8b73d98d36df96d2b425c26a117f01358d54edc 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h
@@ -20,7 +20,7 @@
 #include "MaskEditorHelper.h"
 #include <QGraphicsProxyWidget>
 
-class ParameterizedItem;
+class SessionItem;
 class ISceneAdaptor;
 class ColorMapSceneAdaptor;
 
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
index 7e65631664df8b8c043cd578dbbdc62b47492c40..b3e0b2a285c097c6b03b81c60643a54382af9e82 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
@@ -17,7 +17,7 @@
 #include "SessionModel.h"
 #include "IntensityDataItem.h"
 #include "MaskGraphicsProxy.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "IMaskView.h"
 #include "ISceneAdaptor.h"
 #include "ColorMapSceneAdaptor.h"
@@ -235,7 +235,7 @@ void MaskGraphicsScene::onSessionSelectionChanged(const QItemSelection & /* sele
 
     m_block_selection = true;
 
-    for (QMap<ParameterizedItem *, IMaskView *>::iterator it = m_ItemToView.begin();
+    for (QMap<SessionItem *, IMaskView *>::iterator it = m_ItemToView.begin();
          it != m_ItemToView.end(); ++it) {
         QModelIndex index = m_maskModel->indexOfItem(it.key());
         if (index.isValid()) {
@@ -262,7 +262,7 @@ void MaskGraphicsScene::onSceneSelectionChanged()
     for (int i = 0; i < selected.size(); ++i) {
         IMaskView *view = dynamic_cast<IMaskView *>(selected[i]);
         if (view) {
-            ParameterizedItem *maskItem = view->getParameterizedItem();
+            SessionItem *maskItem = view->getParameterizedItem();
             QModelIndex itemIndex = m_maskModel->indexOfItem(maskItem);
             Q_ASSERT(itemIndex.isValid());
             if (!m_selectionModel->isSelected(itemIndex))
@@ -411,7 +411,7 @@ void MaskGraphicsScene::updateViews(const QModelIndex &parentIndex, IMaskView *p
     IMaskView *childView(0);
     for (int i_row = 0; i_row < m_maskModel->rowCount(parentIndex); ++i_row) {
         QModelIndex itemIndex = m_maskModel->index(i_row, 0, parentIndex);
-        if (ParameterizedItem *item = m_maskModel->itemForIndex(itemIndex)) {
+        if (SessionItem *item = m_maskModel->itemForIndex(itemIndex)) {
 
             if (item && (item->modelType() == Constants::GroupItemType || item->modelType() == Constants::PropertyType)) {
                 continue;
@@ -431,7 +431,7 @@ void MaskGraphicsScene::updateViews(const QModelIndex &parentIndex, IMaskView *p
     }
 }
 
-IMaskView *MaskGraphicsScene::addViewForItem(ParameterizedItem *item)
+IMaskView *MaskGraphicsScene::addViewForItem(SessionItem *item)
 {
     Q_ASSERT(item);
     IMaskView *view = m_ItemToView[item];
@@ -451,7 +451,7 @@ void MaskGraphicsScene::deleteViews(const QModelIndex &parentIndex)
 {
     for (int i_row = 0; i_row < m_maskModel->rowCount(parentIndex); ++i_row) {
         QModelIndex itemIndex = m_maskModel->index(i_row, 0, parentIndex);
-        if (ParameterizedItem *item = m_maskModel->itemForIndex(itemIndex)) {
+        if (SessionItem *item = m_maskModel->itemForIndex(itemIndex)) {
             removeItemViewFromScene(item);
         }
         deleteViews(itemIndex);
@@ -460,9 +460,9 @@ void MaskGraphicsScene::deleteViews(const QModelIndex &parentIndex)
 }
 
 //! removes single view from scene
-void MaskGraphicsScene::removeItemViewFromScene(ParameterizedItem *item)
+void MaskGraphicsScene::removeItemViewFromScene(SessionItem *item)
 {
-    for (QMap<ParameterizedItem *, IMaskView *>::iterator it = m_ItemToView.begin();
+    for (QMap<SessionItem *, IMaskView *>::iterator it = m_ItemToView.begin();
          it != m_ItemToView.end(); ++it) {
         if (it.key() == item) {
             IMaskView *view = it.value();
@@ -530,7 +530,7 @@ bool MaskGraphicsScene::isValidForMaskAllDrawing(QGraphicsSceneMouseEvent *event
     if(!isValidMouseClick(event)) return false;
     if(isDrawingInProgress()) return false;
     if(!m_context.isMaskAllMode()) return false;
-    foreach(ParameterizedItem *item, m_ItemToView.keys()) {
+    foreach(SessionItem *item, m_ItemToView.keys()) {
         if(item->modelType() == Constants::MaskAllType) return false;
     }
     return true;
@@ -666,7 +666,7 @@ void MaskGraphicsScene::processPolygonItem(QGraphicsSceneMouseEvent *event)
         }
     }
 
-    ParameterizedItem *point = m_maskModel->insertNewItem(Constants::PolygonPointType,
+    SessionItem *point = m_maskModel->insertNewItem(Constants::PolygonPointType,
                                                           m_maskModel->indexOfItem(m_currentItem));
     QPointF click_pos = event->buttonDownScenePos(Qt::LeftButton);
 
@@ -727,7 +727,7 @@ void MaskGraphicsScene::setZValues()
     Q_ASSERT(m_maskContainerIndex.isValid());
     for(int i = 0; i < m_maskModel->rowCount(m_maskContainerIndex); i++) {
         QModelIndex itemIndex = m_maskModel->index(i, 0, m_maskContainerIndex);
-        ParameterizedItem *item =  m_maskModel->itemForIndex(itemIndex);
+        SessionItem *item =  m_maskModel->itemForIndex(itemIndex);
         Q_ASSERT(item);
         if(IMaskView *view = m_ItemToView[item]) {
             view->setZValue(m_maskModel->rowCount(m_maskContainerIndex) -  itemIndex.row() + 1);
@@ -753,12 +753,12 @@ PolygonView *MaskGraphicsScene::getCurrentPolygon() const
 
 //! Sets item name depending on alreay existent items.
 //! If there is already "Rectangle1", the new name will be "Rectangle2"
-void MaskGraphicsScene::setItemName(ParameterizedItem *itemToChange)
+void MaskGraphicsScene::setItemName(SessionItem *itemToChange)
 {
     int glob_index(0);
     for(int i_row = 0; i_row < m_maskModel->rowCount(m_maskContainerIndex); ++i_row) {
          QModelIndex itemIndex = m_maskModel->index( i_row, 0, m_maskContainerIndex );
-         if (ParameterizedItem *currentItem = m_maskModel->itemForIndex(itemIndex)){
+         if (SessionItem *currentItem = m_maskModel->itemForIndex(itemIndex)){
              if(currentItem->modelType() == itemToChange->modelType()) {
                  QString itemName = currentItem->itemName();
                  if(itemName.startsWith(itemToChange->itemName())) {
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h
index 7cbd82c7d793270659204b3ce0237444deb2d2f8..1e20e9907cb168b218ed0042e988e7718121942e 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h
@@ -24,7 +24,7 @@
 #include <QSharedPointer>
 
 class SessionModel;
-class ParameterizedItem;
+class SessionItem;
 class IMaskView;
 class ISceneAdaptor;
 class MaskGraphicsProxy;
@@ -77,9 +77,9 @@ protected:
 private:
     void updateProxyWidget();
     void updateViews(const QModelIndex &parentIndex = QModelIndex(), IMaskView *parentView = 0);
-    IMaskView* addViewForItem(ParameterizedItem *item);
+    IMaskView* addViewForItem(SessionItem *item);
     void deleteViews(const QModelIndex & itemIndex);
-    void removeItemViewFromScene(ParameterizedItem *item);
+    void removeItemViewFromScene(SessionItem *item);
 
     bool isValidMouseClick(QGraphicsSceneMouseEvent *event);
     bool isValidForRectangleDrawing(QGraphicsSceneMouseEvent *event);
@@ -103,17 +103,17 @@ private:
 
     void setZValues();
     PolygonView *getCurrentPolygon() const;
-    void setItemName(ParameterizedItem *itemToChange);
+    void setItemName(SessionItem *itemToChange);
 
     SessionModel *m_maskModel;
     QItemSelectionModel *m_selectionModel;
     QSharedPointer<ISceneAdaptor> m_adaptor;
-    QMap<ParameterizedItem *, IMaskView *> m_ItemToView;
+    QMap<SessionItem *, IMaskView *> m_ItemToView;
     MaskGraphicsProxy *m_proxy;
     bool m_block_selection;
     QModelIndex m_maskContainerIndex;
     IntensityDataItem *m_intensityItem;
-    ParameterizedItem *m_currentItem;
+    SessionItem *m_currentItem;
     QPointF m_currentMousePosition;
     MaskDrawingContext m_context;
 };
diff --git a/GUI/coregui/Views/MaskWidgets/MaskViewFactory.cpp b/GUI/coregui/Views/MaskWidgets/MaskViewFactory.cpp
index 9b581fe9c24d744bc298a6cd38f47b066b8e1f01..3c446c39a179b1e7941051f3be027ac273768253 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskViewFactory.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskViewFactory.cpp
@@ -25,9 +25,9 @@
 #include "MaskAllView.h"
 #include "MaskContainerView.h"
 #include "IntensityDataView.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 
-IMaskView *MaskViewFactory::createMaskView(ParameterizedItem *item,
+IMaskView *MaskViewFactory::createMaskView(SessionItem *item,
                                            ISceneAdaptor *adaptor)
 {
     IMaskView *result(0);
diff --git a/GUI/coregui/Views/MaskWidgets/MaskViewFactory.h b/GUI/coregui/Views/MaskWidgets/MaskViewFactory.h
index a4642d2de8d23cf9de276f4711c3076ce5104d02..54a1991ee58a8b3311b504530ccab617bcb0e938 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskViewFactory.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskViewFactory.h
@@ -20,7 +20,7 @@
 #include <QString>
 
 class IMaskView;
-class ParameterizedItem;
+class SessionItem;
 class ISceneAdaptor;
 
 //! Factory to construct views out of MaskItems for MaskGraphicsScene
@@ -28,7 +28,7 @@ class ISceneAdaptor;
 class BA_CORE_API_ MaskViewFactory
 {
 public:
-    static IMaskView *createMaskView(ParameterizedItem *item,
+    static IMaskView *createMaskView(SessionItem *item,
                                      ISceneAdaptor *adaptor = 0);
 };
 
diff --git a/GUI/coregui/Views/MaskWidgets/PolygonView.cpp b/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
index d1d807d6ff38b0bc8c28ce19ddddd9af854a9227..9f84dbcb523d6183515d85c4dce464bae9ab5588 100644
--- a/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
@@ -157,7 +157,7 @@ void PolygonView::update_polygon()
 
         m_polygon.clear();
 
-        foreach (ParameterizedItem *item, m_item->getChildrenOfType(Constants::PolygonPointType)) {
+        foreach (SessionItem *item, m_item->getChildrenOfType(Constants::PolygonPointType)) {
             qreal px = toSceneX(item->getRegisteredProperty(PolygonPointItem::P_POSX).toReal());
             qreal py = toSceneY(item->getRegisteredProperty(PolygonPointItem::P_POSY).toReal());
             m_polygon << QPointF(px, py);
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialPropertyBrowser.cpp b/GUI/coregui/Views/MaterialEditor/MaterialPropertyBrowser.cpp
index ebb67223b0b035e44069c71d6917179a8fd6cb5b..0245367183869d588284caf81e6e37b8842f36db 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialPropertyBrowser.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialPropertyBrowser.cpp
@@ -23,7 +23,7 @@
 #include "tooltipdatabase.h"
 #include "ScientificDoubleProperty.h"
 #include "GUIHelpers.h"
-#include "PropertyAttribute.h"
+#include "PropertyAttribute.h"
 #include <QtVariantPropertyManager>
 #include <QtProperty>
 #include <QtVariantProperty>
@@ -132,7 +132,7 @@ void MaterialPropertyBrowser::slotValueChanged(QtProperty *property,
 
     qDebug() << "MaterialEditorWidget::slotValueChanged() -> 1.3";
     //MaterialItem *material = dynamic_cast<MaterialItem *>(m_property_to_subitem[property].m_owner);
-    ParameterizedItem *item = m_property_to_subitem[property].m_owner;
+    SessionItem *item = m_property_to_subitem[property].m_owner;
     Q_ASSERT(item);
     qDebug() << "MaterialEditorWidget::slotValueChanged() -> 1.4";
     item->setRegisteredProperty(property->propertyName(), value);
@@ -143,7 +143,7 @@ void MaterialPropertyBrowser::slotValueChanged(QtProperty *property,
 
 void MaterialPropertyBrowser::onPropertyChanged(const QString &property_name)
 {
-    ParameterizedItem *parentItem = qobject_cast<ParameterizedItem *>(sender());
+    SessionItem *parentItem = qobject_cast<SessionItem *>(sender());
 
 
     if(m_top_material_to_property.contains(parentItem)) {
@@ -204,13 +204,13 @@ void MaterialPropertyBrowser::clearBrowser()
 }
 
 
-//void MaterialPropertyBrowser::updateMaterialProperties(ParameterizedItem *material)
+//void MaterialPropertyBrowser::updateMaterialProperties(SessionItem *material)
 //{
 //    if(m_top_material_to_property.contains(material)) {
 //        m_top_material_to_property[material]->setPropertyName(material->itemName());
 //    }
 
-////    QMap<ParameterizedItem *, QtVariantProperty *>::iterator it = m_top_material_to_property.begin();
+////    QMap<SessionItem *, QtVariantProperty *>::iterator it = m_top_material_to_property.begin();
 ////    while(it!=m_top_material_to_property.end()) {
 ////        updateSubProperties(it.key());
 ////        ++it;
@@ -218,7 +218,7 @@ void MaterialPropertyBrowser::clearBrowser()
 //}
 
 
-void MaterialPropertyBrowser::addMaterialProperties(ParameterizedItem *material)
+void MaterialPropertyBrowser::addMaterialProperties(SessionItem *material)
 {
     QtVariantProperty *item_property = m_variantManager->addProperty(
                 QtVariantPropertyManager::enumTypeId(), material->itemName());
@@ -251,13 +251,13 @@ void MaterialPropertyBrowser::removeSubProperties(QtProperty *property)
 }
 
 
-void MaterialPropertyBrowser::addSubProperties(QtProperty *material_property, ParameterizedItem *item)
+void MaterialPropertyBrowser::addSubProperties(QtProperty *material_property, SessionItem *item)
 {
 
     QList<QByteArray> property_names = item->dynamicPropertyNames();
     for (int i = 0; i < property_names.length(); ++i) {
         QString prop_name = QString(property_names[i]);
-        const PropertyAttribute &prop_attribute = PropertyAttribute::fromItem(item);
+        const PropertyAttribute &prop_attribute = PropertyAttribute::fromItem(item);
 
         if(prop_attribute.isHidden()) continue;
 
@@ -283,7 +283,7 @@ void MaterialPropertyBrowser::addSubProperties(QtProperty *material_property, Pa
             }
 
             if (item->isGroupProperty(prop_name)) {
-                ParameterizedItem *subitem = item->getGroupItem(prop_name);
+                SessionItem *subitem = item->getGroupItem(prop_name);
                 if (subitem) {
                     addSubProperties(subProperty, subitem);
                 }
@@ -305,7 +305,7 @@ void MaterialPropertyBrowser::addSubProperties(QtProperty *material_property, Pa
 
 
 
-//void MaterialPropertyBrowser::updateSubProperties(ParameterizedItem *material)
+//void MaterialPropertyBrowser::updateSubProperties(SessionItem *material)
 //{
 ////    if(m_material_to_property.contains(material)) {
 
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialPropertyBrowser.h b/GUI/coregui/Views/MaterialEditor/MaterialPropertyBrowser.h
index f71d39fd1ece55a0a95ae5f4a23f6cd9e150ccfe..0b8a7774c314ff61f0952a6ad950ebab9cf02401 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialPropertyBrowser.h
+++ b/GUI/coregui/Views/MaterialEditor/MaterialPropertyBrowser.h
@@ -34,7 +34,7 @@ class QtVariantProperty;
 class QModelIndex;
 class QtBrowserItem;
 class QItemSelection;
-class ParameterizedItem;
+class SessionItem;
 
 
 //! Class which holds QtProperty tree browser to adjust material properties.
@@ -50,9 +50,9 @@ public:
     void setModel(MaterialModel *materialModel);
 
     struct SubItem {
-        SubItem(ParameterizedItem *owner=0, QString name = QString())
+        SubItem(SessionItem *owner=0, QString name = QString())
             : m_owner(owner), m_name(name) {}
-        ParameterizedItem *m_owner;
+        SessionItem *m_owner;
         QString m_name;
         friend bool operator <(const SubItem& left, const SubItem& right)
         {
@@ -64,9 +64,9 @@ public:
 
 
 //    struct ItemIndexPair {
-//        ItemIndexPair(ParameterizedItem *item=0, int index=0)
+//        ItemIndexPair(SessionItem *item=0, int index=0)
 //            : m_item(item), m_index(index) {}
-//        ParameterizedItem *m_item;
+//        SessionItem *m_item;
 //        int m_index;
 //    };
 
@@ -85,11 +85,11 @@ private slots:
 private:
     void updateBrowser();
     void clearBrowser();
-    void addMaterialProperties(ParameterizedItem *material);
-//    void updateMaterialProperties(ParameterizedItem *material);
-    void addSubProperties(QtProperty *property, ParameterizedItem *item);
+    void addMaterialProperties(SessionItem *material);
+//    void updateMaterialProperties(SessionItem *material);
+    void addSubProperties(QtProperty *property, SessionItem *item);
     void removeSubProperties(QtProperty *property);
-//    void updateSubProperties(ParameterizedItem *material);
+//    void updateSubProperties(SessionItem *material);
 
     enum EExpandAction { SAVE_EXPAND_STATE, RESTORE_EXPAND_STATE };
     void updateExpandState(EExpandAction action);
@@ -100,17 +100,17 @@ private:
     QtVariantPropertyManager *m_readOnlyManager;
     //QtVariantEditorFactory *m_variantFactory;
 
-    QMap<QtProperty *, ParameterizedItem *> m_top_property_to_material;
-    QMap<ParameterizedItem *, QtVariantProperty *> m_top_material_to_property;
+    QMap<QtProperty *, SessionItem *> m_top_property_to_material;
+    QMap<SessionItem *, QtVariantProperty *> m_top_material_to_property;
     QMap<QtProperty *, SubItem> m_property_to_subitem;
-    QMap<ParameterizedItem *, QMap<QString, QtVariantProperty *> > m_material_to_property;
+    QMap<SessionItem *, QMap<QString, QtVariantProperty *> > m_material_to_property;
 
 
 //    QMap<QtProperty *, ItemIndexPair>     m_property_to_item_index_pair;
-//    QMap<const ParameterizedItem *, QMap<int, QtVariantProperty *> >
+//    QMap<const SessionItem *, QMap<int, QtVariantProperty *> >
 //        m_item_to_index_to_property;
 
-//    QMap<const ParameterizedItem *, QMap<QString, QtVariantProperty *> >
+//    QMap<const SessionItem *, QMap<QString, QtVariantProperty *> >
 //        m_item_to_propertyname_to_qtvariantproperty;
 
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
index c42261633dd3de1fc77429941b63cfeaf5dc4e1e..4c5b2688ee5e5db4963b52f12e4f18ff12753b31 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
@@ -27,14 +27,14 @@ ComponentBoxEditor::ComponentBoxEditor(QWidget *parent)
 }
 
 ////! adds all property items to thr PropertyGroup with given name
-void ComponentBoxEditor::addPropertyItems(ParameterizedItem *item, const QString &group_name)
+void ComponentBoxEditor::addPropertyItems(SessionItem *item, const QString &group_name)
 {
     Q_ASSERT(item);
     QtVariantProperty *groupProperty = m_d->processPropertyGroupForName(group_name);
     updatePropertyItems(item, groupProperty);
 }
 
-void ComponentBoxEditor::updatePropertyItems(ParameterizedItem *item, QtVariantProperty *parentProperty)
+void ComponentBoxEditor::updatePropertyItems(SessionItem *item, QtVariantProperty *parentProperty)
 {
     if(item->modelType() == Constants::PropertyType ||
             item->modelType() == Constants::GroupItemType) {
@@ -44,14 +44,14 @@ void ComponentBoxEditor::updatePropertyItems(ParameterizedItem *item, QtVariantP
     if(m_d->m_item_to_insert_mode.contains(item)) {
         if(m_d->m_item_to_insert_mode[item] == ComponentEditorFlags::SINGLE) return;
     }
-    foreach (ParameterizedItem *childItem, componentItems(item)) {
+    foreach (SessionItem *childItem, componentItems(item)) {
         updateItem(childItem, parentProperty);
     }
 
 }
 
 //! add single item to property group with given name
-void ComponentBoxEditor::addItem(ParameterizedItem *item, const QString &group_name)
+void ComponentBoxEditor::addItem(SessionItem *item, const QString &group_name)
 {
     Q_ASSERT(item);
     QtVariantProperty *groupProperty = m_d->processPropertyGroupForName(group_name);
@@ -59,7 +59,7 @@ void ComponentBoxEditor::addItem(ParameterizedItem *item, const QString &group_n
     m_d->m_item_to_insert_mode[item] = ComponentEditorFlags::SINGLE;
 }
 
-void ComponentBoxEditor::updateItem(ParameterizedItem *item, QtVariantProperty *parentProperty)
+void ComponentBoxEditor::updateItem(SessionItem *item, QtVariantProperty *parentProperty)
 {
     connectModel(item->model());
     m_d->processPropertyForItem(item, parentProperty);
@@ -73,7 +73,7 @@ void ComponentBoxEditor::onDataChanged(const QModelIndex &topLeft, const QModelI
 
     SessionModel *model = qobject_cast<SessionModel *>(sender());
     Q_ASSERT(model);
-    ParameterizedItem *item = model->itemForIndex(topLeft);
+    SessionItem *item = model->itemForIndex(topLeft);
     Q_ASSERT(item);
 
     qDebug() << " ComponentEditor::onDataChanged" << m_d->m_presentationType
@@ -82,7 +82,7 @@ void ComponentBoxEditor::onDataChanged(const QModelIndex &topLeft, const QModelI
     if (QtVariantProperty *property = m_d->getPropertyForItem(item)) {
         // updating editor's property appearance (tooltips, limits)
         if (roles.contains(Qt::UserRole)) {
-            m_d->updatePropertyAppearance(property, PropertyAttribute::fromItem(item));
+            m_d->updatePropertyAppearance(property, PropertyAttribute::fromItem(item));
         }
 
         // updating editor's property values
@@ -129,7 +129,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //}
 
 ////! Sets editor to display all recursive properties of given item
-//void ComponentBoxEditor::setItem(ParameterizedItem *item, const QString &group_name)
+//void ComponentBoxEditor::setItem(SessionItem *item, const QString &group_name)
 //{
 //    clearEditor();
 //    if(!item) return;
@@ -143,7 +143,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //    }
 
 ////    if(m_d->isFlat()) {
-//        foreach (ParameterizedItem *childItem, componentItems(item)) {
+//        foreach (SessionItem *childItem, componentItems(item)) {
 //            updateEditor(childItem, groupVariantProperty);
 //        }
 ////    } else {
@@ -154,7 +154,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 
 
 ////! adds all property items to thr PropertyGroup with given name
-//void ComponentBoxEditor::addPropertyItems(ParameterizedItem *item, const QString &group_name)
+//void ComponentBoxEditor::addPropertyItems(SessionItem *item, const QString &group_name)
 //{
 //    if(item->modelType() == Constants::PropertyType) {
 //        addItem(item, group_name);
@@ -162,33 +162,33 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 
 //    else if(item->modelType() == Constants::GroupItemType) {
 //        addItem(item, group_name);
-//        foreach (ParameterizedItem *childItem, componentItems(item)) {
+//        foreach (SessionItem *childItem, componentItems(item)) {
 //            addItem(childItem, group_name);
 //        }
 //    }
 
 //    else {
-//        foreach (ParameterizedItem *childItem, componentItems(item)) {
+//        foreach (SessionItem *childItem, componentItems(item)) {
 //            addItem(childItem, group_name);
 //        }
 //    }
 //}
 
 ////! add single item to property group with given name
-//void ComponentBoxEditor::addItem(ParameterizedItem *item, const QString &group_name)
+//void ComponentBoxEditor::addItem(SessionItem *item, const QString &group_name)
 //{
 //    QtVariantProperty *groupProperty = m_d->processPropertyGroupForName(group_name);
 //    m_d->processPropertyForItem(item, groupProperty);
 //}
 
-////void ComponentEditor::addItemProperty(ParameterizedItem *item, const QString &name)
+////void ComponentEditor::addItemProperty(SessionItem *item, const QString &name)
 ////{
 
 ////}
 
-////! Main function to run through ParameterizedItem tree and fill editor with
+////! Main function to run through SessionItem tree and fill editor with
 ////! properties
-//void ComponentBoxEditor::updateEditor(ParameterizedItem *item,
+//void ComponentBoxEditor::updateEditor(SessionItem *item,
 //                                   QtVariantProperty *parentProperty)
 //{
 //    connectModel(item->model());
@@ -200,7 +200,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //        parentProperty = childProperty;
 //    }
 
-//    foreach (ParameterizedItem *childItem, componentItems(item)) {
+//    foreach (SessionItem *childItem, componentItems(item)) {
 //        updateEditor(childItem, parentProperty);
 //    }
 //}
@@ -214,7 +214,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //    connectManager();
 //}
 
-////! Propagates data from ParameterizedItem to editor
+////! Propagates data from SessionItem to editor
 //void ComponentBoxEditor::onDataChanged(const QModelIndex &topLeft,
 //                                    const QModelIndex &bottomRight,
 //                                    const QVector<int> &roles)
@@ -224,7 +224,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 
 //    SessionModel *model = qobject_cast<SessionModel *>(sender());
 //    Q_ASSERT(model);
-//    ParameterizedItem *item = model->itemForIndex(topLeft);
+//    SessionItem *item = model->itemForIndex(topLeft);
 //    Q_ASSERT(item);
 
 //    qDebug() << " ComponentEditor::onDataChanged" << m_d->m_presentationType
@@ -251,7 +251,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //    }
 //}
 
-////! Updates the editor starting from given ParameterizedItem's parent.
+////! Updates the editor starting from given SessionItem's parent.
 ////! Editor should know already about given item (i.e. corresponding
 ////! QtVariantProperty should exist.
 //void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first,
@@ -260,7 +260,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //    qDebug() << "ComponentEditor::onRowsInserted" << parent << first << last;
 //    SessionModel *model = qobject_cast<SessionModel *>(sender());
 
-//    ParameterizedItem *item = model->itemForIndex(parent);
+//    SessionItem *item = model->itemForIndex(parent);
 //    Q_ASSERT(item);
 
 //    if (QtVariantProperty *property = m_d->getPropertyForItem(item)) {
@@ -268,12 +268,12 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //    }
 //}
 
-////! Propagates value from the editor to ParameterizedItem
+////! Propagates value from the editor to SessionItem
 //void ComponentBoxEditor::onQtPropertyChanged(QtProperty *property,
 //                                          const QVariant &value)
 //{
 //    qDebug() << "ComponentEditor::onQtPropertyChanged" << property << value;
-//    if (ParameterizedItem *item = m_d->getItemForProperty(property)) {
+//    if (SessionItem *item = m_d->getItemForProperty(property)) {
 //        disconnectModel(item->model());
 //        item->setValue(value);
 //        connectModel(item->model());
@@ -282,13 +282,13 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 
 ////! Returns list of children suitable for displaying in ComponentEditor.
 ////! In condensed mode, editor will analyse only nearest visible properties.
-//QList<ParameterizedItem *>
-//ComponentBoxEditor::componentItems(ParameterizedItem *item) const
+//QList<SessionItem *>
+//ComponentBoxEditor::componentItems(SessionItem *item) const
 //{
-//    QList<ParameterizedItem *> result;
+//    QList<SessionItem *> result;
 
 
-//        foreach (ParameterizedItem *child, item->childItems()) {
+//        foreach (SessionItem *child, item->childItems()) {
 //            if (child->getAttribute().isHidden())
 //                continue;
 //            if (child->modelType() == Constants::PropertyType) {
@@ -298,7 +298,7 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //                result.append(child);
 //            }
 //            if (item->modelType() == Constants::GroupItemType) {
-//                foreach(ParameterizedItem *childOfChild, child->childItems()) {
+//                foreach(SessionItem *childOfChild, child->childItems()) {
 //                    result.append(childOfChild);
 //                }
 //            }
@@ -307,9 +307,9 @@ void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, in
 //    return result;
 //}
 
-//void ComponentBoxEditor::cleanChildren(ParameterizedItem *item)
+//void ComponentBoxEditor::cleanChildren(SessionItem *item)
 //{
-//    foreach(ParameterizedItem *child, item->childItems()) {
+//    foreach(SessionItem *child, item->childItems()) {
 //        if (QtVariantProperty *property = m_d->getPropertyForItem(child)) {
 //            m_d->removeQtVariantProperty(property);
 //        }
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.h b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.h
index 1b7dd670f8d3e3d26c1ffc6fafacad13569c138e..f2cce67a0250f793248f961f6738f47aa88676d9 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.h
@@ -27,11 +27,11 @@ class BA_CORE_API_ ComponentBoxEditor : public ComponentEditor
 public:
     ComponentBoxEditor(QWidget *parent = 0);
 
-    void addPropertyItems(ParameterizedItem *item, const QString &group_name=QString());
-    void updatePropertyItems(ParameterizedItem *item, QtVariantProperty *parentProperty=0);
+    void addPropertyItems(SessionItem *item, const QString &group_name=QString());
+    void updatePropertyItems(SessionItem *item, QtVariantProperty *parentProperty=0);
 
-    void addItem(ParameterizedItem *item, const QString &group_name=QString());
-    void updateItem(ParameterizedItem *item, QtVariantProperty *parentProperty);
+    void addItem(SessionItem *item, const QString &group_name=QString());
+    void updateItem(SessionItem *item, QtVariantProperty *parentProperty);
 
 public slots:
     void onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp b/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
index af5824c5c73dc55dc6fa7e5dd3a2de0ca7dc424c..a6b562c556b542add3723b299272222cf89f4b56 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
@@ -16,7 +16,7 @@
 #include "ComponentEditorPrivate.h"
 #include "qtpropertybrowser.h"
 #include "GUIHelpers.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "SessionModel.h"
 #include "GroupItem.h"
 #include "GroupProperty.h"
@@ -44,7 +44,7 @@ ComponentEditor::~ComponentEditor()
 }
 
 //! Sets editor to display all recursive properties of given item
-void ComponentEditor::setItem(ParameterizedItem *item, const QString &group_name)
+void ComponentEditor::setItem(SessionItem *item, const QString &group_name)
 {
     clearEditor();
     if(!item) return;
@@ -53,15 +53,15 @@ void ComponentEditor::setItem(ParameterizedItem *item, const QString &group_name
 
     QtVariantProperty *groupVariantProperty = m_d->processPropertyGroupForName(group_name);
 
-    foreach (ParameterizedItem *childItem, componentItems(item)) {
+    foreach (SessionItem *childItem, componentItems(item)) {
         updateEditor(childItem, groupVariantProperty);
     }
 }
 
 
-//! Main function to run through ParameterizedItem tree and fill editor with
+//! Main function to run through SessionItem tree and fill editor with
 //! properties
-void ComponentEditor::updateEditor(ParameterizedItem *item,
+void ComponentEditor::updateEditor(SessionItem *item,
                                    QtVariantProperty *parentProperty)
 {
     if (QtVariantProperty *childProperty
@@ -69,7 +69,7 @@ void ComponentEditor::updateEditor(ParameterizedItem *item,
         parentProperty = childProperty;
     }
 
-    foreach (ParameterizedItem *childItem, componentItems(item)) {
+    foreach (SessionItem *childItem, componentItems(item)) {
         updateEditor(childItem, parentProperty);
     }
 }
@@ -83,7 +83,7 @@ void ComponentEditor::clearEditor()
     connectManager();
 }
 
-//! Propagates data from ParameterizedItem to editor
+//! Propagates data from SessionItem to editor
 void ComponentEditor::onDataChanged(const QModelIndex &topLeft,
                                     const QModelIndex &bottomRight,
                                     const QVector<int> &roles)
@@ -93,7 +93,7 @@ void ComponentEditor::onDataChanged(const QModelIndex &topLeft,
 
     SessionModel *model = qobject_cast<SessionModel *>(sender());
     Q_ASSERT(model);
-    ParameterizedItem *item = model->itemForIndex(topLeft);
+    SessionItem *item = model->itemForIndex(topLeft);
     Q_ASSERT(item);
 
     qDebug() << " ComponentEditor::onDataChanged" << m_d->m_presentationType
@@ -102,7 +102,7 @@ void ComponentEditor::onDataChanged(const QModelIndex &topLeft,
     if (QtVariantProperty *property = m_d->getPropertyForItem(item)) {
         // updating editor's property appearance (tooltips, limits)
         if (roles.contains(Qt::UserRole)) {
-            m_d->updatePropertyAppearance(property, PropertyAttribute::fromItem(item));
+            m_d->updatePropertyAppearance(property, PropertyAttribute::fromItem(item));
         }
 
         // updating editor's property values
@@ -120,7 +120,7 @@ void ComponentEditor::onDataChanged(const QModelIndex &topLeft,
     }
 }
 
-//! Updates the editor starting from given ParameterizedItem's parent.
+//! 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,
@@ -129,7 +129,7 @@ void ComponentEditor::onRowsInserted(const QModelIndex &parent, int first,
     qDebug() << "ComponentEditor::onRowsInserted" << parent << first << last;
     SessionModel *model = qobject_cast<SessionModel *>(sender());
 
-    ParameterizedItem *item = model->itemForIndex(parent);
+    SessionItem *item = model->itemForIndex(parent);
     Q_ASSERT(item);
 
     if (QtVariantProperty *property = m_d->getPropertyForItem(item)) {
@@ -137,12 +137,12 @@ void ComponentEditor::onRowsInserted(const QModelIndex &parent, int first,
     }
 }
 
-//! Propagates value from the editor to ParameterizedItem
+//! Propagates value from the editor to SessionItem
 void ComponentEditor::onQtPropertyChanged(QtProperty *property,
                                           const QVariant &value)
 {
     qDebug() << "ComponentEditor::onQtPropertyChanged" << property << value;
-    if (ParameterizedItem *item = m_d->getItemForProperty(property)) {
+    if (SessionItem *item = m_d->getItemForProperty(property)) {
         Q_ASSERT(item);
         disconnectModel(item->model());
         item->setValue(value);
@@ -151,12 +151,12 @@ void ComponentEditor::onQtPropertyChanged(QtProperty *property,
 }
 
 //! Returns list of children suitable for displaying in ComponentEditor.
-QList<ParameterizedItem *>
-ComponentEditor::componentItems(ParameterizedItem *item) const
+QList<SessionItem *>
+ComponentEditor::componentItems(SessionItem *item) const
 {
-    QList<ParameterizedItem *> result;
-    foreach (ParameterizedItem *child, item->childItems()) {
-        if (!child->isVisible())
+    QList<SessionItem *> result;
+    foreach (SessionItem *child, item->childItems()) {
+        if (!child->isVisible())
             continue;
         if (child->modelType() == Constants::PropertyType) {
             result.append(child);
@@ -165,7 +165,7 @@ ComponentEditor::componentItems(ParameterizedItem *item) const
             result.append(child);
         }
         if (item->modelType() == Constants::GroupItemType) {
-            foreach (ParameterizedItem *childOfChild, child->childItems()) {
+            foreach (SessionItem *childOfChild, child->childItems()) {
                 result.append(childOfChild);
             }
         }
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditor.h b/GUI/coregui/Views/PropertyEditor/ComponentEditor.h
index 1eac34e1ea4f5947d13d59451eb5317aa0c74172..50ce4191de1025f7156be890569792787e907af5 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditor.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditor.h
@@ -22,7 +22,7 @@
 #include <memory>
 
 class ComponentEditorPrivate;
-class ParameterizedItem;
+class SessionItem;
 class SessionModel;
 class QtVariantProperty;
 class QtProperty;
@@ -35,9 +35,9 @@ public:
 
     virtual ~ComponentEditor();
 
-    void setItem(ParameterizedItem *item, const QString &group_name=QString());
+    void setItem(SessionItem *item, const QString &group_name=QString());
 
-    void updateEditor(ParameterizedItem *item, QtVariantProperty *parentProperty = 0);
+    void updateEditor(SessionItem *item, QtVariantProperty *parentProperty = 0);
 
     void clearEditor();
 
@@ -49,8 +49,8 @@ private slots:
     void onQtPropertyChanged(QtProperty *, const QVariant &value);
 
 protected:
-    QList<ParameterizedItem *> componentItems(ParameterizedItem *item) const;
-    void cleanChildren(ParameterizedItem *item);
+    QList<SessionItem *> componentItems(SessionItem *item) const;
+    void cleanChildren(SessionItem *item);
 
     void disconnectModel(SessionModel *model);
     void connectModel(SessionModel *model);
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.cpp b/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.cpp
index 822145bba371b975c5e1f773b80d602ed50d1627..74ccd85694f3e23796f830363bf93c5330b723d2 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.cpp
@@ -84,7 +84,7 @@ void ComponentEditorPrivate::init_browser()
 
 //! Creates, if necessary, qtVariantProperty for given item and place it in the editor
 QtVariantProperty *ComponentEditorPrivate::
-    processPropertyForItem(ParameterizedItem *item, QtVariantProperty *parentProperty)
+    processPropertyForItem(SessionItem *item, QtVariantProperty *parentProperty)
 {
     QtVariantProperty *itemProperty = getPropertyForItem(item);
     if (!itemProperty) {
@@ -110,7 +110,7 @@ QtVariantProperty *ComponentEditorPrivate::
 }
 
 //! Returns QtVariantProperty representing given item in ComponentEditor.
-QtVariantProperty *ComponentEditorPrivate::getPropertyForItem(ParameterizedItem *item)
+QtVariantProperty *ComponentEditorPrivate::getPropertyForItem(SessionItem *item)
 {
     if (m_item_to_qtvariantproperty.contains(item)) {
         return m_item_to_qtvariantproperty[item];
@@ -118,8 +118,8 @@ QtVariantProperty *ComponentEditorPrivate::getPropertyForItem(ParameterizedItem
     return nullptr;
 }
 
-//! Returns ParameterizedItem corresponding to QtVariantProperty representation
-ParameterizedItem *ComponentEditorPrivate::getItemForProperty(QtProperty *property)
+//! Returns SessionItem corresponding to QtVariantProperty representation
+SessionItem *ComponentEditorPrivate::getItemForProperty(QtProperty *property)
 {
     if (m_qtproperty_to_item.contains(property)) {
         return m_qtproperty_to_item[property];
@@ -127,14 +127,14 @@ ParameterizedItem *ComponentEditorPrivate::getItemForProperty(QtProperty *proper
     return nullptr;
 }
 
-//! creates QtVariantProperty for given ParameterizedItem's property
-QtVariantProperty *ComponentEditorPrivate::createQtVariantProperty(ParameterizedItem *item)
+//! creates QtVariantProperty for given SessionItem's property
+QtVariantProperty *ComponentEditorPrivate::createQtVariantProperty(SessionItem *item)
 {
     QtVariantProperty *result(0);
 
     QString property_name = item->itemName();
     QVariant prop_value = item->value();
-    PropertyAttribute prop_attribute = PropertyAttribute::fromItem(item);
+    PropertyAttribute prop_attribute = PropertyAttribute::fromItem(item);
 
     if (!prop_value.isValid()) {
         result = m_manager->addProperty(QtVariantPropertyManager::groupTypeId(), property_name);
@@ -156,7 +156,7 @@ QtVariantProperty *ComponentEditorPrivate::createQtVariantProperty(Parameterized
         result->setValue(prop_value);
     }
 
-    updatePropertyAppearance(result, PropertyAttribute::fromItem(item));
+    updatePropertyAppearance(result, PropertyAttribute::fromItem(item));
     return result;
 }
 
@@ -186,7 +186,7 @@ void ComponentEditorPrivate::removeQtVariantProperty(QtVariantProperty *property
     delete property;
     auto it = m_qtproperty_to_item.find(property);
     if (it != m_qtproperty_to_item.end()) {
-        ParameterizedItem *item = it.value();
+        SessionItem *item = it.value();
         m_item_to_qtvariantproperty.remove(item);
         m_item_to_qtparent.remove(item);
         m_item_to_insert_mode.remove(item);
@@ -194,7 +194,7 @@ void ComponentEditorPrivate::removeQtVariantProperty(QtVariantProperty *property
     }
 }
 
-//! update visual apperance of qtVariantProperty using ParameterizedItem's attribute
+//! update visual apperance of qtVariantProperty using SessionItem's attribute
 void ComponentEditorPrivate::updatePropertyAppearance(QtVariantProperty *property,
                                                       const PropertyAttribute &attribute)
 {
@@ -234,9 +234,9 @@ void ComponentEditorPrivate::updatePropertyAppearance(QtVariantProperty *propert
 }
 
 //! removes properties of all child items
-void ComponentEditorPrivate::cleanChildren(ParameterizedItem *item)
+void ComponentEditorPrivate::cleanChildren(SessionItem *item)
 {
-    foreach(ParameterizedItem *child, item->childItems()) {
+    foreach(SessionItem *child, item->childItems()) {
         if (QtVariantProperty *property = getPropertyForItem(child)) {
             removeQtVariantProperty(property);
         }
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.h b/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.h
index 156317681b3a47b599086e4041bc21f678438b0b..fa2483bafa69e2b3e32498bbe5f25a9d90727986 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.h
@@ -23,8 +23,8 @@
 #include "qttreepropertybrowser.h"
 #include "qtgroupboxpropertybrowser.h"
 #include "qtbuttonpropertybrowser.h"
-#include "ParameterizedItem.h"
-#include "PropertyAttribute.h"
+#include "SessionItem.h"
+#include "PropertyAttribute.h"
 #include <QMap>
 #include <memory>
 
@@ -46,11 +46,11 @@ public:
     void init_browser();
 
     QtVariantProperty *
-    processPropertyForItem(ParameterizedItem *item,
+    processPropertyForItem(SessionItem *item,
                            QtVariantProperty *parentProperty);
-    QtVariantProperty *getPropertyForItem(ParameterizedItem *item);
-    ParameterizedItem *getItemForProperty(QtProperty *property);
-    QtVariantProperty *createQtVariantProperty(ParameterizedItem *item);
+    QtVariantProperty *getPropertyForItem(SessionItem *item);
+    SessionItem *getItemForProperty(QtProperty *property);
+    QtVariantProperty *createQtVariantProperty(SessionItem *item);
 
     QtVariantProperty *processPropertyGroupForName(const QString &name);
     QtVariantProperty *getPropertyForGroupName(const QString &name);
@@ -58,7 +58,7 @@ public:
     void removeQtVariantProperty(QtVariantProperty *property);
     void updatePropertyAppearance(QtVariantProperty *property,
                                   const PropertyAttribute &attribute);
-    void cleanChildren(ParameterizedItem *item);
+    void cleanChildren(SessionItem *item);
 
     void install_custom_filters();
 
@@ -67,11 +67,11 @@ public:
     QtVariantPropertyManager *m_read_only_manager;
     PropertyVariantFactory *m_propertyFactory;
 
-    QMap<QtProperty *, ParameterizedItem *> m_qtproperty_to_item;
-    QMap<ParameterizedItem *, QtVariantProperty *> m_item_to_qtvariantproperty;
+    QMap<QtProperty *, SessionItem *> m_qtproperty_to_item;
+    QMap<SessionItem *, QtVariantProperty *> m_item_to_qtvariantproperty;
     QMap<QString, QtVariantProperty *> m_groupname_to_qtvariant;
-    QMap<ParameterizedItem *, QtVariantProperty *> m_item_to_qtparent;
-    QMap<ParameterizedItem *, ComponentEditorFlags::InsertMode> m_item_to_insert_mode;
+    QMap<SessionItem *, QtVariantProperty *> m_item_to_qtparent;
+    QMap<SessionItem *, ComponentEditorFlags::InsertMode> m_item_to_insert_mode;
 
     ComponentEditorFlags::PresentationType m_presentationType;
     std::unique_ptr<WheelEventEater> m_wheel_event_filter;
diff --git a/GUI/coregui/Views/PropertyEditor/PropertyVariantManager.cpp b/GUI/coregui/Views/PropertyEditor/PropertyVariantManager.cpp
index e6d6b0008317c8ff8f4b2c0c44513b7169083a1f..c0c6b3720459c4217758ba351d467c8ceafb5f34 100644
--- a/GUI/coregui/Views/PropertyEditor/PropertyVariantManager.cpp
+++ b/GUI/coregui/Views/PropertyEditor/PropertyVariantManager.cpp
@@ -15,7 +15,7 @@
 
 #include "PropertyVariantManager.h"
 #include "DesignerHelper.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QDebug>
 
 PropertyVariantManager::PropertyVariantManager(QObject *parent)
diff --git a/GUI/coregui/Views/PropertyEditor/UniversalPropertyEditor.cpp b/GUI/coregui/Views/PropertyEditor/UniversalPropertyEditor.cpp
index 19f2ff6cf23566aede8169469853f69c567dff6a..cb10a6ab896d3a85546164a1b4532a3ea3018b94 100644
--- a/GUI/coregui/Views/PropertyEditor/UniversalPropertyEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/UniversalPropertyEditor.cpp
@@ -16,13 +16,13 @@
 #include "UniversalPropertyEditor.h"
 #include "PropertyVariantManager.h"
 #include "PropertyVariantFactory.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "tooltipdatabase.h"
 #include "GUIHelpers.h"
 #include "qttreepropertybrowser.h"
 #include "qtgroupboxpropertybrowser.h"
 #include "qtbuttonpropertybrowser.h"
-#include "PropertyAttribute.h"
+#include "PropertyAttribute.h"
 #include <QtProperty>
 #include <QItemSelectionModel>
 #include <QVBoxLayout>
@@ -101,7 +101,7 @@ void UniversalPropertyEditor::selectionChanged(const QItemSelection & selected,
     (void)deselected;
     QModelIndexList indices = selected.indexes();
     if(indices.size()) {
-        ParameterizedItem *item = static_cast<ParameterizedItem *>(
+        SessionItem *item = static_cast<SessionItem *>(
                 indices.back().internalPointer());
         setItem(item);
     } else {
@@ -189,8 +189,8 @@ void UniversalPropertyEditor::onPropertyChanged(const QString &property_name)
 
         variant_property->setValue(property_value);
 
-//        const PropertyAttribute &prop_attribute = m_item->getItem(property_name);
-        if(!m_item->getItem(property_name)->isEnabled()) {
+//        const PropertyAttribute &prop_attribute = m_item->getItem(property_name);
+        if(!m_item->getItem(property_name)->isEnabled()) {
             variant_property->setEnabled(false);
         } else {
             variant_property->setEnabled(true);
@@ -208,7 +208,7 @@ void UniversalPropertyEditor::onPropertyChanged(const QString &property_name)
 void UniversalPropertyEditor::onSubItemPropertyChanged(const QString &property_group, const QString &property_name)
 {
     qDebug() << "UniversalPropertyEditor::onSubItemPropertyChanged" << property_group << property_name;
-    ParameterizedItem *subItem = m_item->getGroupItem(property_group);
+    SessionItem *subItem = m_item->getGroupItem(property_group);
     if(subItem){
         QtVariantProperty *variant_property = m_item_to_propertyname_to_qtvariantproperty[subItem][property_name];
         if(variant_property) {
@@ -223,8 +223,8 @@ void UniversalPropertyEditor::onSubItemPropertyChanged(const QString &property_g
 
             variant_property->setValue(property_value);
 
-//            const PropertyAttribute &prop_attribute = ;
-            if(!subItem->getItem(property_name)->isEnabled()) {
+//            const PropertyAttribute &prop_attribute = ;
+            if(!subItem->getItem(property_name)->isEnabled()) {
                 variant_property->setEnabled(false);
             } else {
                 variant_property->setEnabled(true);
@@ -243,9 +243,9 @@ void UniversalPropertyEditor::onSubItemPropertyChanged(const QString &property_g
 }
 
 // assigns item to the property editor
-void UniversalPropertyEditor::setItem(ParameterizedItem *item)
+void UniversalPropertyEditor::setItem(SessionItem *item)
 {
-    qDebug() << "UniversalPropertyEditor::setItem(ParameterizedItem *item)" << item;
+    qDebug() << "UniversalPropertyEditor::setItem(SessionItem *item)" << item;
 
     if (m_item == item) return;
 
@@ -281,7 +281,7 @@ void UniversalPropertyEditor::setCreateGroupProperty(bool create_group_property)
 }
 
 
-void UniversalPropertyEditor::addItemProperties(const ParameterizedItem *item)
+void UniversalPropertyEditor::addItemProperties(const SessionItem *item)
 {
     QString item_type = item->modelType();
 
@@ -298,12 +298,12 @@ void UniversalPropertyEditor::addItemProperties(const ParameterizedItem *item)
 
 
 void UniversalPropertyEditor::addSubProperties(QtProperty *item_property,
-                                            const ParameterizedItem *item)
+                                            const SessionItem *item)
 {
     QList<QByteArray> property_names = item->dynamicPropertyNames();
     for (int i = 0; i < property_names.length(); ++i) {
         QString prop_name = QString(property_names[i]);
-        const PropertyAttribute &prop_attribute = PropertyAttribute::fromItem(const_cast<ParameterizedItem*>(item));
+        const PropertyAttribute &prop_attribute = PropertyAttribute::fromItem(const_cast<SessionItem*>(item));
 
         if(prop_attribute.isHidden()) continue;
 
@@ -344,7 +344,7 @@ void UniversalPropertyEditor::addSubProperties(QtProperty *item_property,
             }
 
             if (item->isGroupProperty(prop_name)) {
-                ParameterizedItem *subitem = item->getGroupItem(prop_name);
+                SessionItem *subitem = item->getGroupItem(prop_name);
                 if (subitem) {
                     addSubProperties(subProperty, subitem);
                 }
@@ -365,8 +365,8 @@ void UniversalPropertyEditor::addSubProperties(QtProperty *item_property,
             m_browser->addProperty(subProperty);
         }
 
-        ParameterizedItem *non_const_item =
-                const_cast<ParameterizedItem *>(item);
+        SessionItem *non_const_item =
+                const_cast<SessionItem *>(item);
         ItemIndexPair item_index_pair(non_const_item, i);
         m_property_to_item_index_pair[subProperty] = item_index_pair;
         m_item_to_index_to_property[item][i] = subProperty;
diff --git a/GUI/coregui/Views/PropertyEditor/UniversalPropertyEditor.h b/GUI/coregui/Views/PropertyEditor/UniversalPropertyEditor.h
index 7bae0f6a66ccc6d40fee7e72295f607c5e7ea69c..fcff0b523742cc75d7ab78df4e87702153854387 100644
--- a/GUI/coregui/Views/PropertyEditor/UniversalPropertyEditor.h
+++ b/GUI/coregui/Views/PropertyEditor/UniversalPropertyEditor.h
@@ -30,10 +30,10 @@ class QtProperty;
 class QtVariantProperty;
 class QVariant;
 class QtAbstractPropertyBrowser;
-class ParameterizedItem;
+class SessionItem;
 
 
-//! property editor to display and modify properties of currently selected ParameterizedItem
+//! property editor to display and modify properties of currently selected SessionItem
 class BA_CORE_API_ UniversalPropertyEditor : public QWidget
 {
     Q_OBJECT
@@ -47,16 +47,16 @@ public:
 
     QObject *getObject() const;
     struct ItemIndexPair {
-        ItemIndexPair(ParameterizedItem *item=0, int index=0)
+        ItemIndexPair(SessionItem *item=0, int index=0)
             : m_item(item), m_index(index) {}
-        ParameterizedItem *m_item;
+        SessionItem *m_item;
         int m_index;
     };
 
     void setSelectionModel(QItemSelectionModel *selection_model);
 
     //! assigns item to the property editor
-    void setItem(ParameterizedItem *item);
+    void setItem(SessionItem *item);
 
     void setCreateGroupProperty(bool create_group_property);
 
@@ -75,15 +75,15 @@ private:
     //! clear editor
     void clearEditor();
 
-    ParameterizedItem *m_item; //! object to modify
+    SessionItem *m_item; //! object to modify
 
     QItemSelectionModel *m_selection_model;
 
     QMap<QtProperty *, ItemIndexPair>     m_property_to_item_index_pair;
-    QMap<const ParameterizedItem *, QMap<int, QtVariantProperty *> >
+    QMap<const SessionItem *, QMap<int, QtVariantProperty *> >
         m_item_to_index_to_property;
 
-    QMap<const ParameterizedItem *, QMap<QString, QtVariantProperty *> >
+    QMap<const SessionItem *, QMap<QString, QtVariantProperty *> >
         m_item_to_propertyname_to_qtvariantproperty;
 
 
@@ -91,12 +91,12 @@ private:
     QtVariantPropertyManager *m_manager;
     QtVariantPropertyManager *m_read_only_manager;
 
-    void addItemProperties(const ParameterizedItem *item);
+    void addItemProperties(const SessionItem *item);
     void addSubProperties(QtProperty *item_property,
-                          const ParameterizedItem *item);
+                          const SessionItem *item);
 
     //! If true than group property will be created, i.e. all properties of
-    //! ParameterizedItem will be sub-properties of group with the name modelType
+    //! SessionItem will be sub-properties of group with the name modelType
     //! (as in PropertyEditor of SampleDesigner)
     bool m_create_group_property;
 
diff --git a/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp b/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
index a50e58cdbce0b97426be0cb856bf67294189b02e..95477b90bfad0a3969fa1a37069c72c58d6ff5fa 100644
--- a/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
@@ -18,7 +18,7 @@
 #include "NodeEditorPort.h"
 #include "NodeEditorConnection.h"
 #include "GUIHelpers.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
 #include <QObject>
@@ -33,7 +33,7 @@ ConnectableView::ConnectableView(QGraphicsItem *parent, QRect rect)
     setFlag(QGraphicsItem::ItemSendsGeometryChanges);
 }
 
-void ConnectableView::setParameterizedItem(ParameterizedItem *item)
+void ConnectableView::setParameterizedItem(SessionItem *item)
 {
     IView::setParameterizedItem(item);
     if (m_item) {
diff --git a/GUI/coregui/Views/SampleDesigner/ConnectableView.h b/GUI/coregui/Views/SampleDesigner/ConnectableView.h
index 735819c48bd70405b424c1e535ecd7de4167e1bc..78e1b1c913662f2352691abd96b68724e86fbd1b 100644
--- a/GUI/coregui/Views/SampleDesigner/ConnectableView.h
+++ b/GUI/coregui/Views/SampleDesigner/ConnectableView.h
@@ -34,7 +34,7 @@ public:
     ConnectableView(QGraphicsItem *parent = 0, QRect rect = QRect(0,0,50,50) );
     virtual ~ConnectableView(){}
     int type() const { return TYPE; }
-    virtual void setParameterizedItem(ParameterizedItem *item);
+    virtual void setParameterizedItem(SessionItem *item);
 
     virtual QRectF boundingRect() const { return getRectangle(); }
     virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp b/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
index 76dce0b618746996325a6689c7736558b71adbea..b9b69694236f927199d9ea7377cbb78d6a1258d2 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
+++ b/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
@@ -23,7 +23,7 @@
 #include "LayerView.h"
 #include "ConnectableView.h"
 #include "ItemFactory.h"
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 #include "NodeEditor.h"
 #include "NodeEditorConnection.h"
 #include "DesignerMimeData.h"
@@ -160,7 +160,7 @@ void DesignerScene::onSessionSelectionChanged(const QItemSelection & /* selected
     qDebug() << "DesignerScene::onSessionSelectionChanged()";
     m_block_selection = true;
 
-    for (QMap<ParameterizedItem *, IView *>::iterator it = m_ItemToView.begin();
+    for (QMap<SessionItem *, IView *>::iterator it = m_ItemToView.begin();
          it != m_ItemToView.end(); ++it) {
         QModelIndex index = m_sampleModel->indexOfItem(it.key());
         if (index.isValid()) {
@@ -189,7 +189,7 @@ void DesignerScene::onSceneSelectionChanged()
     for (int i = 0; i < selected.size(); ++i) {
         IView *view = dynamic_cast<IView *>(selected[i]);
         if (view) {
-            ParameterizedItem *sampleItem = view->getParameterizedItem();
+            SessionItem *sampleItem = view->getParameterizedItem();
             QModelIndex itemIndex = m_sampleModel->indexOfItem(sampleItem);
             Q_ASSERT(itemIndex.isValid());
             if (!m_selectionModel->isSelected(itemIndex))
@@ -215,7 +215,7 @@ void DesignerScene::updateViews(const QModelIndex &parentIndex, IView *parentVie
     for (int i_row = 0; i_row < m_sampleModel->rowCount(parentIndex); ++i_row) {
         QModelIndex itemIndex = m_sampleModel->index(i_row, 0, parentIndex);
 
-        if (ParameterizedItem *item = m_sampleModel->itemForIndex(itemIndex)) {
+        if (SessionItem *item = m_sampleModel->itemForIndex(itemIndex)) {
 
 
             if (item && (item->modelType() == Constants::GroupItemType || item->modelType() == Constants::PropertyType)) {
@@ -241,7 +241,7 @@ void DesignerScene::updateViews(const QModelIndex &parentIndex, IView *parentVie
 }
 
 //! adds view for item, if it doesn't exists
-IView *DesignerScene::addViewForItem(ParameterizedItem *item)
+IView *DesignerScene::addViewForItem(SessionItem *item)
 {
     qDebug() << "DesignerScene::addViewForItem() ->" << item->modelType();
     Q_ASSERT(item);
@@ -278,7 +278,7 @@ void DesignerScene::deleteViews(const QModelIndex &parentIndex)
     for (int i_row = 0; i_row < m_sampleModel->rowCount(parentIndex); ++i_row) {
         QModelIndex itemIndex = m_sampleModel->index(i_row, 0, parentIndex);
 
-        if (ParameterizedItem *item = m_sampleModel->itemForIndex(itemIndex)) {
+        if (SessionItem *item = m_sampleModel->itemForIndex(itemIndex)) {
 
             removeItemViewFromScene(item);
 
@@ -291,10 +291,10 @@ void DesignerScene::deleteViews(const QModelIndex &parentIndex)
 }
 
 //! removes view from scene corresponding to given item
-void DesignerScene::removeItemViewFromScene(ParameterizedItem *item)
+void DesignerScene::removeItemViewFromScene(SessionItem *item)
 {
     qDebug() << "DesignerScene::removeItemFromScene()" << item->modelType();
-    for (QMap<ParameterizedItem *, IView *>::iterator it = m_ItemToView.begin();
+    for (QMap<SessionItem *, IView *>::iterator it = m_ItemToView.begin();
          it != m_ItemToView.end(); ++it) {
         if (it.key() == item) {
             IView *view = it.value();
@@ -356,12 +356,12 @@ void DesignerScene::onEstablishedConnection(NodeEditorConnection *connection)
     ConnectableView *parentView = connection->getParentView();
     ConnectableView *childView = connection->getChildView();
 
-    // TODO restore logic
-//    ParameterizedItem::PortInfo::EPorts input_port_index
-//        = (ParameterizedItem::PortInfo::EPorts)parentView->getInputPortIndex(
-//            connection->getInputPort());
+    // TODO restore logic
+//    SessionItem::PortInfo::EPorts input_port_index
+//        = (ParameterizedItem::PortInfo::EPorts)parentView->getInputPortIndex(
+//            connection->getInputPort());
 
-//    childView->getParameterizedItem()->setPort(input_port_index);
+//    childView->getParameterizedItem()->setPort(input_port_index);
     qDebug() << parentView->getInputPortIndex(connection->getInputPort());
     delete connection; // deleting just created connection because it will be recreated from the
                        // model
@@ -413,7 +413,7 @@ void DesignerScene::dropEvent(QGraphicsSceneDragDropEvent *event)
             qDebug() << "DesignerScene::dropEvent() -> about to drop";
             if (SampleViewFactory::isValidItemName(mimeData->getClassName())) {
 
-                ParameterizedItem *new_item(0);
+                SessionItem *new_item(0);
                 if (mimeData->getClassName().startsWith(Constants::FormFactorType)) {
                     new_item = m_sampleModel->insertNewItem(Constants::ParticleType);
                     QString ffName = mimeData->getClassName();
@@ -424,15 +424,15 @@ void DesignerScene::dropEvent(QGraphicsSceneDragDropEvent *event)
                     new_item = m_sampleModel->insertNewItem(mimeData->getClassName());
                 }
 
-                // propagating drop coordinates to ParameterizedItem
+                // propagating drop coordinates to SessionItem
                 QRectF boundingRect = DesignerHelper::getDefaultBoundingRect(new_item->modelType());
-                new_item->setRegisteredProperty(ParameterizedGraphicsItem::P_XPOS,
+                new_item->setRegisteredProperty(SessionGraphicsItem::P_XPOS,
                                                 event->scenePos().x() - boundingRect.width() / 2);
-                new_item->setRegisteredProperty(ParameterizedGraphicsItem::P_YPOS,
+                new_item->setRegisteredProperty(SessionGraphicsItem::P_YPOS,
                                                 event->scenePos().y() - boundingRect.height() / 2);
 
             } else if (GUIExamplesFactory::isValidExampleName(mimeData->getClassName())) {
-                ParameterizedItem *topItem = GUIExamplesFactory::createSampleItems(
+                SessionItem *topItem = GUIExamplesFactory::createSampleItems(
                     mimeData->getClassName(), m_sampleModel);
                 QRectF boundingRect = DesignerHelper::getDefaultBoundingRect(topItem->modelType());
                 QPointF reference(event->scenePos().x() - boundingRect.width() / 2,
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerScene.h b/GUI/coregui/Views/SampleDesigner/DesignerScene.h
index 006319cc85ef365072fefbe3024f644394e47188..78af20d3d3955b252d62bc2b4990f4c78e66d7ce 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerScene.h
+++ b/GUI/coregui/Views/SampleDesigner/DesignerScene.h
@@ -23,8 +23,8 @@
 
 class InstrumentModel;
 class SampleModel;
-class ParameterizedItem;
-class ParameterizedGraphicsItem;
+class SessionItem;
+class SessionGraphicsItem;
 class QItemSelectionModel;
 class IView;
 class QItemSelection;
@@ -49,7 +49,7 @@ public:
 
     SampleModel *getSampleModel() { return m_sampleModel; }
 
-    IView *getViewForItem(ParameterizedItem *item) { return m_ItemToView[item]; }
+    IView *getViewForItem(SessionItem *item) { return m_ItemToView[item]; }
 
     NodeEditor *getNodeEditor() { return m_nodeEditor;}
 
@@ -86,11 +86,11 @@ protected:
 
 private:
 
-    IView *addViewForItem(ParameterizedItem *item);
+    IView *addViewForItem(SessionItem *item);
     void updateViews(const QModelIndex &parentIndex = QModelIndex(), IView *parentView = 0);
     void deleteViews(const QModelIndex & parentIndex);
     void alignViews();
-    void removeItemViewFromScene(ParameterizedItem *item);
+    void removeItemViewFromScene(SessionItem *item);
     bool isMultiLayerNearby(QGraphicsSceneDragDropEvent *event);
     void adjustSceneRect();
     bool isAcceptedByMultiLayer(const DesignerMimeData *mimeData, QGraphicsSceneDragDropEvent *event);
@@ -101,7 +101,7 @@ private:
     QItemSelectionModel *m_selectionModel;
     bool m_block_selection;
 
-    QMap<ParameterizedItem *, IView *> m_ItemToView;
+    QMap<SessionItem *, IView *> m_ItemToView;
     //!< Correspondance of model's item and scene's view
 
     QLineF m_layer_interface_line;
diff --git a/GUI/coregui/Views/SampleDesigner/ILayerView.cpp b/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
index 0302c58fd193aac63ee5e97d7e6897062d47e3a2..4fa0165c80c1c1f5c464a6effd5167208505c73f 100644
--- a/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
@@ -17,7 +17,7 @@
 #include "DesignerScene.h"
 #include "DesignerHelper.h"
 #include "MultiLayerView.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "SampleModel.h"
 #include "LayerItem.h"
 #include "GUIHelpers.h"
@@ -65,7 +65,7 @@ void ILayerView::onPropertyChange(const QString &propertyName)
     }
 }
 
-void ILayerView::setParameterizedItem(ParameterizedItem *item)
+void ILayerView::setParameterizedItem(SessionItem *item)
 {
     QVariant v = item->property(LayerItem::P_MATERIAL.toUtf8().constData());
     if (v.isValid()) {
diff --git a/GUI/coregui/Views/SampleDesigner/ILayerView.h b/GUI/coregui/Views/SampleDesigner/ILayerView.h
index 5bb09fe5d3f0690984d1dffa621cdcc2e16c5d50..e599e290449bd0e32ced5cb76ab045617b6b471c 100644
--- a/GUI/coregui/Views/SampleDesigner/ILayerView.h
+++ b/GUI/coregui/Views/SampleDesigner/ILayerView.h
@@ -34,7 +34,7 @@ public:
 
     int type() const { return TYPE; }
 
-    void setParameterizedItem(ParameterizedItem *item);
+    void setParameterizedItem(SessionItem *item);
 
 protected:
     QVariant itemChange(GraphicsItemChange change, const QVariant &value);
diff --git a/GUI/coregui/Views/SampleDesigner/IView.cpp b/GUI/coregui/Views/SampleDesigner/IView.cpp
index 21eef13fcea230effab6fbf699bd01aa9ef9cd07..82928a3fd3337c88696e5670574a863fe7ea9194 100644
--- a/GUI/coregui/Views/SampleDesigner/IView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/IView.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "IView.h"
-#include "ParameterizedGraphicsItem.h"
+#include "SessionGraphicsItem.h"
 #include "ModelMapper.h"
 #include <QString>
 #include <QDebug>
@@ -25,21 +25,21 @@ IView::IView(QGraphicsItem *parent) : QGraphicsObject(parent), m_item(0)
     connect(this, SIGNAL(yChanged()), this, SLOT(onChangedY()));
 }
 
-void IView::setParameterizedItem(ParameterizedItem *item)
+void IView::setParameterizedItem(SessionItem *item)
 {
     if (item) {
         m_item = item;
-        setX(m_item->getRegisteredProperty(ParameterizedGraphicsItem::P_XPOS).toReal());
-        setY(m_item->getRegisteredProperty(ParameterizedGraphicsItem::P_YPOS).toReal());
+        setX(m_item->getRegisteredProperty(SessionGraphicsItem::P_XPOS).toReal());
+        setY(m_item->getRegisteredProperty(SessionGraphicsItem::P_YPOS).toReal());
         ModelMapper *mapper = new ModelMapper(this);
         mapper->setItem(item);
         mapper->setOnPropertyChange(
                     [this] (const QString &name)
         {
-            if (name == ParameterizedGraphicsItem::P_XPOS) {
-                setX(m_item->getRegisteredProperty(ParameterizedGraphicsItem::P_XPOS).toReal());
-            } else if (name == ParameterizedGraphicsItem::P_YPOS) {
-                setY(m_item->getRegisteredProperty(ParameterizedGraphicsItem::P_YPOS).toReal());
+            if (name == SessionGraphicsItem::P_XPOS) {
+                setX(m_item->getRegisteredProperty(SessionGraphicsItem::P_XPOS).toReal());
+            } else if (name == SessionGraphicsItem::P_YPOS) {
+                setY(m_item->getRegisteredProperty(SessionGraphicsItem::P_YPOS).toReal());
             }
         });
         connect(m_item, SIGNAL(propertyChanged(const QString &)), this,
@@ -58,11 +58,11 @@ void IView::addView(IView *childView, int row)
 void IView::onChangedX()
 {
     Q_ASSERT(m_item);
-    m_item->setRegisteredProperty(ParameterizedGraphicsItem::P_XPOS, x());
+    m_item->setRegisteredProperty(SessionGraphicsItem::P_XPOS, x());
 }
 
 void IView::onChangedY()
 {
     Q_ASSERT(m_item);
-    m_item->setRegisteredProperty(ParameterizedGraphicsItem::P_YPOS, y());
+    m_item->setRegisteredProperty(SessionGraphicsItem::P_YPOS, y());
 }
diff --git a/GUI/coregui/Views/SampleDesigner/IView.h b/GUI/coregui/Views/SampleDesigner/IView.h
index 524233ced61e140a9ac836fddc68174bc7bce711..707ca46ea9d994c5a0c8644c1adf45b8cfb23b18 100644
--- a/GUI/coregui/Views/SampleDesigner/IView.h
+++ b/GUI/coregui/Views/SampleDesigner/IView.h
@@ -19,7 +19,7 @@
 #include <QGraphicsObject>
 
 #include "DesignerHelper.h"
-class ParameterizedItem;
+class SessionItem;
 
 //! parent class for graphic representation of all ISample's
 class BA_CORE_API_ IView : public QGraphicsObject
@@ -33,9 +33,9 @@ public:
 
     int type() const;
 
-    virtual void setParameterizedItem(ParameterizedItem *item);
+    virtual void setParameterizedItem(SessionItem *item);
 
-    virtual ParameterizedItem *getParameterizedItem();
+    virtual SessionItem *getParameterizedItem();
 
     virtual void addView(IView *childView, int row = 0);
 
@@ -47,7 +47,7 @@ public slots:
     virtual void onChangedY();
 
 protected:
-    ParameterizedItem *m_item;
+    SessionItem *m_item;
 };
 
 inline int IView::type() const
@@ -55,7 +55,7 @@ inline int IView::type() const
     return TYPE;
 }
 
-inline ParameterizedItem *IView::getParameterizedItem()
+inline SessionItem *IView::getParameterizedItem()
 {
     return m_item;
 }
diff --git a/GUI/coregui/Views/SampleDesigner/LayerView.cpp b/GUI/coregui/Views/SampleDesigner/LayerView.cpp
index 93df356b6286f1314bf2e6ae09eea81752094e59..42ad79eba357bdf2571577ff9e51536bd26e61c5 100644
--- a/GUI/coregui/Views/SampleDesigner/LayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/LayerView.cpp
@@ -16,7 +16,7 @@
 #include "LayerView.h"
 #include "LayerItem.h"
 #include "ParticleLayoutView.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "MaterialProperty.h"
 #include "tooltipdatabase.h"
 #include <QPainter>
@@ -42,7 +42,7 @@ void LayerView::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
 {
     Q_UNUSED(widget);
 
-//    if(ParameterizedItem *item = getParameterizedItem()) {
+//    if(SessionItem *item = getParameterizedItem()) {
 //        qDebug() << "XXX " << item;
 //        QVariant v = item->property("Material");
 //        Q_ASSERT(v.isValid());
@@ -61,7 +61,7 @@ void LayerView::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
 
 void LayerView::addView(IView *childView, int /* row */)
 {
-    qDebug() << "LayerView::addView() " << m_item->itemName() << childView->getParameterizedItem()->itemName();
+    qDebug() << "LayerView::addView() " << m_item->itemName() << childView->getParameterizedItem()->itemName();
     ParticleLayoutView *layout = dynamic_cast<ParticleLayoutView *>(childView);
     Q_ASSERT(layout);
     connectInputPort(layout, 0);
diff --git a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
index 6a0c7b364c626084ad30267326addead7006ea68..ffdf27a112b44d1d2b2adf859c51beaaa2edd2a8 100644
--- a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "MultiLayerView.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "DesignerScene.h"
 #include "SampleModel.h"
 #include "LayerView.h"
@@ -56,7 +56,7 @@ void MultiLayerView::paint(QPainter *painter, const QStyleOptionGraphicsItem *op
 
 void MultiLayerView::addView(IView *childView, int row)
 {
-    qDebug() << "MultiLayerView::addView() " << m_item->itemName() << childView->getParameterizedItem()->itemName() << "row" << row;
+    qDebug() << "MultiLayerView::addView() " << m_item->itemName() << childView->getParameterizedItem()->itemName() << "row" << row;
     ILayerView *layer = dynamic_cast<ILayerView *>(childView);
     Q_ASSERT(layer);
 
@@ -64,7 +64,7 @@ void MultiLayerView::addView(IView *childView, int row)
         addNewLayer(layer, row);
     } else {
         int previous_row = m_layers.indexOf(layer);
-//        if(previous_row != row) m_layers.swap(previous_row, row);
+//        if(previous_row != row) m_layers.swap(previous_row, row);
     }
     updateGeometry();
 }
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.cpp
index 31e323015ee26c2d35208f5d3ebf27572c9f613e..d7512495297971fd61a4333ca74be7c2120bef22 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "ParticleCompositionView.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QDebug>
 
 ParticleCompositionView::ParticleCompositionView(QGraphicsItem *parent) : ConnectableView(parent)
@@ -31,8 +31,8 @@ ParticleCompositionView::ParticleCompositionView(QGraphicsItem *parent) : Connec
 
 void ParticleCompositionView::addView(IView *childView, int /* row */)
 {
-    // TODO restore logic
-    int index = 0;//int(childView->getParameterizedItem()->port());
+    // TODO restore logic
+    int index = 0;//int(childView->getParameterizedItem()->port());
 //                    ->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT)
 //                    .toInt();
     qDebug() << "ParticleCompositionView::addView()" << index;
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.cpp
index 95d36dd119c94b4eb72e7b3b71f0271135be5b97..cbfbb33a4794a4706745527b23b2cf0e79410d4b 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "ParticleCoreShellView.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QDebug>
 
 
@@ -35,8 +35,8 @@ ParticleCoreShellView::ParticleCoreShellView(QGraphicsItem *parent)
 
 void ParticleCoreShellView::addView(IView *childView, int /* row */)
 {
-    // TODO restore logic
-    int index = 0;//int(childView->getParameterizedItem()->port());
+    // TODO restore logic
+    int index = 0;//int(childView->getParameterizedItem()->port());
 //                    ->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT)
 //                    .toInt();
     qDebug() << "ParticleCoreShellView::addView()" << index;
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.cpp
index fe026bf61a89aa429765331cf28bbc07cc24416b..bc283b9149361d34d8ad7140a8cd563568db8e76 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "ParticleDistributionView.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QDebug>
 
 
@@ -32,8 +32,8 @@ ParticleDistributionView::ParticleDistributionView(QGraphicsItem *parent)
 
 void ParticleDistributionView::addView(IView *childView, int /* row */)
 {
-    // TODO restore logic
-    int index = 0;//int(childView->getParameterizedItem()->port());
+    // TODO restore logic
+    int index = 0;//int(childView->getParameterizedItem()->port());
 //                    ->getRegisteredProperty(ParameterizedItem::OBSOLETE_P_PORT)
 //                    .toInt();
     qDebug() << "ParticleDistributionType::addView()" << index;
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.cpp
index a334b98dd383ed21efd988d0528c68a377d2e729..a304eee03f88704643f751ad286530e099020a36 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.cpp
@@ -16,7 +16,7 @@
 #include "ParticleLayoutView.h"
 #include "ParticleView.h"
 #include "DesignerHelper.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "GUIHelpers.h"
 #include <QDebug>
 
@@ -35,8 +35,8 @@ ParticleLayoutView::ParticleLayoutView(QGraphicsItem *parent)
 
 void ParticleLayoutView::addView(IView *childView, int /* row */)
 {
-    qDebug() << "ParticleLayoutView::addView() xxx " << m_item->itemName()
-             << childView->getParameterizedItem()->itemName() << childView->type()
+    qDebug() << "ParticleLayoutView::addView() xxx " << m_item->itemName()
+             << childView->getParameterizedItem()->itemName() << childView->type()
              << DesignerHelper::PARTICLE;
     if(childView->type() == DesignerHelper::PARTICLE) {
         connectInputPort(dynamic_cast<ConnectableView *>(childView), 0);
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleView.cpp
index 57cef5d42e5bd038ecbaeebf5537c0d431360735..fd6967a7df25b1fb6d9fd95bdc262b99f13c1e09 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleView.cpp
@@ -67,7 +67,7 @@ void ParticleView::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
 }
 
 
-void ParticleView::setParameterizedItem(ParameterizedItem *item)
+void ParticleView::setParameterizedItem(SessionItem *item)
 {
     ConnectableView::setParameterizedItem(item);
     onPropertyChange(ParticleItem::P_FORM_FACTOR);
@@ -87,7 +87,7 @@ void ParticleView::setParameterizedItem(ParameterizedItem *item)
 void ParticleView::onPropertyChange(const QString &propertyName)
 {
     if(propertyName == ParticleItem::P_FORM_FACTOR) {
-        GroupProperty_t group_property = dynamic_cast<GroupItem*>(getParameterizedItem()->getItem(ParticleItem::P_FORM_FACTOR))->group();
+        GroupProperty_t group_property = dynamic_cast<GroupItem*>(getParameterizedItem()->getItem(ParticleItem::P_FORM_FACTOR))->group();
 //        GroupProperty_t group_property = getParameterizedItem()->getRegisteredProperty(ParticleItem::P_FORM_FACTOR).value<GroupProperty_t>();
 
         QString current_ff_type = group_property->getCurrentType();
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleView.h b/GUI/coregui/Views/SampleDesigner/ParticleView.h
index 0057cfd7ea584b3015bc8892b541f8878f299fc8..de06f166e84d3884ae57aeaf46b4f0272a94a013 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleView.h
+++ b/GUI/coregui/Views/SampleDesigner/ParticleView.h
@@ -36,7 +36,7 @@ public:
 
     void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
 
-    void setParameterizedItem(ParameterizedItem *item);
+    void setParameterizedItem(SessionItem *item);
 
     void onPropertyChange(const QString &propertyName);
 
diff --git a/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp b/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp
index fd4a55d7222f26299dde4eec425248840e00844d..579fe58800ff79dcb7947ab705b039c1c4df43e2 100644
--- a/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp
@@ -15,7 +15,7 @@
 
 #include "SamplePropertyWidget.h"
 #include "ComponentEditor.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <QVBoxLayout>
 #include <QItemSelection>
 #include <QModelIndexList>
@@ -69,7 +69,7 @@ void SamplePropertyWidget::selectionChanged(const QItemSelection & selected,
     (void)deselected;
     QModelIndexList indices = selected.indexes();
     if(indices.size()) {
-        ParameterizedItem *item = static_cast<ParameterizedItem *>(
+        SessionItem *item = static_cast<SessionItem *>(
                 indices.back().internalPointer());
 //        m_propertyEditor->setItem(item, item->modelType());
         m_propertyEditor->setItem(item, item->modelType());
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
index cacb355950223f2e7101722caef87cd3d7fa3257..d95a4b2d5a13a2d844180d69f24100812434f833 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
@@ -119,9 +119,9 @@ QList<IView *> SampleViewAligner::getConnectedViews(IView *view)
 {
     QList<IView *> result;
 
-    ParameterizedItem *itemOfView = view->getParameterizedItem();
+    SessionItem *itemOfView = view->getParameterizedItem();
 
-    QList<ParameterizedItem *> connected_items;
+    QList<SessionItem *> connected_items;
 
     if(itemOfView->parent()->modelType() == Constants::LayerType) {
         // e.g. we are dealing here with ParticleLayout, so we will use directly MultiLayer to interact with
@@ -132,7 +132,7 @@ QList<IView *> SampleViewAligner::getConnectedViews(IView *view)
 
     if(itemOfView->modelType() == Constants::MultiLayerType) {
         // MultiLayer will not interact with its Layers, but with they children, e.g. with ParticleLayouts
-        foreach(ParameterizedItem *child,  itemOfView->childItems()) {
+        foreach(SessionItem *child,  itemOfView->childItems()) {
             connected_items.append(child->childItems().toList());
         }
     } else {
@@ -140,7 +140,7 @@ QList<IView *> SampleViewAligner::getConnectedViews(IView *view)
 
     }
 
-    foreach(ParameterizedItem *item, connected_items) {
+    foreach(SessionItem *item, connected_items) {
         IView *view = m_scene->getViewForItem(item);
         if(view) {
             result.append(view);
@@ -153,7 +153,7 @@ QList<IView *> SampleViewAligner::getConnectedViews(IView *view)
 
 
 //! Aligns sample starting from
-void SampleViewAligner::alignSample(ParameterizedItem *item, QPointF reference, bool force_alignment)
+void SampleViewAligner::alignSample(SessionItem *item, QPointF reference, bool force_alignment)
 {
     Q_ASSERT(item);
     alignSample(m_scene->getSampleModel()->indexOfItem(item), reference, force_alignment);
@@ -189,7 +189,7 @@ void SampleViewAligner::alignSample(const QModelIndex & parentIndex, QPointF ref
     int child_counter = 0;
     for( int i_row = 0; i_row < sampleModel->rowCount( parentIndex ); ++i_row) {
          QModelIndex itemIndex = sampleModel->index( i_row, 0, parentIndex );
-         ParameterizedItem *item = sampleModel->itemForIndex(itemIndex);
+         SessionItem *item = sampleModel->itemForIndex(itemIndex);
          if (item && (item->modelType() == Constants::GroupItemType || item->modelType() == Constants::PropertyType)) {
              continue;
          }
@@ -203,7 +203,7 @@ void SampleViewAligner::alignSample(const QModelIndex & parentIndex, QPointF ref
 IView *SampleViewAligner::getViewForIndex(const QModelIndex &index)
 {
     SampleModel *sampleModel = m_scene->getSampleModel();
-    ParameterizedItem *item = sampleModel->itemForIndex(index);
+    SessionItem *item = sampleModel->itemForIndex(index);
     if(IView *view = m_scene->getViewForItem(item)) {
         return view;
     }
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.h b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.h
index e6b7cee1eaee1e3b727e665983a64c7626e27f13..a85667ddb60c434cf3557f0ea7da501962885e08 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.h
@@ -22,7 +22,7 @@
 #include <QPointF>
 class DesignerScene;
 class IView;
-class ParameterizedItem;
+class SessionItem;
 
 
 //! Makes alignment of sample droped on graphics scene.
@@ -32,7 +32,7 @@ class BA_CORE_API_ SampleViewAligner
 public:
     SampleViewAligner(DesignerScene *scene);
 
-    void alignSample(ParameterizedItem *item, QPointF reference = QPointF(), bool force_alignment = false);
+    void alignSample(SessionItem *item, QPointF reference = QPointF(), bool force_alignment = false);
     void alignSample(const QModelIndex & parentIndex, QPointF reference = QPointF(), bool force_alignment = false);
 
     void smartAlign();
diff --git a/GUI/coregui/Views/SampleView.cpp b/GUI/coregui/Views/SampleView.cpp
index 46a0fd23e4f8428a0cd61c315c5299abee656f67..df4ac4a1cf378f75ba06acabf37f8a96f492ed80 100644
--- a/GUI/coregui/Views/SampleView.cpp
+++ b/GUI/coregui/Views/SampleView.cpp
@@ -146,7 +146,7 @@ void SampleView::addItem(const QString &item_name)
 {
     QModelIndex currentIndex = getTreeView()->currentIndex();
     QModelIndex currentIndexAtColumnZero = getIndexAtColumnZero(currentIndex);
-    ParameterizedItem *new_item
+    SessionItem *new_item
         = getSampleModel()->insertNewItem(item_name, currentIndexAtColumnZero);
     if (new_item) {
         QModelIndex new_index = getSampleModel()->indexOfItem(new_item);
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
index 808ba39aa2a8dc7c64bd78ce580b802a71511fa0..a16f775d92135906f494060fcb13167518733f2d 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
@@ -289,10 +289,10 @@ int SimulationSetupWidget::getNumberOfThreads()
 InstrumentModel *SimulationSetupWidget::getJobInstrumentModel()
 {
     InstrumentModel *result(0);
-    QMap<QString, ParameterizedItem *> instruments = m_instrumentModel->getInstrumentMap();
+    QMap<QString, SessionItem *> instruments = m_instrumentModel->getInstrumentMap();
     if(instruments[getSelectedInstrumentName()]) {
         int index = getSelectedInstrumentIndex();
-        QMap<QString, ParameterizedItem *>::iterator it = instruments.begin()+index;
+        QMap<QString, SessionItem *>::iterator it = instruments.begin()+index;
         result = m_instrumentModel->createCopy(it.value());
     }
 
@@ -303,10 +303,10 @@ InstrumentModel *SimulationSetupWidget::getJobInstrumentModel()
 SampleModel *SimulationSetupWidget::getJobSampleModel()
 {
     SampleModel *result(0);
-    QMap<QString, ParameterizedItem *> samples = m_sampleModel->getSampleMap();
+    QMap<QString, SessionItem *> samples = m_sampleModel->getSampleMap();
     if(samples[getSelectedSampleName()]) {
         int index = getSelectedSampleIndex();
-        QMap<QString, ParameterizedItem *>::iterator it = samples.begin()+index;
+        QMap<QString, SessionItem *>::iterator it = samples.begin()+index;
         result = m_sampleModel->createCopy(it.value());
     }
     return result;
@@ -317,10 +317,10 @@ SampleModel *SimulationSetupWidget::getJobSampleModel()
 const MultiLayerItem *SimulationSetupWidget::getSelectedMultiLayerItem() const
 {
     const MultiLayerItem *result(0);
-    QMap<QString, ParameterizedItem *> samples = m_sampleModel->getSampleMap();
+    QMap<QString, SessionItem *> samples = m_sampleModel->getSampleMap();
     if(samples[getSelectedSampleName()]) {
         int index = getSelectedSampleIndex();
-        QMap<QString, ParameterizedItem *>::const_iterator it = samples.begin()+index;
+        QMap<QString, SessionItem *>::const_iterator it = samples.begin()+index;
         result = dynamic_cast<MultiLayerItem *>(it.value());
     }
     return result;
@@ -331,10 +331,10 @@ const MultiLayerItem *SimulationSetupWidget::getSelectedMultiLayerItem() const
 const InstrumentItem *SimulationSetupWidget::getSelectedInstrumentItem() const
 {
     const InstrumentItem *result(0);
-    QMap<QString, ParameterizedItem *> instruments = m_instrumentModel->getInstrumentMap();
+    QMap<QString, SessionItem *> instruments = m_instrumentModel->getInstrumentMap();
     if(instruments[getSelectedInstrumentName()]) {
         int index = getSelectedInstrumentIndex();
-        QMap<QString, ParameterizedItem *>::const_iterator it = instruments.begin()+index;
+        QMap<QString, SessionItem *>::const_iterator it = instruments.begin()+index;
         result = dynamic_cast<InstrumentItem *>(it.value());
     }
     return result;
diff --git a/GUI/coregui/Views/TestComponentView.cpp b/GUI/coregui/Views/TestComponentView.cpp
index d01b6c8026174aa871fce702fe365cc4348eeef0..7d643aa301ddb0e9b44b4a12a616d79f926994af 100644
--- a/GUI/coregui/Views/TestComponentView.cpp
+++ b/GUI/coregui/Views/TestComponentView.cpp
@@ -70,7 +70,7 @@ void TestComponentView::onSelectionChanged(const QItemSelection &selected, const
 //        m_editor2->setItem(0);
 //        m_editor3->setItem(0);
     } else {
-        if(ParameterizedItem *item = m_model->itemForIndex(indices.at(0))) {
+        if(SessionItem *item = m_model->itemForIndex(indices.at(0))) {
 //            m_editor2->setItem(item);
 //            m_editor2->addItem(item);
 //            m_editor3->setItem(item);
diff --git a/GUI/coregui/Views/TestView.cpp b/GUI/coregui/Views/TestView.cpp
index 9766e370f8ce77133d8e332e44bfcf88228b82c5..1419de2b8444855a0acc5f9617e07a73a4c7f325 100644
--- a/GUI/coregui/Views/TestView.cpp
+++ b/GUI/coregui/Views/TestView.cpp
@@ -74,14 +74,14 @@ void TestView::test_sessionModel()
     testModel->setSourceModel(m_mainWindow->getSampleModel());
     addModelToTabs(tabs, testModel);
 
-    // TODO: why is instrument empty here?
+    // TODO: why is instrument empty here?
     // do some testing here
-//    m_mainWindow->getInstrumentModel()->rootItem()->getChildOfType(Constants::InstrumentType)->mapper()
-//            ->setOnChildPropertyChange(
-//                [](ParameterizedItem* item, const QString &name) {
-//        qDebug() << "Property Changed from " << item->itemName() << " (" << item->modelType() << " )"
-//                 << "with name " << name;
-//    });
+//    m_mainWindow->getInstrumentModel()->rootItem()->getChildOfType(Constants::InstrumentType)->mapper()
+//            ->setOnChildPropertyChange(
+//                [](SessionItem* item, const QString &name) {
+//        qDebug() << "Property Changed from " << item->itemName() << " (" << item->modelType() << " )"
+//                 << "with name " << name;
+//    });
 
     layout->setMargin(0);
     layout->setSpacing(0);
@@ -224,9 +224,9 @@ void TestProxyModel::setSourceModel(QAbstractItemModel *source)
 QModelIndex TestProxyModel::index(int row, int column, const QModelIndex &parent) const
 {
     const QModelIndex sourceParent = mapToSource(parent);
-    ParameterizedItem *parentt = m_source->itemForIndex(sourceParent);
+    SessionItem *parentt = m_source->itemForIndex(sourceParent);
     if (parentt->modelType() == Constants::GroupItemType) {
-        ParameterizedItem *cur = parentt->parent()->getGroupItem(parentt->itemName());
+        SessionItem *cur = parentt->parent()->getGroupItem(parentt->itemName());
         const QModelIndex sourceIndex = m_source->index(row, column, cur->index());
         return mapFromSource(sourceIndex);
     }
@@ -237,7 +237,7 @@ QModelIndex TestProxyModel::index(int row, int column, const QModelIndex &parent
 QModelIndex TestProxyModel::parent(const QModelIndex &child) const
 {
     const QModelIndex sourceIndex = mapToSource(child);
-    ParameterizedItem *head = m_source->itemForIndex(sourceIndex.parent());
+    SessionItem *head = m_source->itemForIndex(sourceIndex.parent());
     if (head && head->parent() && head->parent()->modelType() == Constants::GroupItemType) {
         // skip immediate layer
         return mapFromSource(head->parent()->index());
@@ -249,9 +249,9 @@ QModelIndex TestProxyModel::parent(const QModelIndex &child) const
 int TestProxyModel::rowCount(const QModelIndex &parent) const
 {
     QModelIndex sourceParent = mapToSource(parent);
-    ParameterizedItem *item = m_source->itemForIndex(sourceParent);
+    SessionItem *item = m_source->itemForIndex(sourceParent);
     if (item && item->modelType() == Constants::GroupItemType) {
-        ParameterizedItem *cur = item->parent()->getGroupItem(item->itemName());
+        SessionItem *cur = item->parent()->getGroupItem(item->itemName());
         if (cur)
             return m_source->rowCount(cur->index());
         else
diff --git a/GUI/coregui/mainwindow/mainwindow.cpp b/GUI/coregui/mainwindow/mainwindow.cpp
index 8b5f633849457dc07c4964012b628b263838d54d..ae88b66aff16971ac14bb9f310d9859aabab56b5 100644
--- a/GUI/coregui/mainwindow/mainwindow.cpp
+++ b/GUI/coregui/mainwindow/mainwindow.cpp
@@ -317,14 +317,14 @@ void MainWindow::resetModels()
     m_jobModel->clear();
 
     m_instrumentModel->clear();
-    ParameterizedItem *instrument = m_instrumentModel->insertNewItem(Constants::InstrumentType);
+    SessionItem *instrument = m_instrumentModel->insertNewItem(Constants::InstrumentType);
     instrument->setItemName("Default GISAS");
     m_instrumentModel->insertNewItem(Constants::DetectorType, m_instrumentModel->indexOfItem(instrument));
     m_instrumentModel->insertNewItem(Constants::BeamType, m_instrumentModel->indexOfItem(instrument));
 
     /*m_fitModel->clear();
     m_fitModel->insertNewItem(Constants::FitParameterContainerType, QModelIndex());
-    ParameterizedItem *selection = m_fitModel->insertNewItem(Constants::FitSelectionType, QModelIndex());
+    SessionItem *selection = m_fitModel->insertNewItem(Constants::FitSelectionType, QModelIndex());
     selection->setRegisteredProperty(FitSelectionItem::P_SAMPLE, "MultiLayer");
     selection->setRegisteredProperty(FitSelectionItem::P_INSTRUMENT, "Instrument0");
     m_fitModel->insertNewItem(Constants::MinimizerSettingsType, QModelIndex());
diff --git a/GUI/coregui/utils/GUIFunctionalTest.cpp b/GUI/coregui/utils/GUIFunctionalTest.cpp
index cb210a715aa0851795901abc17bec2d1fe5dd28b..f2a95fba4d7874be2bd2ff7fb53039c63bf4257e 100644
--- a/GUI/coregui/utils/GUIFunctionalTest.cpp
+++ b/GUI/coregui/utils/GUIFunctionalTest.cpp
@@ -22,7 +22,7 @@
 #include "MaterialModel.h"
 #include "Instrument.h"
 #include "DomainObjectBuilder.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "IntensityDataFunctions.h"
 #include "DomainSimulationBuilder.h"
 #include "Utils.h"
diff --git a/GUI/coregui/utils/ItemIDFactory.cpp b/GUI/coregui/utils/ItemIDFactory.cpp
index 81fecfeaf655f666f80945df4f0320d4d4e4da24..69876db25e469beeb7a200268529b5fc3cc29407 100644
--- a/GUI/coregui/utils/ItemIDFactory.cpp
+++ b/GUI/coregui/utils/ItemIDFactory.cpp
@@ -7,7 +7,7 @@ ItemIDFactory& ItemIDFactory::instance()
     return instance;
 }
 
-QString ItemIDFactory::createID(ParameterizedItem *toBeInsertedItem){
+QString ItemIDFactory::createID(SessionItem *toBeInsertedItem){
 
     QUuid id = QUuid::createUuid();
     QString id_String = id.toString();
@@ -23,7 +23,7 @@ QString ItemIDFactory::createID(ParameterizedItem *toBeInsertedItem){
     return id_String;
 }
 
-QString ItemIDFactory::getID(ParameterizedItem *existingItem)
+QString ItemIDFactory::getID(SessionItem *existingItem)
 {
     if(instance().ItemtoIDMap.contains(existingItem))
         return instance().ItemtoIDMap.value(existingItem);
@@ -31,7 +31,7 @@ QString ItemIDFactory::getID(ParameterizedItem *existingItem)
         return QString();
 }
 
-ParameterizedItem* ItemIDFactory::getItem(QString existingID)
+SessionItem* ItemIDFactory::getItem(QString existingID)
 {
     if(instance().IDtoItemMap.contains(existingID))
         return instance().IDtoItemMap.value(existingID);
diff --git a/GUI/coregui/utils/ItemIDFactory.h b/GUI/coregui/utils/ItemIDFactory.h
index f259fbe48e0feb21b232c604b49215615b498091..d106b54bf4e7e992b694af25a4ad13ce82a09e1b 100644
--- a/GUI/coregui/utils/ItemIDFactory.h
+++ b/GUI/coregui/utils/ItemIDFactory.h
@@ -18,7 +18,7 @@
 #include <QUuid>
 #include <QMap>
 
-class ParameterizedItem;
+class SessionItem;
 
 class ItemIDFactory {
 public:
@@ -30,19 +30,19 @@ public:
 
     static ItemIDFactory& instance();
 
-    static QString createID(ParameterizedItem* toBeInsertedItem);
+    static QString createID(SessionItem* toBeInsertedItem);
 
-    static QString getID(ParameterizedItem* existingItem);
+    static QString getID(SessionItem* existingItem);
 
-    static ParameterizedItem* getItem(QString existingID);
+    static SessionItem* getItem(QString existingID);
 
     static int IDSize();
 
 private:
     ItemIDFactory() = default;
 
-    QMap<QString, ParameterizedItem*> IDtoItemMap;
-    QMap<ParameterizedItem*, QString> ItemtoIDMap;
+    QMap<QString, SessionItem*> IDtoItemMap;
+    QMap<SessionItem*, QString> ItemtoIDMap;
 };
 
 #endif
diff --git a/Tests/UnitTests/TestGUI/GUICoreObjectCorrespondence.h b/Tests/UnitTests/TestGUI/GUICoreObjectCorrespondence.h
index e48662ed912023f4b47224660c42bad904667fff..97047273af05f471ce5c7e624b349af78baddbd9 100644
--- a/Tests/UnitTests/TestGUI/GUICoreObjectCorrespondence.h
+++ b/Tests/UnitTests/TestGUI/GUICoreObjectCorrespondence.h
@@ -1,7 +1,7 @@
 #ifndef GUICOREOBJECTCORRESPONDENCE_H
 #define GUICOREOBJECTCORRESPONDENCE_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "IParameterized.h"
 
 #include <vector>
@@ -10,7 +10,7 @@
 
 #include <QtTest>
 
-inline void GUICoreObjectCorrespondence(const ParameterizedItem& gui_object,
+inline void GUICoreObjectCorrespondence(const SessionItem& gui_object,
                                  const IParameterized& core_object)
 {
     // First check if names correspond:
diff --git a/Tests/UnitTests/TestGUI/TestMapper.h b/Tests/UnitTests/TestGUI/TestMapper.h
index 6bc474421ecb2325654bc9df5e03b28f86defc35..305908f658a2c44448a76f7b8610cfc4a9b8c4bf 100644
--- a/Tests/UnitTests/TestGUI/TestMapper.h
+++ b/Tests/UnitTests/TestGUI/TestMapper.h
@@ -1,7 +1,7 @@
 #ifndef TESTMAPPER_H
 #define TESTMAPPER_H
 
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "SampleModel.h"
 #include "InstrumentModel.h"
 #include "item_constants.h"
@@ -28,17 +28,17 @@ private slots:
 inline void TestMapper::test_ParticeleCompositionUpdate()
 {
     SampleModel model;
-    ParameterizedItem *multilayer = model.insertNewItem(Constants::MultiLayerType);
-    ParameterizedItem *layer = model.insertNewItem(Constants::LayerType, multilayer->index());
-    ParameterizedItem *layout = model.insertNewItem(Constants::ParticleLayoutType, layer->index());
+    SessionItem *multilayer = model.insertNewItem(Constants::MultiLayerType);
+    SessionItem *layer = model.insertNewItem(Constants::LayerType, multilayer->index());
+    SessionItem *layout = model.insertNewItem(Constants::ParticleLayoutType, layer->index());
 
     // composition added to layout should have abundance enabled
-    ParameterizedItem *compositionFree = model.insertNewItem(Constants::ParticleCompositionType, layout->index());
+    SessionItem *compositionFree = model.insertNewItem(Constants::ParticleCompositionType, layout->index());
     QVERIFY(compositionFree->getItem(ParticleItem::P_ABUNDANCE)->isEnabled());
 
     // composition added to distribution should have abundance disabled
-    ParameterizedItem *distribution = model.insertNewItem(Constants::ParticleDistributionType, layout->index());
-    ParameterizedItem *composition = model.insertNewItem(Constants::ParticleCompositionType, distribution->index());
+    SessionItem *distribution = model.insertNewItem(Constants::ParticleDistributionType, layout->index());
+    SessionItem *composition = model.insertNewItem(Constants::ParticleCompositionType, distribution->index());
     QVERIFY(composition->getItem(ParticleItem::P_ABUNDANCE)->isEnabled() == false);
 
     composition = distribution->takeChildItem(composition->childNumber());
@@ -50,11 +50,11 @@ inline void TestMapper::test_ParticeleCompositionUpdate()
 inline void TestMapper::test_Inference2DRotationAngleToggle()
 {
     SampleModel model;
-    ParameterizedItem *multilayer = model.insertNewItem(Constants::MultiLayerType);
-    ParameterizedItem *layer = model.insertNewItem(Constants::LayerType, multilayer->index());
-    ParameterizedItem *layout = model.insertNewItem(Constants::ParticleLayoutType, layer->index());
+    SessionItem *multilayer = model.insertNewItem(Constants::MultiLayerType);
+    SessionItem *layer = model.insertNewItem(Constants::LayerType, multilayer->index());
+    SessionItem *layout = model.insertNewItem(Constants::ParticleLayoutType, layer->index());
 
-    ParameterizedItem *inference = model.insertNewItem(Constants::InterferenceFunction2DParaCrystalType,
+    SessionItem *inference = model.insertNewItem(Constants::InterferenceFunction2DParaCrystalType,
                                                        layout->index(), -1, ParticleLayoutItem::T_INTERFERENCE);
 
     // rotation (xi) should be disabled if integration is on
@@ -70,10 +70,10 @@ inline void TestMapper::test_Inference2DRotationAngleToggle()
 inline void TestMapper::test_instrumentAlignmentPropertyVisibility()
 {
     InstrumentModel model;
-    ParameterizedItem *instrument = model.insertNewItem(Constants::InstrumentType);
-    ParameterizedItem *detector = model.insertNewItem(Constants::DetectorType, instrument->index());
+    SessionItem *instrument = model.insertNewItem(Constants::InstrumentType);
+    SessionItem *detector = model.insertNewItem(Constants::DetectorType, instrument->index());
     detector->setGroupProperty(DetectorItem::P_DETECTOR, Constants::RectangularDetectorType);
-    ParameterizedItem *rectangular = detector->getGroupItem(DetectorItem::P_DETECTOR);
+    SessionItem *rectangular = detector->getGroupItem(DetectorItem::P_DETECTOR);
 
 
     ComboProperty alignment = rectangular->getRegisteredProperty(RectangularDetectorItem::P_ALIGNMENT)
@@ -93,8 +93,8 @@ inline void TestMapper::test_instrumentAlignmentPropertyVisibility()
 inline void TestMapper::test_removeMaskOnDetectorChange()
 {
     InstrumentModel model;
-    ParameterizedItem *instrument = model.insertNewItem(Constants::InstrumentType);
-    ParameterizedItem *detector = model.insertNewItem(Constants::DetectorType, instrument->index());
+    SessionItem *instrument = model.insertNewItem(Constants::InstrumentType);
+    SessionItem *detector = model.insertNewItem(Constants::DetectorType, instrument->index());
     detector->setGroupProperty(DetectorItem::P_DETECTOR, Constants::RectangularDetectorType);
     model.insertNewItem(Constants::MaskContainerType, detector->index());
     QVERIFY(detector->getUnregisteredChildren().size() == 1);
diff --git a/Tests/UnitTests/TestGUI/TestParaCrystalItems.h b/Tests/UnitTests/TestGUI/TestParaCrystalItems.h
index 713dc2d3dbe4abf680db716747deb21e1ab52f02..cbe5e2207ec8fafd8c99555ae732ebea77503268 100644
--- a/Tests/UnitTests/TestGUI/TestParaCrystalItems.h
+++ b/Tests/UnitTests/TestGUI/TestParaCrystalItems.h
@@ -50,7 +50,7 @@ inline void TestParaCrystalItems::test_Para1D_PDFGroupProperty()
     foreach(QString pdf_name, pdfs) {
 //        QSignalSpy spyItem(&item, SIGNAL(propertyChanged(QString)));
 //        QSignalSpy spyPropertyItem(&item, SIGNAL(subItemChanged(QString)));
-        ParameterizedItem *pdfItem = item.setGroupProperty(InterferenceFunctionRadialParaCrystalItem::P_PDF, pdf_name);
+        SessionItem *pdfItem = item.setGroupProperty(InterferenceFunctionRadialParaCrystalItem::P_PDF, pdf_name);
         QVERIFY(pdfItem);
         QCOMPARE(item.getChildrenOfType(Constants::GroupItemType).size(), 1);
         QCOMPARE(pdfItem, item.getGroupItem(InterferenceFunctionRadialParaCrystalItem::P_PDF));
diff --git a/Tests/UnitTests/TestGUI/TestParameterizedItem.h b/Tests/UnitTests/TestGUI/TestParameterizedItem.h
index d38394d671c489fcd36fc449a5a569cbcfbff986..f27d4c40f9790c0457c4033171523af7c46509b5 100644
--- a/Tests/UnitTests/TestGUI/TestParameterizedItem.h
+++ b/Tests/UnitTests/TestGUI/TestParameterizedItem.h
@@ -3,7 +3,7 @@
 
 
 #include <QtTest>
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "GUIHelpers.h"
 #include "verify_throw_macro.h"
 
@@ -19,15 +19,15 @@ private slots:
 
 inline void TestParameterizedItem::test_registerProperty()
 {
-    ParameterizedItem item("Modeltype");
+    SessionItem item("Modeltype");
     QString property_name("MyProperty");
     double value(1.0);
 //    QSignalSpy spy(&item, SIGNAL(propertyChanged(QString)));
 
     // access non-existing property
     QCOMPARE(false, item.isRegisteredProperty(property_name));
-//    QVERIFY_THROW(item.getRegisteredProperty(property_name), GUIHelpers::Error);
-//    QVERIFY_THROW(item.setRegisteredProperty(property_name, value), GUIHelpers::Error);
+//    QVERIFY_THROW(item.getRegisteredProperty(property_name), GUIHelpers::Error);
+//    QVERIFY_THROW(item.setRegisteredProperty(property_name, value), GUIHelpers::Error);
 
     // registering new property
     item.registerProperty(property_name, value);
@@ -52,7 +52,7 @@ inline void TestParameterizedItem::test_registerProperty()
     QVERIFY_THROW(item.setRegisteredProperty(property_name, QString("aaa")), GUIHelpers::Error);
 
     // attempt to register already existing property
-//    QVERIFY_THROW(item.registerProperty(property_name, 1.0), GUIHelpers::Error);
+//    QVERIFY_THROW(item.registerProperty(property_name, 1.0), GUIHelpers::Error);
 
     // remove registered property
     item.removeRegisteredProperty(property_name);
@@ -60,12 +60,12 @@ inline void TestParameterizedItem::test_registerProperty()
 //    arguments = spy.takeFirst();
 //    QCOMPARE(arguments.size(), 1);
 //    QCOMPARE(arguments.at(0).toString(), property_name);
-//    QVERIFY_THROW(item.getRegisteredProperty(property_name), GUIHelpers::Error);
+//    QVERIFY_THROW(item.getRegisteredProperty(property_name), GUIHelpers::Error);
 }
 
 inline void TestParameterizedItem::test_SelectableGroupProperty()
 {
-//    ParameterizedItem item;
+//    SessionItem item;
 //    QCOMPARE(item.getSubItems().size(), 0);
 }
 
diff --git a/Tests/UnitTests/TestGUI/TestParticleItems.h b/Tests/UnitTests/TestGUI/TestParticleItems.h
index 3edcbf247a749cef41387f6fcdef94c83c6a3127..9f5017162a5438bca5587fc6211be2be8b4998d1 100644
--- a/Tests/UnitTests/TestGUI/TestParticleItems.h
+++ b/Tests/UnitTests/TestGUI/TestParticleItems.h
@@ -43,7 +43,7 @@ inline void TestParticleItems::test_ParticleToDomain()
 
 inline void TestParticleItems::test_FormFactorGroupProperty()
 {
-//    // FIXME remove MaterialEditor and model from ParameterizedItem
+//    // FIXME remove MaterialEditor and model from SessionItem
 //    MaterialModel materialModel;
 //    MaterialEditor editor(&materialModel);
 //    Q_UNUSED(editor);
@@ -78,7 +78,7 @@ inline void TestParticleItems::test_FormFactorGroupProperty()
 //    foreach(QString ff_name, formfactors) {
 //        QSignalSpy spyItem(&item, SIGNAL(propertyChanged(QString)));
 //        QSignalSpy spyPropertyItem(&item, SIGNAL(propertyItemChanged(QString)));
-//        ParameterizedItem *ffItem = item.setFancyGroupProperty(ParticleItem::P_FORM_FACTOR, ff_name);
+//        SessionItem *ffItem = item.setFancyGroupProperty(ParticleItem::P_FORM_FACTOR, ff_name);
 //        QVERIFY(ffItem);
 //        QCOMPARE(item.getSubItems().size(), 1);
 //        QCOMPARE(ffItem, item.getGroupItem(ParticleItem::P_FORM_FACTOR));
@@ -96,7 +96,7 @@ inline void TestParticleItems::test_FormFactorGroupProperty()
 //    }
 
 //    // checks that change in subItem properties has no affect on signals of ParticleItem
-//    ParameterizedItem *cylinderItem = item.setFancyGroupProperty(ParticleItem::P_FORM_FACTOR, Constants::CylinderType);
+//    SessionItem *cylinderItem = item.setFancyGroupProperty(ParticleItem::P_FORM_FACTOR, Constants::CylinderType);
 //    QSignalSpy spyItem(&item, SIGNAL(propertyChanged(QString)));
 //    QSignalSpy spyPropertyItem(&item, SIGNAL(propertyItemChanged(QString)));
 //    cylinderItem->setRegisteredProperty(CylinderItem::P_RADIUS, 99.9);
diff --git a/Tests/UnitTests/TestGUI/TestPropertyAttributes.h b/Tests/UnitTests/TestGUI/TestPropertyAttributes.h
index 62d7ce017c6304a23dcc8da640563a146b5a7ae4..8fbeef357b936c6edb939f11cee74a925808e97b 100644
--- a/Tests/UnitTests/TestGUI/TestPropertyAttributes.h
+++ b/Tests/UnitTests/TestGUI/TestPropertyAttributes.h
@@ -2,10 +2,10 @@
 #define TESTPROPERTYATTRIBUTES_H
 
 #include "PropertyAttribute.h"
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include <memory>
 #include <QtTest>
-/*
+/*
 class TestPropertyAttributes : public QObject {
     Q_OBJECT
 
@@ -79,7 +79,7 @@ inline void TestPropertyAttributes::test_LimitsAndDecimals()
 
 inline void TestPropertyAttributes::test_ItemAttribute()
 {
-    std::unique_ptr<ParameterizedItem> item(new ParameterizedItem("Test"));
+    std::unique_ptr<ParameterizedItem> item(new SessionItem("Test"));
     PropertyAttribute attr(PropertyAttribute::HIDDEN, AttLimits::limited(1.0, 2.0), 3, "label", "tooltip");
     item->setAttribute(attr);
     QVERIFY(item->getAttribute().isHidden());
@@ -95,7 +95,7 @@ inline void TestPropertyAttributes::test_ItemAttribute()
 
 inline void TestPropertyAttributes::test_ItemPropertyAttribute()
 {
-    std::unique_ptr<ParameterizedItem> item(new ParameterizedItem("Test"));
+    std::unique_ptr<ParameterizedItem> item(new SessionItem("Test"));
     PropertyAttribute attr(PropertyAttribute::HIDDEN, AttLimits::limited(1.0, 2.0), 3, "label", "tooltip");
     const QString thickness("Thickness");
     item->registerProperty(thickness, 3.0, attr);
@@ -121,6 +121,6 @@ inline void TestPropertyAttributes::test_ItemPropertyAttribute()
     QVERIFY(item->getPropertyAttribute(fatness).getDecimals() == 3);
 
 }
-*/
+*/
 
 #endif
diff --git a/Tests/UnitTests/TestGUI/TestSessionItem.h b/Tests/UnitTests/TestGUI/TestSessionItem.h
index 46c954dd1141bfa63641cc30a734a7c3bd9b8836..5a1c7d47fad4c18b9a5a2461da8bdb4bb138108b 100644
--- a/Tests/UnitTests/TestGUI/TestSessionItem.h
+++ b/Tests/UnitTests/TestGUI/TestSessionItem.h
@@ -3,7 +3,7 @@
 
 
 #include <QtTest>
-#include "ParameterizedItem.h"
+#include "SessionItem.h"
 #include "GUIHelpers.h"
 #include "SessionModel.h"
 #include "verify_throw_macro.h"
@@ -13,7 +13,7 @@
 class TestSessionItem : public QObject {
     Q_OBJECT
 private:
-    void verify_get_item(ParameterizedItem *item, const QString &tag, QVector<ParameterizedItem*> list);
+    void verify_get_item(SessionItem *item, const QString &tag, QVector<SessionItem*> list);
 private slots:
     void test_constructor();
     void test_tags();
@@ -22,7 +22,7 @@ private slots:
 };
 
 
-inline void TestSessionItem::verify_get_item(ParameterizedItem *item, const QString &tag, QVector<ParameterizedItem *> list)
+inline void TestSessionItem::verify_get_item(SessionItem *item, const QString &tag, QVector<SessionItem *> list)
 {
     if (list.size() > 0)
         QVERIFY(item->getItem(tag) == list[0]);
@@ -41,7 +41,7 @@ inline void TestSessionItem::verify_get_item(ParameterizedItem *item, const QStr
 inline void TestSessionItem::test_constructor()
 {
     const QString modeltype = "This is the model type";
-    ParameterizedItem *item = new ParameterizedItem(modeltype);
+    SessionItem *item = new SessionItem(modeltype);
     QVERIFY(item->modelType() == modeltype);
     QVERIFY(item->model() == nullptr);
     QVERIFY(item->parent() == nullptr);
@@ -55,10 +55,10 @@ inline void TestSessionItem::test_tags()
     const QString tag2 = "TAG2";
     const QString tag3 = "TAG3";
     const QString tag4 = "TAG4";
-    ParameterizedItem *item = new ParameterizedItem(modeltype);
-    QVector<ParameterizedItem*> items;
+    SessionItem *item = new SessionItem(modeltype);
+    QVector<SessionItem*> items;
     for (int i = 0; i < 10; i++)
-        items.append(new ParameterizedItem(modeltype));
+        items.append(new SessionItem(modeltype));
 
     // before using a tag, it must be registered
     QVERIFY(item->registerTag(tag1));
@@ -124,7 +124,7 @@ inline void TestSessionItem::test_tags()
     // REMOVAL
 
     // tag4 can not be removed
-    ParameterizedItem *last = item->takeItem(3, tag4);
+    SessionItem *last = item->takeItem(3, tag4);
     QVERIFY(last == nullptr);
     verify_get_item(item, tag4, items.mid(6, 4));
 
@@ -141,7 +141,7 @@ inline void TestSessionItem::test_tags()
 
 inline void TestSessionItem::test_data_roles()
 {
-    ParameterizedItem *item = new ParameterizedItem("Some model type");
+    SessionItem *item = new SessionItem("Some model type");
     item->setData(Qt::DisplayRole, 1234);
     QVERIFY(item->data(Qt::DisplayRole) == 1234);
     QVERIFY(item->data(Qt::EditRole) == 1234);
@@ -163,24 +163,24 @@ inline void TestSessionItem::test_model_types()
     const QString model4 = "modeltype 4";
     const QString model5 = "modeltype 5";
 
-    ParameterizedItem *item = new ParameterizedItem("modeltype does not matter");
+    SessionItem *item = new SessionItem("modeltype does not matter");
     QVERIFY(item->registerTag("Tag1", 0, -1, QStringList() << model1 << model2));
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model1), "Tag1"));
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model2), "Tag1"));
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model3), "Tag1") == false);
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model4), "Tag1") == false);
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model5), "Tag1") == false);
+    QVERIFY(item->insertItem(0, new SessionItem(model1), "Tag1"));
+    QVERIFY(item->insertItem(0, new SessionItem(model2), "Tag1"));
+    QVERIFY(item->insertItem(0, new SessionItem(model3), "Tag1") == false);
+    QVERIFY(item->insertItem(0, new SessionItem(model4), "Tag1") == false);
+    QVERIFY(item->insertItem(0, new SessionItem(model5), "Tag1") == false);
     QVERIFY(item->registerTag("Tag2", 0, -1, QStringList() << model3 << model4 << model5));
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model1), "Tag2") == false);
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model2), "Tag2") == false);
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model3), "Tag2"));
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model4), "Tag2"));
-    QVERIFY(item->insertItem(0, new ParameterizedItem(model5), "Tag2"));
+    QVERIFY(item->insertItem(0, new SessionItem(model1), "Tag2") == false);
+    QVERIFY(item->insertItem(0, new SessionItem(model2), "Tag2") == false);
+    QVERIFY(item->insertItem(0, new SessionItem(model3), "Tag2"));
+    QVERIFY(item->insertItem(0, new SessionItem(model4), "Tag2"));
+    QVERIFY(item->insertItem(0, new SessionItem(model5), "Tag2"));
 }
 
 //inline void TestParameterizedItem::test_registerProperty()
 //{
-//    ParameterizedItem item;
+//    SessionItem item;
 //    QString property_name("MyProperty");
 //    double value(1.0);
 ////    QSignalSpy spy(&item, SIGNAL(propertyChanged(QString)));
@@ -226,7 +226,7 @@ inline void TestSessionItem::test_model_types()
 
 //inline void TestParameterizedItem::test_SelectableGroupProperty()
 //{
-////    ParameterizedItem item;
+////    SessionItem item;
 ////    QCOMPARE(item.getSubItems().size(), 0);
 //}
 
diff --git a/Tests/UnitTests/TestGUI/TestSessionModel.h b/Tests/UnitTests/TestGUI/TestSessionModel.h
index 4158778df08e009394fb6160e8da005d50095256..dd1fc26f8230f8775c7e1b21809614af5ec46d30 100644
--- a/Tests/UnitTests/TestGUI/TestSessionModel.h
+++ b/Tests/UnitTests/TestGUI/TestSessionModel.h
@@ -28,22 +28,22 @@ inline void TestSessionModel::test_SampleModel_CreateCopy()
     std::unique_ptr<MaterialEditor> P_materialEditor(new MaterialEditor(P_materialModel.get()));
 
     SampleModel *model1 = new SampleModel();
-    ParameterizedItem *multilayer = model1->insertNewItem(Constants::MultiLayerType);
+    SessionItem *multilayer = model1->insertNewItem(Constants::MultiLayerType);
     multilayer->setItemName("multilayer");
     model1->insertNewItem(Constants::LayerType, model1->indexOfItem(multilayer));
-    ParameterizedItem *multilayer2 = model1->insertNewItem(Constants::MultiLayerType);
+    SessionItem *multilayer2 = model1->insertNewItem(Constants::MultiLayerType);
     multilayer2->setItemName("multilayer2");
 
     QString buffer1;
     QXmlStreamWriter writer1(&buffer1);
     model1->writeTo(&writer1);
-    qDebug() << buffer1;
+    qDebug() << buffer1;
 
     SampleModel *model2 = model1->createCopy();
     QString buffer2;
     QXmlStreamWriter writer2(&buffer2);
     model2->writeTo(&writer2);
-    qDebug() << buffer2;
+    qDebug() << buffer2;
 
     QCOMPARE(buffer1, buffer2);
 
@@ -57,15 +57,15 @@ inline void TestSessionModel::test_SampleModel_CreatePartialCopy()
     std::unique_ptr<MaterialEditor> P_materialEditor(new MaterialEditor(P_materialModel.get()));
 
     SampleModel *model1 = new SampleModel();
-    ParameterizedItem *multilayer1 = model1->insertNewItem(Constants::MultiLayerType);
+    SessionItem *multilayer1 = model1->insertNewItem(Constants::MultiLayerType);
     multilayer1->setItemName("multilayer1");
     model1->insertNewItem(Constants::LayerType, model1->indexOfItem(multilayer1));
 
-    ParameterizedItem *multilayer2 = model1->insertNewItem(Constants::MultiLayerType);
+    SessionItem *multilayer2 = model1->insertNewItem(Constants::MultiLayerType);
     multilayer2->setItemName("multilayer2");
 
     SampleModel *model2 = model1->createCopy(multilayer1);
-    ParameterizedItem *result = model2->itemForIndex(model2->index(0,0,QModelIndex()));
+    SessionItem *result = model2->itemForIndex(model2->index(0,0,QModelIndex()));
 
     QCOMPARE(result->itemName(), multilayer1->itemName());
     QCOMPARE(result->modelType(), multilayer1->modelType());
@@ -77,12 +77,12 @@ inline void TestSessionModel::test_SampleModel_CreatePartialCopy()
 inline void TestSessionModel::test_InstrumentModel_CreateCopy()
 {
     InstrumentModel *model1 = new InstrumentModel();
-    ParameterizedItem *instrument1 = model1->insertNewItem(Constants::InstrumentType);
+    SessionItem *instrument1 = model1->insertNewItem(Constants::InstrumentType);
     instrument1->setItemName("instrument1");
     model1->insertNewItem(Constants::DetectorType, model1->indexOfItem(instrument1));
     model1->insertNewItem(Constants::BeamType, model1->indexOfItem(instrument1));
 
-    ParameterizedItem *instrument2 = model1->insertNewItem(Constants::InstrumentType);
+    SessionItem *instrument2 = model1->insertNewItem(Constants::InstrumentType);
     instrument2->setItemName("instrument2");
     model1->insertNewItem(Constants::DetectorType, model1->indexOfItem(instrument2));
     model1->insertNewItem(Constants::BeamType, model1->indexOfItem(instrument2));
@@ -90,13 +90,13 @@ inline void TestSessionModel::test_InstrumentModel_CreateCopy()
     QString buffer1;
     QXmlStreamWriter writer1(&buffer1);
     model1->writeTo(&writer1);
-    qDebug() << buffer1;
+    qDebug() << buffer1;
 
     InstrumentModel *model2 = model1->createCopy();
     QString buffer2;
     QXmlStreamWriter writer2(&buffer2);
     model2->writeTo(&writer2);
-    qDebug() << buffer2;
+    qDebug() << buffer2;
 
     QCOMPARE(buffer1, buffer2);
 
@@ -107,12 +107,12 @@ inline void TestSessionModel::test_InstrumentModel_CreateCopy()
 inline void TestSessionModel::test_InstrumentModel_CreatePartialCopy()
 {
     InstrumentModel *model1 = new InstrumentModel();
-    ParameterizedItem *instrument1 = model1->insertNewItem(Constants::InstrumentType);
+    SessionItem *instrument1 = model1->insertNewItem(Constants::InstrumentType);
     instrument1->setItemName("instrument1");
     model1->insertNewItem(Constants::DetectorType, model1->indexOfItem(instrument1));
     model1->insertNewItem(Constants::BeamType, model1->indexOfItem(instrument1));
 
-    ParameterizedItem *instrument2 = model1->insertNewItem(Constants::InstrumentType);
+    SessionItem *instrument2 = model1->insertNewItem(Constants::InstrumentType);
     instrument2->setItemName("instrument2");
     model1->insertNewItem(Constants::DetectorType, model1->indexOfItem(instrument2));
     model1->insertNewItem(Constants::BeamType, model1->indexOfItem(instrument2));
@@ -130,7 +130,7 @@ inline void TestSessionModel::test_InstrumentModel_CreatePartialCopy()
 //    model2->writeTo(&writer2);
 //    qDebug() << buffer2;
 
-    ParameterizedItem *result = model2->itemForIndex(model2->index(0,0,QModelIndex()));
+    SessionItem *result = model2->itemForIndex(model2->index(0,0,QModelIndex()));
 
 //    QCOMPARE(result->itemName(), instrument2->itemName());
     QCOMPARE(result->modelType(), instrument2->modelType());
@@ -139,7 +139,7 @@ inline void TestSessionModel::test_InstrumentModel_CreatePartialCopy()
     delete model2;
 }
 
-//! Test if ParameterizedItem can be copied from one model to another. Particularly, we test
+//! Test if SessionItem can be copied from one model to another. Particularly, we test
 //! here if a MultiLayerItem can be copied from SampleModel to the JobItem of JobModel
 inline void TestSessionModel::test_copyParameterizedItem()
 {
@@ -147,25 +147,25 @@ inline void TestSessionModel::test_copyParameterizedItem()
     std::unique_ptr<MaterialEditor> P_materialEditor(new MaterialEditor(P_materialModel.get()));
 
     SampleModel *sampleModel = new SampleModel();
-    ParameterizedItem *multilayer1 = sampleModel->insertNewItem(Constants::MultiLayerType);
+    SessionItem *multilayer1 = sampleModel->insertNewItem(Constants::MultiLayerType);
     multilayer1->setItemName("multilayer1");
     sampleModel->insertNewItem(Constants::LayerType, sampleModel->indexOfItem(multilayer1));
 
     InstrumentModel *instrumentModel = new InstrumentModel();
-    ParameterizedItem *instrument1 = instrumentModel->insertNewItem(Constants::InstrumentType);
+    SessionItem *instrument1 = instrumentModel->insertNewItem(Constants::InstrumentType);
     instrument1->setItemName("instrument1");
     instrumentModel->insertNewItem(Constants::DetectorType, instrumentModel->indexOfItem(instrument1));
     instrumentModel->insertNewItem(Constants::BeamType, instrumentModel->indexOfItem(instrument1));
 
     JobModel *jobModel = new JobModel();
-    ParameterizedItem *jobItem = jobModel->insertNewItem(Constants::JobItemType);
-    QCOMPARE(jobItem->getTagInfo(jobItem->defaultTag()).childCount, 0);
+    SessionItem *jobItem = jobModel->insertNewItem(Constants::JobItemType);
+    QCOMPARE(jobItem->getTagInfo(jobItem->defaultTag()).childCount, 0);
 
     jobModel->copyParameterizedItem(multilayer1, jobItem);
-    QCOMPARE(jobItem->getTagInfo(jobItem->defaultTag()).childCount, 1);
+    QCOMPARE(jobItem->getTagInfo(jobItem->defaultTag()).childCount, 1);
 
     jobModel->copyParameterizedItem(instrument1, jobItem);
-    QCOMPARE(jobItem->getTagInfo(jobItem->defaultTag()).childCount, 2);
+    QCOMPARE(jobItem->getTagInfo(jobItem->defaultTag()).childCount, 2);
 
     delete sampleModel;
     delete instrumentModel;