diff --git a/GUI/coregui/Models/MultiLayerItem.cpp b/GUI/coregui/Models/MultiLayerItem.cpp
index 02c9e119c4e05d2facd13329f5e783e0bfdcf80a..7eeac5c7e17fab054841347497d1e95b5225f467 100644
--- a/GUI/coregui/Models/MultiLayerItem.cpp
+++ b/GUI/coregui/Models/MultiLayerItem.cpp
@@ -23,6 +23,8 @@ MultiLayerItem::MultiLayerItem(ParameterizedItem *parent)
     registerProperty(P_CROSS_CORR_LENGTH, 0.0);
     m_valid_children.append(QString("Layer"));
     m_valid_children.append(QString("MultiLayer"));
+
+    setPropertyVisibility(ParameterizedItem::P_NAME, ParameterizedItem::VisibleProperty);
 }
 
 MultiLayerItem::~MultiLayerItem()
diff --git a/GUI/coregui/Models/ParameterizedItem.cpp b/GUI/coregui/Models/ParameterizedItem.cpp
index e92f21d0bc4dc964db13f7445d24b5c1bdefc25d..531299c18cf44ec9f26c5ef6680ad58fd6222e27 100644
--- a/GUI/coregui/Models/ParameterizedItem.cpp
+++ b/GUI/coregui/Models/ParameterizedItem.cpp
@@ -24,13 +24,37 @@
 #include <QMetaEnum>
 #include <PropertyVariantManager.h>
 
+const QString ParameterizedItem::P_NAME = "Name";
 
+ParameterizedItem::ParameterizedItem(const QString &model_type,
+                                     ParameterizedItem *parent)
+    : m_model_type(model_type)
+    , m_parent(parent)
+    , m_block_property_change_event(false)
+{
+    if (m_parent) {
+        m_parent->addChildItem(this);
+    }
+
+    registerProperty(P_NAME, QString(), QString(), HiddenProperty);
+    setItemName(m_model_type);
+}
 
 ParameterizedItem::~ParameterizedItem()
 {
     qDeleteAll(m_children);
 }
 
+QString ParameterizedItem::itemName() const
+{
+    return getRegisteredProperty(P_NAME).toString();
+}
+
+void ParameterizedItem::setItemName(const QString &item_name)
+{
+    setRegisteredProperty(P_NAME, item_name);
+}
+
 ParameterizedItem *ParameterizedItem::takeChildItem(int row)
 {
     ParameterizedItem *item = m_children.takeAt(row);
@@ -55,6 +79,7 @@ bool ParameterizedItem::event(QEvent * e )
         if (m_sub_items.contains(name)) {
             updatePropertyItem(name);
         }
+        qDebug() << " xxxxxxxxxxxxxxxxx propertyChanged->e,it";
         emit propertyChanged(name);
     }
     return QObject::event(e);
@@ -93,18 +118,6 @@ ParameterizedItem *ParameterizedItem::createPropertyItem(QString name)
     return result;
 }
 
-ParameterizedItem::ParameterizedItem(const QString &model_type,
-                                     ParameterizedItem *parent)
-    : m_model_type(model_type)
-    , m_parent(parent)
-    , m_block_property_change_event(false)
-{
-    if (m_parent) {
-        m_parent->addChildItem(this);
-    }
-    setItemName(m_model_type);
-}
-
 void ParameterizedItem::updatePropertyItem(QString name)
 {
     qDebug() << "ParameterizedItem::updatePropertyItem() ";
@@ -214,3 +227,14 @@ QString ParameterizedItem::getPropertyToolTip(const QString &name) const
 {
     return m_property_tooltip[name];
 }
+
+
+void ParameterizedItem::setPropertyVisibility(const QString &name, PropertyVisibility visibility)
+{
+    if(m_hidden_properties.contains(name)) {
+        if(visibility == VisibleProperty) m_hidden_properties.removeAll(name);
+    } else {
+        if(visibility == HiddenProperty) m_hidden_properties << name;
+
+    }
+}
diff --git a/GUI/coregui/Models/ParameterizedItem.h b/GUI/coregui/Models/ParameterizedItem.h
index 1e72403dbbe067ce124c8e2b7ddf262319c10b58..23775e52153ad6878433dcaf437208435697f398 100644
--- a/GUI/coregui/Models/ParameterizedItem.h
+++ b/GUI/coregui/Models/ParameterizedItem.h
@@ -28,16 +28,17 @@ class ParameterizedItem : public QObject
 {
     Q_OBJECT
 public:
+    static const QString P_NAME;
     virtual ~ParameterizedItem();
 
     //! retrieves the model type
     QString modelType() const { return m_model_type; }
 
     //! retrieves the item's name
-    QString itemName() const { return m_item_name; }
+    QString itemName() const;
 
     //! sets the item's name
-    void setItemName(const QString &item_name) { m_item_name = item_name; }
+    void setItemName(const QString &item_name);
 
     //! retrieve parent item
     ParameterizedItem *parent() const { return m_parent; }
@@ -112,6 +113,7 @@ public:
     void setBlockPropertyChangeEvent(bool flag) {m_block_property_change_event = flag; }
     bool getBlockPropertyChangeEvent() const { return m_block_property_change_event; }
 
+    void setPropertyVisibility(const QString &name, PropertyVisibility visibility);
 signals:
     void propertyChanged(QString propertyName);
     void propertyItemChanged(QString propertyName);
@@ -126,7 +128,7 @@ protected:
 
 private:
     QString m_model_type;
-    QString m_item_name;
+    //QString m_item_name;
     ParameterizedItem *m_parent;
     QList<ParameterizedItem *> m_children;
     QMap<QString, ParameterizedItem *> m_sub_items;
diff --git a/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.cpp b/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.cpp
index c5ef3527ec5dd36f9940c5d6b09e9599f2c127e4..94683c24771a9d01be100d920ff2a8414e79ea97 100644
--- a/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.cpp
+++ b/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.cpp
@@ -117,3 +117,10 @@ void MaterialVariantFactory::slotEditorDestroyed(QObject *object)
     }
 }
 
+
+void MaterialVariantFactory::slotPropertyAttributeChanged(QtProperty *, const QString &, const QVariant &)
+{
+
+}
+
+
diff --git a/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.h b/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.h
index 644213ba92925045ab43a1492636b76c070116ea..a430d427105d069672bd3b3138bf67271f311ac5 100644
--- a/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.h
+++ b/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.h
@@ -28,6 +28,8 @@ private slots:
     void slotPropertyChanged(QtProperty *property, const QVariant &value);
     void slotSetValue(const MaterialColorProperty &value);
     void slotEditorDestroyed(QObject *object);
+    void slotPropertyAttributeChanged(QtProperty *, const QString &, const QVariant &);
+
 private:
     QMap<QtProperty *, QList<MaterialColorPropertyEdit *> >
         m_property_to_material_editors;
diff --git a/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.cpp b/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.cpp
index 91bdbd0f33c85e72e4b759ee56e5217ccfd1ce7f..164c1fcadef8dc7bed838974fc2de51e2f2182b4 100644
--- a/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.cpp
+++ b/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.cpp
@@ -180,3 +180,8 @@ void PropertyVariantFactory::slotEditorDestroyed(QObject *object)
     }
 }
 
+void PropertyVariantFactory::slotPropertyAttributeChanged(QtProperty *, const QString &, const QVariant &)
+{
+
+}
+
diff --git a/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.h b/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.h
index f099d2b77d807b68c42ae4c8fb211790757cd1c7..b6d438dc3684af11d7956ba52eb10ce44a09449d 100644
--- a/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.h
+++ b/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.h
@@ -32,6 +32,8 @@ private slots:
     void slotSetValue(const MaterialProperty &value);
     void slotSetValue(const GroupProperty &value);
     void slotEditorDestroyed(QObject *object);
+    void slotPropertyAttributeChanged(QtProperty *, const QString &, const QVariant &);
+
 private:
     QMap<QtProperty *, QList<MaterialPropertyEdit *> >
         m_property_to_material_editors;