diff --git a/GUI/Models/LayerItem.cpp b/GUI/Models/LayerItem.cpp
index bcfed07b89a285890d033c572483f015f19408ca..c71b057e60da55528fb89f1c23c74a92f0cd59d9 100644
--- a/GUI/Models/LayerItem.cpp
+++ b/GUI/Models/LayerItem.cpp
@@ -19,6 +19,7 @@
 #include "GUI/Models/MaterialItemUtils.h"
 #include "GUI/Models/MultiLayerItem.h"
 #include "GUI/Models/ParticleLayoutItem.h"
+#include "GUI/Models/UIntDescriptor.h"
 
 namespace {
 const QString layer_nslices_tooltip = "Number of horizontal slices.\n"
@@ -85,21 +86,11 @@ SessionItem* LayerItem::roughnessItem() const
     return getItem(P_ROUGHNESS);
 }
 
-unsigned int LayerItem::numSlices() const
+UIntDescriptor LayerItem::numSlices() const
 {
-    return getItemValue(P_NSLICES).toUInt();
+    return UIntDescriptor(getItem(P_NSLICES), Unit::unitless);
 }
 
-void LayerItem::setNumSlices(unsigned int num_slices)
-{
-    // legacy representation as int
-    setItemValue(P_NSLICES, static_cast<int>(num_slices));
-}
-
-SessionItem* LayerItem::numSlicesItem() const
-{
-    return getItem(P_NSLICES);
-}
 
 QVector<ParticleLayoutItem*> LayerItem::layouts() const
 {
diff --git a/GUI/Models/LayerItem.h b/GUI/Models/LayerItem.h
index 8f706c51ecb9dd5aa39f4c6a9ce0296d2ebcd3e8..a52d171241bd83e8aded8b400da955523d8fa730 100644
--- a/GUI/Models/LayerItem.h
+++ b/GUI/Models/LayerItem.h
@@ -20,6 +20,7 @@
 class LayerZeroRoughnessItem;
 class LayerBasicRoughnessItem;
 class ParticleLayoutItem;
+class UIntDescriptor;
 class DoubleDescriptor;
 
 class BA_CORE_API_ LayerItem : public ItemWithMaterial {
@@ -44,9 +45,7 @@ public:
     SessionItem* roughness() const;
     SessionItem* roughnessItem() const;
 
-    unsigned int numSlices() const;
-    void setNumSlices(unsigned int num_slices);
-    SessionItem* numSlicesItem() const;
+    UIntDescriptor numSlices() const;
 
     QVector<ParticleLayoutItem*> layouts() const;
     void removeLayout(ParticleLayoutItem* layout);
diff --git a/GUI/Models/TransformFromDomain.cpp b/GUI/Models/TransformFromDomain.cpp
index 81cfcaa011bc14356463986172373dd5af7346a8..573de4e2d6e1f2ab45029eb8290e59c5f9f2bcfe 100644
--- a/GUI/Models/TransformFromDomain.cpp
+++ b/GUI/Models/TransformFromDomain.cpp
@@ -49,6 +49,7 @@
 #include "GUI/Models/RectangularDetectorItem.h"
 #include "GUI/Models/ResolutionFunctionItems.h"
 #include "GUI/Models/SphericalDetectorItem.h"
+#include "GUI/Models/UIntDescriptor.h"
 #include "GUI/Models/VectorItem.h"
 #include "Param/Distrib/Distributions.h"
 #include "Param/Distrib/RangedDistributions.h"
@@ -392,9 +393,9 @@ void GUI::Transform::FromDomain::setRadialParaCrystalItem(
 void GUI::Transform::FromDomain::setLayerItem(LayerItem* layerItem, const Layer* layer,
                                               const LayerInterface* top_interface)
 {
-    layerItem->setThickness(layer->thickness());
+    layerItem->thickness().set(layer->thickness());
     layerItem->setRoughnessType<LayerZeroRoughnessItem>();
-    layerItem->setNumSlices(layer->numberOfSlices());
+    layerItem->numSlices().set(layer->numberOfSlices());
 
     if (top_interface) {
         const LayerRoughness* roughness = top_interface->getRoughness();
diff --git a/GUI/Models/TransformToDomain.cpp b/GUI/Models/TransformToDomain.cpp
index 69ec48b1143598beaeecd8a4a2cc56cf2ad7e3a3..2497dcefc8491ca0a73e41f0fb546a4b778577f6 100644
--- a/GUI/Models/TransformToDomain.cpp
+++ b/GUI/Models/TransformToDomain.cpp
@@ -35,6 +35,7 @@
 #include "GUI/Models/RotationItems.h"
 #include "GUI/Models/SimulationOptionsItem.h"
 #include "GUI/Models/TransformationItem.h"
+#include "GUI/Models/UIntDescriptor.h"
 #include "GUI/Models/VectorItem.h"
 #include "Param/Distrib/RangedDistributions.h"
 #include "Resample/Options/SimulationOptions.h"