diff --git a/GUI/Models/GroupInfoCatalog.cpp b/GUI/Models/GroupInfoCatalog.cpp
index bc388ad4c86ff08ea20ae4d4378d2c6e56edecf1..fd46c22731cb4f85427e90588a513d2fd66539bb 100644
--- a/GUI/Models/GroupInfoCatalog.cpp
+++ b/GUI/Models/GroupInfoCatalog.cpp
@@ -23,6 +23,7 @@
 #include "GUI/Models/RealLimitsItems.h"
 #include "GUI/Models/RectangularDetectorItem.h"
 #include "GUI/Models/ResolutionFunctionItems.h"
+#include "GUI/Models/LayerRoughnessItems.h"
 #include "GUI/Models/SphericalDetectorItem.h"
 
 GroupInfoCatalog::GroupInfoCatalog()
@@ -68,9 +69,9 @@ GroupInfoCatalog::GroupInfoCatalog()
     addInfo(info);
 
     info = GroupInfo("Roughness");
-    info.add("LayerBasicRoughness", "Basic");
-    info.add("LayerZeroRoughness", "No");
-    info.setDefaultType("LayerZeroRoughness");
+    info.add(LayerBasicRoughnessItem::M_TYPE, "Basic");
+    info.add(LayerZeroRoughnessItem::M_TYPE, "No");
+    info.setDefaultType(LayerZeroRoughnessItem::M_TYPE);
     addInfo(info);
 
     info = GroupInfo("Detector group");
diff --git a/GUI/Models/ItemCatalog.cpp b/GUI/Models/ItemCatalog.cpp
index fa64e9c8d4cb1235714efad540264ad78865f6b0..12b57bea80ca432805c74b8e52bd73c5e615b712 100644
--- a/GUI/Models/ItemCatalog.cpp
+++ b/GUI/Models/ItemCatalog.cpp
@@ -128,8 +128,8 @@ ItemCatalog::ItemCatalog()
     add("ZRotation", create_new<ZRotationItem>);
     add("EulerRotation", create_new<EulerRotationItem>);
 
-    add("LayerBasicRoughness", create_new<LayerBasicRoughnessItem>);
-    add("LayerZeroRoughness", create_new<LayerZeroRoughnessItem>);
+    addItem<LayerBasicRoughnessItem>();
+    addItem<LayerZeroRoughnessItem>();
 
     addItem<SphericalDetectorItem>();
     addItem<RectangularDetectorItem>();
diff --git a/GUI/Models/LayerRoughnessItems.cpp b/GUI/Models/LayerRoughnessItems.cpp
index 36d15558c3b5403b79214bea8c00db897558ee09..f2edc2247734249fcb6241b05e42f3ae6321c237 100644
--- a/GUI/Models/LayerRoughnessItems.cpp
+++ b/GUI/Models/LayerRoughnessItems.cpp
@@ -20,14 +20,24 @@ const QString hurst_tooltip =
     "dimensionless [0.0, 1.0], where 0.0 gives more spikes, \n1.0 more smoothness.";
 }
 
-LayerZeroRoughnessItem::LayerZeroRoughnessItem() : SessionItem("LayerZeroRoughness") {}
+// Layer zero roughness item
+/* ------------------------------------------------------------------------- */
+
+const QString LayerZeroRoughnessItem::M_TYPE = "LayerZeroRoughness";
+
+LayerZeroRoughnessItem::LayerZeroRoughnessItem() : SessionItem(M_TYPE) {}
+
+// Layer basic roughness item
+/* ------------------------------------------------------------------------- */
 
 const QString LayerBasicRoughnessItem::P_SIGMA = QString::fromStdString("Sigma");
 const QString LayerBasicRoughnessItem::P_HURST = QString::fromStdString("Hurst");
 const QString LayerBasicRoughnessItem::P_LATERAL_CORR_LENGTH =
     QString::fromStdString("CorrelationLength");
 
-LayerBasicRoughnessItem::LayerBasicRoughnessItem() : SessionItem("LayerBasicRoughness")
+const QString LayerBasicRoughnessItem::M_TYPE = "LayerBasicRoughness";
+
+LayerBasicRoughnessItem::LayerBasicRoughnessItem() : SessionItem(M_TYPE)
 {
     setToolTip("A roughness of interface between two layers.");
     addProperty(P_SIGMA, 1.0)->setToolTip("rms of the roughness in nanometers");
diff --git a/GUI/Models/LayerRoughnessItems.h b/GUI/Models/LayerRoughnessItems.h
index 9665b7706ae836f4c6f738f86191986db2df9b5b..93ace88a4bf09e5394b67b980b779763d5e5bebe 100644
--- a/GUI/Models/LayerRoughnessItems.h
+++ b/GUI/Models/LayerRoughnessItems.h
@@ -19,6 +19,8 @@
 
 class BA_CORE_API_ LayerZeroRoughnessItem : public SessionItem {
 public:
+    static const QString M_TYPE;
+
     LayerZeroRoughnessItem();
 };
 
@@ -27,6 +29,9 @@ public:
     static const QString P_SIGMA;
     static const QString P_HURST;
     static const QString P_LATERAL_CORR_LENGTH;
+
+    static const QString M_TYPE;
+
     LayerBasicRoughnessItem();
 };
 
diff --git a/GUI/Models/TransformFromDomain.cpp b/GUI/Models/TransformFromDomain.cpp
index 5773f66a4f11337add578cd899662741d7f399ec..92294535f0942052248d5105433d8c7e3ff1e723 100644
--- a/GUI/Models/TransformFromDomain.cpp
+++ b/GUI/Models/TransformFromDomain.cpp
@@ -176,14 +176,15 @@ void TransformFromDomain::setLayerItem(SessionItem* layerItem, const Layer* laye
                                        const LayerInterface* top_interface)
 {
     layerItem->setItemValue(LayerItem::P_THICKNESS, layer->thickness());
-    layerItem->setGroupProperty(LayerItem::P_ROUGHNESS, "LayerZeroRoughness");
+    layerItem->setGroupProperty(LayerItem::P_ROUGHNESS, LayerZeroRoughnessItem::M_TYPE);
     layerItem->setItemValue(LayerItem::P_NSLICES, (int)layer->numberOfSlices());
 
     if (top_interface) {
         const LayerRoughness* roughness = top_interface->getRoughness();
         if (TransformFromDomain::isValidRoughness(roughness)) {
             SessionItem* roughnessItem =
-                layerItem->setGroupProperty(LayerItem::P_ROUGHNESS, "LayerBasicRoughness");
+                layerItem->setGroupProperty(LayerItem::P_ROUGHNESS,
+                                            LayerBasicRoughnessItem::M_TYPE);
             TransformFromDomain::setRoughnessItem(roughnessItem, *roughness);
         }
     }
diff --git a/GUI/Models/TransformToDomain.cpp b/GUI/Models/TransformToDomain.cpp
index d4684b5cd36132670e8c67d711cfce7c9d8d2328..a9fd11cb872f7cfbde8f4518fb9cfb9cfc1b16b5 100644
--- a/GUI/Models/TransformToDomain.cpp
+++ b/GUI/Models/TransformToDomain.cpp
@@ -92,9 +92,9 @@ std::unique_ptr<Layer> TransformToDomain::createLayer(const SessionItem& item)
 std::unique_ptr<LayerRoughness>
 TransformToDomain::createLayerRoughness(const SessionItem& roughnessItem)
 {
-    if (roughnessItem.modelType() == "LayerZeroRoughness") {
+    if (roughnessItem.modelType() == LayerZeroRoughnessItem::M_TYPE) {
         return nullptr;
-    } else if (roughnessItem.modelType() == "LayerBasicRoughness") {
+    } else if (roughnessItem.modelType() == LayerBasicRoughnessItem::M_TYPE) {
         return std::make_unique<LayerRoughness>(
             roughnessItem.getItemValue(LayerBasicRoughnessItem::P_SIGMA).toDouble(),
             roughnessItem.getItemValue(LayerBasicRoughnessItem::P_HURST).toDouble(),
diff --git a/Tests/UnitTests/GUI/TestMultiLayerItem.cpp b/Tests/UnitTests/GUI/TestMultiLayerItem.cpp
index 80c6e986995ead943f1aa2078607e54c1658cc67..324203b6eb61579e13c0bdb756988995e6af1a6b 100644
--- a/Tests/UnitTests/GUI/TestMultiLayerItem.cpp
+++ b/Tests/UnitTests/GUI/TestMultiLayerItem.cpp
@@ -1,4 +1,5 @@
 #include "GUI/Models/LayerItem.h"
+#include "GUI/Models/LayerRoughnessItems.h"
 #include "GUI/Models/MultiLayerItem.h"
 #include "GUI/Models/SampleModel.h"
 #include "Tests/GTestWrapper/google_test.h"
@@ -31,8 +32,10 @@ TEST_F(TestMultiLayerItem, test_twoLayerSystem)
     EXPECT_TRUE(bottom->getItem(LayerItem::P_ROUGHNESS)->isEnabled());
 
     // Default roughness should be "LayerZeroRoughness"
-    EXPECT_EQ(top->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(), "LayerZeroRoughness");
-    EXPECT_EQ(bottom->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(), "LayerZeroRoughness");
+    EXPECT_EQ(top->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(),
+              LayerZeroRoughnessItem::M_TYPE);
+    EXPECT_EQ(bottom->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(),
+              LayerZeroRoughnessItem::M_TYPE);
 }
 
 //! Testing layer appearance (enabled, disabled) in a MultiLayer made of three default layers.
@@ -64,9 +67,12 @@ TEST_F(TestMultiLayerItem, test_threeLayerSystem)
     EXPECT_TRUE(bottom->getItem(LayerItem::P_ROUGHNESS)->isEnabled());
 
     // Default roughness should be "LayerZeroRoughness"
-    EXPECT_EQ(top->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(), "LayerZeroRoughness");
-    EXPECT_EQ(middle->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(), "LayerZeroRoughness");
-    EXPECT_EQ(bottom->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(), "LayerZeroRoughness");
+    EXPECT_EQ(top->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(),
+              LayerZeroRoughnessItem::M_TYPE);
+    EXPECT_EQ(middle->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(),
+              LayerZeroRoughnessItem::M_TYPE);
+    EXPECT_EQ(bottom->getGroupItem(LayerItem::P_ROUGHNESS)->modelType(),
+              LayerZeroRoughnessItem::M_TYPE);
 }
 
 //! Testing middle layer appearance when it is moved to the top.