diff --git a/GUI/Model/BaseItem/GroupItemController.h b/GUI/Model/BaseItem/GroupItemController.h
index c56d8eaa6383285d0858ba594725231be6538f14..eac403719af346a5a4703a041cabde0dc29896d4 100644
--- a/GUI/Model/BaseItem/GroupItemController.h
+++ b/GUI/Model/BaseItem/GroupItemController.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_BASEITEM_GROUPITEMCONTROLLER_H
 #define BORNAGAIN_GUI_MODEL_BASEITEM_GROUPITEMCONTROLLER_H
 
-#include "GUI/Model/Group/GroupInfo.h"
+#include "GUI/Model/Types/GroupInfo.h"
 #include <QStringList>
 #include <QVariant>
 
diff --git a/GUI/Model/Types/AxisProperty.cpp b/GUI/Model/Descriptor/AxisProperty.cpp
similarity index 94%
rename from GUI/Model/Types/AxisProperty.cpp
rename to GUI/Model/Descriptor/AxisProperty.cpp
index 0e6ec672ee5704aaf2f9dc1d364fe7f16991ea01..4239373659dfad46b738115897cda8e988ac7c8f 100644
--- a/GUI/Model/Types/AxisProperty.cpp
+++ b/GUI/Model/Descriptor/AxisProperty.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/AxisProperty.cpp
+//! @file      GUI/Model/Descriptor/AxisProperty.cpp
 //! @brief     Implements class AxisProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Types/AxisProperty.h"
+#include "GUI/Model/Descriptor/AxisProperty.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/XML/Serializer.h"
 
diff --git a/GUI/Model/Types/AxisProperty.h b/GUI/Model/Descriptor/AxisProperty.h
similarity index 87%
rename from GUI/Model/Types/AxisProperty.h
rename to GUI/Model/Descriptor/AxisProperty.h
index e760dc2e312dae722c823f1a766e84188696103f..470123c134decec16f654371ff4da4061d50c074 100644
--- a/GUI/Model/Types/AxisProperty.h
+++ b/GUI/Model/Descriptor/AxisProperty.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/AxisProperty.h
+//! @file      GUI/Model/Descriptor/AxisProperty.h
 //! @brief     Defines class AxisProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_TYPES_AXISPROPERTY_H
-#define BORNAGAIN_GUI_MODEL_TYPES_AXISPROPERTY_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_AXISPROPERTY_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_AXISPROPERTY_H
 
 
 #include "Base/Axis/FixedBinAxis.h"
-#include "GUI/Model/Types/DoubleProperty.h"
-#include "GUI/Model/Types/UIntProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
+#include "GUI/Model/Descriptor/UIntProperty.h"
 #include <memory>
 
 class Serializer;
@@ -55,4 +55,4 @@ public:
     AxisProperty& nameLower() const { return *const_cast<AxisProperty*>(&m_##nameLower); }
 
 
-#endif // BORNAGAIN_GUI_MODEL_TYPES_AXISPROPERTY_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_AXISPROPERTY_H
diff --git a/GUI/Model/Types/DoubleDescriptor.cpp b/GUI/Model/Descriptor/DoubleDescriptor.cpp
similarity index 96%
rename from GUI/Model/Types/DoubleDescriptor.cpp
rename to GUI/Model/Descriptor/DoubleDescriptor.cpp
index 4f74c19b9db9cead2e2a8fd25485d14f7cdf3b01..7c519d261bc694f44e37474f1c2e134b26eab55a 100644
--- a/GUI/Model/Types/DoubleDescriptor.cpp
+++ b/GUI/Model/Descriptor/DoubleDescriptor.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/DoubleDescriptor.cpp
+//! @file      GUI/Model/Descriptor/DoubleDescriptor.cpp
 //! @brief     Implements class DoubleDescriptor
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/Path.h"
diff --git a/GUI/Model/Types/DoubleDescriptor.h b/GUI/Model/Descriptor/DoubleDescriptor.h
similarity index 94%
rename from GUI/Model/Types/DoubleDescriptor.h
rename to GUI/Model/Descriptor/DoubleDescriptor.h
index 6e179e3a6bc55253fb413842d2a578ddd00a10c7..89c99bd9991eeb0f5485a65740dd712cea59e948 100644
--- a/GUI/Model/Types/DoubleDescriptor.h
+++ b/GUI/Model/Descriptor/DoubleDescriptor.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/DoubleDescriptor.h
+//! @file      GUI/Model/Descriptor/DoubleDescriptor.h
 //! @brief     Defines class DoubleDescriptor
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_TYPES_DOUBLEDESCRIPTOR_H
-#define BORNAGAIN_GUI_MODEL_TYPES_DOUBLEDESCRIPTOR_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_DOUBLEDESCRIPTOR_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_DOUBLEDESCRIPTOR_H
 
 #include "Fit/Param/RealLimits.h"
 #include "GUI/Model/Types/Unit.h"
@@ -89,4 +89,4 @@ public:
 using DoubleDescriptors = QList<DoubleDescriptor>;
 
 
-#endif // BORNAGAIN_GUI_MODEL_TYPES_DOUBLEDESCRIPTOR_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_DOUBLEDESCRIPTOR_H
diff --git a/GUI/Model/Types/DoubleProperty.cpp b/GUI/Model/Descriptor/DoubleProperty.cpp
similarity index 94%
rename from GUI/Model/Types/DoubleProperty.cpp
rename to GUI/Model/Descriptor/DoubleProperty.cpp
index c5a47c3cbbe474263b3a13a6fe8cb44e1ad28fe5..8d529d43b7aafb9c116a91aa6e6af7a11d4d28dc 100644
--- a/GUI/Model/Types/DoubleProperty.cpp
+++ b/GUI/Model/Descriptor/DoubleProperty.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/DoubleProperty.cpp
+//! @file      GUI/Model/Descriptor/DoubleProperty.cpp
 //! @brief     Implements class DoubleProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <QUuid>
 
 void DoubleProperty::init(const QString& label, const QString& tooltip, double value,
diff --git a/GUI/Model/Types/DoubleProperty.h b/GUI/Model/Descriptor/DoubleProperty.h
similarity index 90%
rename from GUI/Model/Types/DoubleProperty.h
rename to GUI/Model/Descriptor/DoubleProperty.h
index 18276cc5c7f9c4af919335ac9e2f9a09033acb26..0826046514bb84d94692e0baed6f3fb1618ba3cd 100644
--- a/GUI/Model/Types/DoubleProperty.h
+++ b/GUI/Model/Descriptor/DoubleProperty.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/DoubleProperty.h
+//! @file      GUI/Model/Descriptor/DoubleProperty.h
 //! @brief     Defines class DoubleProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_TYPES_DOUBLEPROPERTY_H
-#define BORNAGAIN_GUI_MODEL_TYPES_DOUBLEPROPERTY_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_DOUBLEPROPERTY_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_DOUBLEPROPERTY_H
 
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 
 // #baMigration docu
 class DoubleProperty {
@@ -62,4 +62,4 @@ public:
     void set##nameUpper(double v) { m_##nameLower.set(v); }
 
 
-#endif // BORNAGAIN_GUI_MODEL_TYPES_DOUBLEPROPERTY_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_DOUBLEPROPERTY_H
diff --git a/GUI/Model/Group/SelectionDescriptor.h b/GUI/Model/Descriptor/SelectionDescriptor.h
similarity index 95%
rename from GUI/Model/Group/SelectionDescriptor.h
rename to GUI/Model/Descriptor/SelectionDescriptor.h
index 1f81a82c7717ae047d281230a9b6c83d72aeb3a6..79b92eedb7b2a44e70b9ee108030ec3ebf2d7ca8 100644
--- a/GUI/Model/Group/SelectionDescriptor.h
+++ b/GUI/Model/Descriptor/SelectionDescriptor.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Group/SelectionDescriptor.h
+//! @file      GUI/Model/Descriptor/SelectionDescriptor.h
 //! @brief     Defines class SelectionDescriptor
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_GROUP_SELECTIONDESCRIPTOR_H
-#define BORNAGAIN_GUI_MODEL_GROUP_SELECTIONDESCRIPTOR_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_SELECTIONDESCRIPTOR_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_SELECTIONDESCRIPTOR_H
 
 #include "GUI/Model/BaseItem/GroupItem.h"
 #include "GUI/Util/ComboProperty.h"
@@ -127,4 +127,4 @@ public:
     function<T()> currentItem;              //!< Function to get currently selected item
 };
 
-#endif // BORNAGAIN_GUI_MODEL_GROUP_SELECTIONDESCRIPTOR_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_SELECTIONDESCRIPTOR_H
diff --git a/GUI/Model/Group/SelectionProperty.h b/GUI/Model/Descriptor/SelectionProperty.h
similarity index 92%
rename from GUI/Model/Group/SelectionProperty.h
rename to GUI/Model/Descriptor/SelectionProperty.h
index 58797867152c7a518174148c88268b105818881b..bd2b1c1e7b71fc490c31578c04ce21105d1a205b 100644
--- a/GUI/Model/Group/SelectionProperty.h
+++ b/GUI/Model/Descriptor/SelectionProperty.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Group/SelectionProperty.h
+//! @file      GUI/Model/Descriptor/SelectionProperty.h
 //! @brief     Defines class SelectionProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_GROUP_SELECTIONPROPERTY_H
-#define BORNAGAIN_GUI_MODEL_GROUP_SELECTIONPROPERTY_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_SELECTIONPROPERTY_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_SELECTIONPROPERTY_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 
 // #baMigration docu
 template <typename T> class SelectionProperty {
@@ -105,4 +105,4 @@ private:
 };
 
 
-#endif // BORNAGAIN_GUI_MODEL_GROUP_SELECTIONPROPERTY_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_SELECTIONPROPERTY_H
diff --git a/GUI/Model/Types/UIntDescriptor.cpp b/GUI/Model/Descriptor/UIntDescriptor.cpp
similarity index 95%
rename from GUI/Model/Types/UIntDescriptor.cpp
rename to GUI/Model/Descriptor/UIntDescriptor.cpp
index 92f0ef583f0b2b45cfd446bd3e02984874690331..739a2fc306df6eb4715d60134df38611582d7578 100644
--- a/GUI/Model/Types/UIntDescriptor.cpp
+++ b/GUI/Model/Descriptor/UIntDescriptor.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/UIntDescriptor.cpp
+//! @file      GUI/Model/Descriptor/UIntDescriptor.cpp
 //! @brief     Implements class UIntDescriptor
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Types/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
 
 #include "GUI/Model/BaseItem/SessionItem.h"
 #include <utility>
diff --git a/GUI/Model/Types/UIntDescriptor.h b/GUI/Model/Descriptor/UIntDescriptor.h
similarity index 93%
rename from GUI/Model/Types/UIntDescriptor.h
rename to GUI/Model/Descriptor/UIntDescriptor.h
index 4f00883422e5df2c42fd821d8cb531a49de79e0e..00bf66957c960d722bdc20d8a16c5e712923a736 100644
--- a/GUI/Model/Types/UIntDescriptor.h
+++ b/GUI/Model/Descriptor/UIntDescriptor.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/UIntDescriptor.h
+//! @file      GUI/Model/Descriptor/UIntDescriptor.h
 //! @brief     Defines class UIntDescriptor
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_TYPES_UINTDESCRIPTOR_H
-#define BORNAGAIN_GUI_MODEL_TYPES_UINTDESCRIPTOR_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_UINTDESCRIPTOR_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_UINTDESCRIPTOR_H
 
 #include "Fit/Param/RealLimits.h"
 #include "GUI/Model/Types/Unit.h"
@@ -72,4 +72,4 @@ public:
     function<QString()> path = nullptr; //<! Path describing  this value. Used e.g. for undo/redo
 };
 
-#endif // BORNAGAIN_GUI_MODEL_TYPES_UINTDESCRIPTOR_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_UINTDESCRIPTOR_H
diff --git a/GUI/Model/Types/UIntProperty.cpp b/GUI/Model/Descriptor/UIntProperty.cpp
similarity index 93%
rename from GUI/Model/Types/UIntProperty.cpp
rename to GUI/Model/Descriptor/UIntProperty.cpp
index e4092e8d22e69c5ca35b66c664d64d79c53e442b..f502530655d595260609529f5557247c0c9f47b8 100644
--- a/GUI/Model/Types/UIntProperty.cpp
+++ b/GUI/Model/Descriptor/UIntProperty.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/UIntProperty.cpp
+//! @file      GUI/Model/Descriptor/UIntProperty.cpp
 //! @brief     Implements class UIntProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Types/UIntProperty.h"
+#include "GUI/Model/Descriptor/UIntProperty.h"
 #include <QUuid>
 
 void UIntProperty::init(const QString& label, const QString& tooltip, uint value,
diff --git a/GUI/Model/Types/UIntProperty.h b/GUI/Model/Descriptor/UIntProperty.h
similarity index 90%
rename from GUI/Model/Types/UIntProperty.h
rename to GUI/Model/Descriptor/UIntProperty.h
index f9edd3b41d570105700f4ca96508e19fa08a9716..c0da0a88b48e564f8d52fe73cda40c44f363f747 100644
--- a/GUI/Model/Types/UIntProperty.h
+++ b/GUI/Model/Descriptor/UIntProperty.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/UIntProperty.h
+//! @file      GUI/Model/Descriptor/UIntProperty.h
 //! @brief     Defines class UIntProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_TYPES_UINTPROPERTY_H
-#define BORNAGAIN_GUI_MODEL_TYPES_UINTPROPERTY_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_UINTPROPERTY_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_UINTPROPERTY_H
 
 #include "Fit/Param/RealLimits.h"
-#include "GUI/Model/Types/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
 #include "GUI/Model/Types/Unit.h"
 #include <QString>
 #include <functional>
@@ -66,4 +66,4 @@ public:
     void set##nameUpper(size_t v) { m_##nameLower.set((int)v); }
 
 
-#endif // BORNAGAIN_GUI_MODEL_TYPES_UINTPROPERTY_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_UINTPROPERTY_H
diff --git a/GUI/Model/Types/VectorDescriptor.h b/GUI/Model/Descriptor/VectorDescriptor.h
similarity index 92%
rename from GUI/Model/Types/VectorDescriptor.h
rename to GUI/Model/Descriptor/VectorDescriptor.h
index 6b16c8558dd99b366adff5de080dbe58acef1172..2b874e513a2f6f250eca73ceb6b286c8b4ac2b1c 100644
--- a/GUI/Model/Types/VectorDescriptor.h
+++ b/GUI/Model/Descriptor/VectorDescriptor.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/VectorDescriptor.h
+//! @file      GUI/Model/Descriptor/VectorDescriptor.h
 //! @brief     Defines class VectorDescriptor
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_TYPES_VECTORDESCRIPTOR_H
-#define BORNAGAIN_GUI_MODEL_TYPES_VECTORDESCRIPTOR_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_VECTORDESCRIPTOR_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_VECTORDESCRIPTOR_H
 
 
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include <heinz/Vectors3D.h>
 
 //! Describes properties of a 3D vector, consisting of three double values.
@@ -109,4 +109,4 @@ public:
     function<QString()> uid; //<! unique id describing  this value. Used e.g. for undo/redo
 };
 
-#endif // BORNAGAIN_GUI_MODEL_TYPES_VECTORDESCRIPTOR_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_VECTORDESCRIPTOR_H
diff --git a/GUI/Model/Types/VectorProperty.cpp b/GUI/Model/Descriptor/VectorProperty.cpp
similarity index 89%
rename from GUI/Model/Types/VectorProperty.cpp
rename to GUI/Model/Descriptor/VectorProperty.cpp
index 1222a668dafd349f53a8445a1bb0449a295cbc06..2469d6f8e2cd0fe2664b0257fd93eaa13f6da964 100644
--- a/GUI/Model/Types/VectorProperty.cpp
+++ b/GUI/Model/Descriptor/VectorProperty.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/VectorProperty.cpp
+//! @file      GUI/Model/Descriptor/VectorProperty.cpp
 //! @brief     Implements class VectorProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Types/VectorProperty.h"
+#include "GUI/Model/Descriptor/VectorProperty.h"
 #include <QUuid>
 
 void VectorProperty::init(const QString& label, const QString& tooltip,
diff --git a/GUI/Model/Types/VectorProperty.h b/GUI/Model/Descriptor/VectorProperty.h
similarity index 88%
rename from GUI/Model/Types/VectorProperty.h
rename to GUI/Model/Descriptor/VectorProperty.h
index d42d8f91e39c9938de12b7257f0be20f5cf70685..609945c59419ad11181bb72194a20cdc8b5cf544 100644
--- a/GUI/Model/Types/VectorProperty.h
+++ b/GUI/Model/Descriptor/VectorProperty.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/VectorProperty.h
+//! @file      GUI/Model/Descriptor/VectorProperty.h
 //! @brief     Defines class VectorProperty
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_TYPES_VECTORPROPERTY_H
-#define BORNAGAIN_GUI_MODEL_TYPES_VECTORPROPERTY_H
+#ifndef BORNAGAIN_GUI_MODEL_DESCRIPTOR_VECTORPROPERTY_H
+#define BORNAGAIN_GUI_MODEL_DESCRIPTOR_VECTORPROPERTY_H
 
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include <heinz/Vectors3D.h>
 
 // #baMigration docu
@@ -55,4 +55,4 @@ public:
 ;
 
 
-#endif // BORNAGAIN_GUI_MODEL_TYPES_VECTORPROPERTY_H
+#endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_VECTORPROPERTY_H
diff --git a/GUI/Model/Item/AxesItems.h b/GUI/Model/Item/AxesItems.h
index 7f00bccaa35c58ed8592283bdfb7000aa66f2726..c2dd5699994356e7a47b826d7a363a8dcc1bfd70 100644
--- a/GUI/Model/Item/AxesItems.h
+++ b/GUI/Model/Item/AxesItems.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_AXESITEMS_H
 
 #include "GUI/Model/BaseItem/SessionItem.h"
-#include "GUI/Model/Types/DoubleDescriptor.h" // no forward declaration < used in many children
+#include "GUI/Model/Descriptor/DoubleDescriptor.h" // no forward declaration < used in many children
 #include <memory>
 
 class IAxis;
diff --git a/GUI/Model/Item/BackgroundItems.cpp b/GUI/Model/Item/BackgroundItems.cpp
index 99c3f2a03d372cdbe6cb9d84e3d2ca0c33db9bbb..4969744ca07d5dd6c5deb6e25804378c5f4a3b01 100644
--- a/GUI/Model/Item/BackgroundItems.cpp
+++ b/GUI/Model/Item/BackgroundItems.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Model/Item/BackgroundItems.h"
 #include "Core/Background/ConstantBackground.h"
 #include "Core/Background/PoissonBackground.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
 
 ConstantBackgroundItem::ConstantBackgroundItem()
diff --git a/GUI/Model/Item/BackgroundItems.h b/GUI/Model/Item/BackgroundItems.h
index 0df45095136f0fde7511db7e2b7d328dd194ea8b..9d916cebcb085bff500d2e3db9f6201eb019cdb0 100644
--- a/GUI/Model/Item/BackgroundItems.h
+++ b/GUI/Model/Item/BackgroundItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_BACKGROUNDITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_BACKGROUNDITEMS_H
 
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <memory>
 
 class IBackground;
diff --git a/GUI/Model/Item/BeamDistributionItem.cpp b/GUI/Model/Item/BeamDistributionItem.cpp
index 487a4e423760c76f446ec1302dad94ea692c9ab4..00d466d80decc51473cc2eceaaf85b6a04f0c80f 100644
--- a/GUI/Model/Item/BeamDistributionItem.cpp
+++ b/GUI/Model/Item/BeamDistributionItem.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Model/Item/BeamDistributionItem.h"
 #include "GUI/Model/BaseItem/GroupItem.h"
 #include "GUI/Model/MakeItem/DistributionItemCatalog.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "Param/Distrib/Distributions.h"
 
diff --git a/GUI/Model/Item/BeamDistributionItem.h b/GUI/Model/Item/BeamDistributionItem.h
index c1563a4731b458ab71bbb39c2f5ba2964c42c0bb..7b8793f4dd3060524faa563f9d5ad54a625535fc 100644
--- a/GUI/Model/Item/BeamDistributionItem.h
+++ b/GUI/Model/Item/BeamDistributionItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_BEAMDISTRIBUTIONITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_BEAMDISTRIBUTIONITEM_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Model/Item/DistributionItems.h"
 #include "Param/Distrib/ParameterDistribution.h"
 
diff --git a/GUI/Model/Item/BeamItems.h b/GUI/Model/Item/BeamItems.h
index bd753e0d4de93bd1b28f34c5c3978571a7c27309..3e5411665c53ee3faa646b35c5249801e2c1c7ec 100644
--- a/GUI/Model/Item/BeamItems.h
+++ b/GUI/Model/Item/BeamItems.h
@@ -16,8 +16,8 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_BEAMITEMS_H
 
 #include "GUI/Model/BaseItem/SessionItem.h"
-#include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Model/Item/BeamAngleItems.h"
 #include "GUI/Model/Item/BeamWavelengthItem.h"
 #include "GUI/Model/Item/SpecularBeamInclinationItem.h"
diff --git a/GUI/Model/Item/Data1DViewItem.h b/GUI/Model/Item/Data1DViewItem.h
index 47a0dd0b123c332fab4c6550c8768dea5b1b0c2d..dab2d89566a01cfd1c5a7b0637571439dba14553 100644
--- a/GUI/Model/Item/Data1DViewItem.h
+++ b/GUI/Model/Item/Data1DViewItem.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_DATA1DVIEWITEM_H
 
 #include "GUI/Model/BaseItem/SessionItem.h"
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 
 class AmplitudeAxisItem;
 class BasicAxisItem;
diff --git a/GUI/Model/Item/DataItem.h b/GUI/Model/Item/DataItem.h
index f6f301f864f14e08062db7deacb581cd20c263b3..498ab41b8c11a15fa2fd699a966bcee6cfc75161 100644
--- a/GUI/Model/Item/DataItem.h
+++ b/GUI/Model/Item/DataItem.h
@@ -17,7 +17,7 @@
 
 #include "Device/Data/OutputData.h"
 #include "GUI/Model/BaseItem/SessionItem.h"
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 #include "GUI/Support/IO/SaveLoadInterface.h"
 #include <QDateTime>
 #include <mutex>
diff --git a/GUI/Model/Item/DetectorItems.cpp b/GUI/Model/Item/DetectorItems.cpp
index 3db71df5212e686390f5e95afe0a9fc3289dfbda..6d551777caf1179002dea93bfa4e8a94f21fdb5d 100644
--- a/GUI/Model/Item/DetectorItems.cpp
+++ b/GUI/Model/Item/DetectorItems.cpp
@@ -16,7 +16,7 @@
 #include "Device/Detector/IDetector2D.h"
 #include "Device/Mask/IShape2D.h"
 #include "Device/Resolution/ResolutionFunction2DGaussian.h"
-#include "GUI/Model/Group/GroupInfo.h"
+#include "GUI/Model/Types/GroupInfo.h"
 #include "GUI/Model/Item/MaskItems.h"
 #include "GUI/Model/Item/ResolutionFunctionItems.h"
 #include "GUI/Model/Item/SphericalDetectorItem.h"
diff --git a/GUI/Model/Item/DetectorItems.h b/GUI/Model/Item/DetectorItems.h
index 31a6486b65c9a41e24298049fcce5b50f44aa728..85af531fab9267025867f0eb18a07f76d61f8e83 100644
--- a/GUI/Model/Item/DetectorItems.h
+++ b/GUI/Model/Item/DetectorItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_DETECTORITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_DETECTORITEMS_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Model/Item/MaskItems.h"
 #include "GUI/Model/Item/ResolutionFunctionItems.h"
 #include <heinz/Vectors3D.h>
diff --git a/GUI/Model/Item/DistributionItems.cpp b/GUI/Model/Item/DistributionItems.cpp
index 31fa6017b6b010b7875ac4f1c976935f27cd7533..e7c5b0781c0bd421bf24c340b2809e35889d642b 100644
--- a/GUI/Model/Item/DistributionItems.cpp
+++ b/GUI/Model/Item/DistributionItems.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Item/DistributionItems.h"
-#include "GUI/Model/Group/GroupInfo.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Types/GroupInfo.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "Param/Distrib/Distributions.h"
 #include "Param/Distrib/RangedDistributions.h"
diff --git a/GUI/Model/Item/DistributionItems.h b/GUI/Model/Item/DistributionItems.h
index e0363114de8b469bc9f60684f70b05e812bedafc..ba05ced5cdba5cca15fd07d0a844eff51fc7a311 100644
--- a/GUI/Model/Item/DistributionItems.h
+++ b/GUI/Model/Item/DistributionItems.h
@@ -15,8 +15,8 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_DISTRIBUTIONITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_DISTRIBUTIONITEMS_H
 
-#include "GUI/Model/Types/DoubleProperty.h"
-#include "GUI/Model/Types/UIntProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
+#include "GUI/Model/Descriptor/UIntProperty.h"
 #include <QVector>
 #include <memory>
 
diff --git a/GUI/Model/Item/FootprintItems.h b/GUI/Model/Item/FootprintItems.h
index 2825005cec73447addf142aed69d5d6c32deb6c6..939636d9e4dbd6517da0391bf8ef738549ae2908 100644
--- a/GUI/Model/Item/FootprintItems.h
+++ b/GUI/Model/Item/FootprintItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_FOOTPRINTITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_FOOTPRINTITEMS_H
 
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <memory>
 
 class IFootprintFactor;
diff --git a/GUI/Model/Item/FormFactorItems.h b/GUI/Model/Item/FormFactorItems.h
index 60390c6691932038702f9914ce3e757c3c7e8255..bedfa290bbf4eb479d0dabb72286c63761921b3c 100644
--- a/GUI/Model/Item/FormFactorItems.h
+++ b/GUI/Model/Item/FormFactorItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_FORMFACTORITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_FORMFACTORITEMS_H
 
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include "GUI/Model/XML/Serializer.h"
 #include <QVector>
 #include <memory>
diff --git a/GUI/Model/Item/InstrumentItems.h b/GUI/Model/Item/InstrumentItems.h
index 6896c8f4fb60abb7d05b6ffb460605ea9adf938c..48af3ce53ff23bd5fac7249e73df63b5f7ffb167 100644
--- a/GUI/Model/Item/InstrumentItems.h
+++ b/GUI/Model/Item/InstrumentItems.h
@@ -15,13 +15,13 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_INSTRUMENTITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_INSTRUMENTITEMS_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Model/Item/BackgroundItems.h"
 #include "GUI/Model/Item/BeamItems.h" // inheritance prevents forward declaration
 #include "GUI/Model/Item/DetectorItems.h"
-#include "GUI/Model/Types/AxisProperty.h"
-#include "GUI/Model/Types/VectorProperty.h"
+#include "GUI/Model/Descriptor/AxisProperty.h"
+#include "GUI/Model/Descriptor/VectorProperty.h"
 #include <functional>
 #include <memory>
 
diff --git a/GUI/Model/Item/IntensityDataItem.h b/GUI/Model/Item/IntensityDataItem.h
index d32c2cab671bda8d660ecaac515ebf647a98a068..79d3a64992f14d675b64adbf6fcb085a7ee23e4c 100644
--- a/GUI/Model/Item/IntensityDataItem.h
+++ b/GUI/Model/Item/IntensityDataItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_INTENSITYDATAITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_INTENSITYDATAITEM_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 #include "GUI/Model/Item/DataItem.h"
 
 class BasicAxisItem;
diff --git a/GUI/Model/Item/InterferenceItems.cpp b/GUI/Model/Item/InterferenceItems.cpp
index d438e3c9e3d638e442c90387b51db37c3dcee8ed..2fa1b41a4f15131e817b9c486d606298f6ea8261 100644
--- a/GUI/Model/Item/InterferenceItems.cpp
+++ b/GUI/Model/Item/InterferenceItems.cpp
@@ -18,7 +18,7 @@
 #include "GUI/Model/Item/Lattice2DItems.h"
 #include "GUI/Model/MakeItem/ProfileItemCatalogs.h"
 #include "GUI/Model/MakeItem/Lattice2DItemCatalog.h"
-#include "GUI/Model/Types/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "Sample/Aggregate/Interferences.h"
 
diff --git a/GUI/Model/Item/InterferenceItems.h b/GUI/Model/Item/InterferenceItems.h
index dca0c07bef3bfec971f2a60cb110bde89c58cd05..7e9348bfeddee26957314f495f4ec01620c19fb7 100644
--- a/GUI/Model/Item/InterferenceItems.h
+++ b/GUI/Model/Item/InterferenceItems.h
@@ -15,11 +15,11 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_INTERFERENCEITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_INTERFERENCEITEMS_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Model/Item/ProfileItems.h"
 #include "GUI/Model/Item/Lattice2DItems.h"
-#include "GUI/Model/Types/DoubleProperty.h"
-#include "GUI/Model/Types/UIntProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
+#include "GUI/Model/Descriptor/UIntProperty.h"
 #include <memory>
 
 class IInterference;
diff --git a/GUI/Model/Item/ItemWithParticles.h b/GUI/Model/Item/ItemWithParticles.h
index 2ae8296c381b3adcf0fbbc25d3686127cc983f71..d4e0c456dae608bd048192254ccdfcab3046a1d0 100644
--- a/GUI/Model/Item/ItemWithParticles.h
+++ b/GUI/Model/Item/ItemWithParticles.h
@@ -15,9 +15,9 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHPARTICLES_H
 #define BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHPARTICLES_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Types/DoubleProperty.h"
-#include "GUI/Model/Types/VectorProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
+#include "GUI/Model/Descriptor/VectorProperty.h"
 #include "GUI/Model/Item/RotationItems.h"
 #include <memory>
 
diff --git a/GUI/Model/Item/Lattice2DItems.h b/GUI/Model/Item/Lattice2DItems.h
index 14aa150e6a1b17d4ec2d8216a61622eb1277e80d..4891a1791912721f53482443ef6456125acda361 100644
--- a/GUI/Model/Item/Lattice2DItems.h
+++ b/GUI/Model/Item/Lattice2DItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_LATTICE2DITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_LATTICE2DITEMS_H
 
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <QVector>
 #include <memory>
 
diff --git a/GUI/Model/Item/LayerItem.h b/GUI/Model/Item/LayerItem.h
index 4703a62d99671fc4fbf53aef91f0d777484cbf11..2e9c16ba03505f7c0e130ec66f7a937420ca94de 100644
--- a/GUI/Model/Item/LayerItem.h
+++ b/GUI/Model/Item/LayerItem.h
@@ -15,11 +15,11 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_LAYERITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_LAYERITEM_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 #include "GUI/Model/Item/ItemWithMaterial.h"
 #include "GUI/Model/Item/LayerRoughnessItems.h"
-#include "GUI/Model/Types/DoubleProperty.h"
-#include "GUI/Model/Types/UIntProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
+#include "GUI/Model/Descriptor/UIntProperty.h"
 #include <QColor>
 #include <QUuid>
 #include <QVector>
diff --git a/GUI/Model/Item/LayerRoughnessItems.cpp b/GUI/Model/Item/LayerRoughnessItems.cpp
index 2bb331d9469133f4e273398eba98bf50dc03e9f6..c06b4b9d7ffcc44ea2fd1463fd08a4d64100e890 100644
--- a/GUI/Model/Item/LayerRoughnessItems.cpp
+++ b/GUI/Model/Item/LayerRoughnessItems.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Item/LayerRoughnessItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
 
 namespace {
diff --git a/GUI/Model/Item/LayerRoughnessItems.h b/GUI/Model/Item/LayerRoughnessItems.h
index 462d7ad6b694e05f791e1cc439465ab732b3af0f..e7b443b71358ddf5805f031df118cd1ed4fe2a25 100644
--- a/GUI/Model/Item/LayerRoughnessItems.h
+++ b/GUI/Model/Item/LayerRoughnessItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_LAYERROUGHNESSITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_LAYERROUGHNESSITEMS_H
 
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 
 class QXmlStreamReader;
 class QXmlStreamWriter;
diff --git a/GUI/Model/Item/MaskItems.cpp b/GUI/Model/Item/MaskItems.cpp
index 7c9eb51a75741764b80a4834e1ada5a66974e546..e9e08582981f24acf7149452ca6705f8cbe5d289 100644
--- a/GUI/Model/Item/MaskItems.cpp
+++ b/GUI/Model/Item/MaskItems.cpp
@@ -20,7 +20,7 @@
 #include "Device/Mask/Rectangle.h"
 #include "GUI/Model/MakeItem/MaskItemCatalog.h"
 #include "GUI/Model/Model/SessionModel.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
 
 MaskContainerItem::MaskContainerItem()
diff --git a/GUI/Model/Item/MaskItems.h b/GUI/Model/Item/MaskItems.h
index 8abbb4527eb210ae0d173c36cf9eae55ff2de5f2..76122c9f9b46e6fc47ccf597a80ad764e185e75a 100644
--- a/GUI/Model/Item/MaskItems.h
+++ b/GUI/Model/Item/MaskItems.h
@@ -17,7 +17,7 @@
 
 #include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Model/SessionModel.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 
 class IShape2D;
 class Serializer;
diff --git a/GUI/Model/Item/MaterialItem.cpp b/GUI/Model/Item/MaterialItem.cpp
index 6a43521cfe41ee225ce76a654237d266de9611b3..33938004618af81c4d624672308172d70352294f 100644
--- a/GUI/Model/Item/MaterialItem.cpp
+++ b/GUI/Model/Item/MaterialItem.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/Model/Item/MaterialItem.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "GUI/Support/Data/XML.h"
 #include "GUI/Util/DeserializationException.h"
diff --git a/GUI/Model/Item/MesoCrystalItem.h b/GUI/Model/Item/MesoCrystalItem.h
index ecec098c127f4c3617d341ecc6fcea4b0c25b47f..fc436413940b4a57b32f30ed879c887d8c1d6cb9 100644
--- a/GUI/Model/Item/MesoCrystalItem.h
+++ b/GUI/Model/Item/MesoCrystalItem.h
@@ -15,10 +15,10 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_MESOCRYSTALITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_MESOCRYSTALITEM_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Model/Item/FormFactorItems.h"
 #include "GUI/Model/Item/ItemWithParticles.h"
-#include "GUI/Model/Types/VectorProperty.h"
+#include "GUI/Model/Descriptor/VectorProperty.h"
 #include "Sample/Lattice/Lattice3D.h"
 #include <memory>
 
diff --git a/GUI/Model/Item/MinimizerItem.h b/GUI/Model/Item/MinimizerItem.h
index 835c7ffa2e4fc80d516e706c158264d612db254b..8c4c242854bb14fc455f1817e6681cdb6d759ee8 100644
--- a/GUI/Model/Item/MinimizerItem.h
+++ b/GUI/Model/Item/MinimizerItem.h
@@ -16,9 +16,9 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_MINIMIZERITEM_H
 
 #include "GUI/Model/BaseItem/SessionItem.h"
-#include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
 #include <variant>
 
 class IMinimizer;
diff --git a/GUI/Model/Item/MultiLayerItem.h b/GUI/Model/Item/MultiLayerItem.h
index 8e4d0255757a9a20aed50b14a2c3c7b9186216f4..26d295869138187aeb5077881ae1fe25dcf37ab3 100644
--- a/GUI/Model/Item/MultiLayerItem.h
+++ b/GUI/Model/Item/MultiLayerItem.h
@@ -16,8 +16,8 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_MULTILAYERITEM_H
 
 #include "GUI/Model/Item/MaterialItems.h"
-#include "GUI/Model/Types/DoubleProperty.h"
-#include "GUI/Model/Types/VectorProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
+#include "GUI/Model/Descriptor/VectorProperty.h"
 #include <QString>
 #include <QUuid>
 #include <QVector>
diff --git a/GUI/Model/Item/ParameterTreeItems.cpp b/GUI/Model/Item/ParameterTreeItems.cpp
index bbd707f82eebb80444896087ced50bde3505aaa3..515382ca759e7ad9bc15f592e9ea36029de3a18a 100644
--- a/GUI/Model/Item/ParameterTreeItems.cpp
+++ b/GUI/Model/Item/ParameterTreeItems.cpp
@@ -16,7 +16,7 @@
 #include "GUI/Model/Item/JobItem.h"
 #include "GUI/Model/Item/MaterialItem.h"
 #include "GUI/Model/Item/MaterialItems.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/Support/Data/XML.h"
 #include "GUI/Util/DeserializationException.h"
 #include "GUI/Util/Path.h"
diff --git a/GUI/Model/Item/ParameterTreeItems.h b/GUI/Model/Item/ParameterTreeItems.h
index eef6db6fd66beeb8afe3c91f806532a63b455f27..f17782c438d28187de63eda7c9778e42a60c2f1a 100644
--- a/GUI/Model/Item/ParameterTreeItems.h
+++ b/GUI/Model/Item/ParameterTreeItems.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_PARAMETERTREEITEMS_H
 
 #include "GUI/Model/BaseItem/SessionItem.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include <QObject>
 
 //! ParameterTreeItems is a collection of items necessary to form a tuning tree for
diff --git a/GUI/Model/Item/ParticleCoreShellItem.cpp b/GUI/Model/Item/ParticleCoreShellItem.cpp
index f53d8c9b314b22171f3ee80470b8150b1e451312..b5ba94a7b4c95193b865f1188e1383a8e7b945fb 100644
--- a/GUI/Model/Item/ParticleCoreShellItem.cpp
+++ b/GUI/Model/Item/ParticleCoreShellItem.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/Item/MaterialItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/Support/Type/VariantUtil.h"
 #include "GUI/Util/Error.h"
 #include "Sample/Particle/Particle.h"
diff --git a/GUI/Model/Item/ParticleItem.h b/GUI/Model/Item/ParticleItem.h
index ad73c8d1fa086d55589e9a603ff2317d37255c52..61cb4cfb81a0b26377c77a15c2a69fbb8a0dbbad 100644
--- a/GUI/Model/Item/ParticleItem.h
+++ b/GUI/Model/Item/ParticleItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_PARTICLEITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_PARTICLEITEM_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Model/Item/FormFactorItems.h"
 #include "GUI/Model/Item/ItemWithMaterial.h"
 #include "GUI/Model/Item/ItemWithParticles.h"
diff --git a/GUI/Model/Item/ParticleLayoutItem.h b/GUI/Model/Item/ParticleLayoutItem.h
index e90afe8d98205d61efb99f0857de17e2688061a6..5396eaa6e41822012f5073aa6795bcf740d9f970 100644
--- a/GUI/Model/Item/ParticleLayoutItem.h
+++ b/GUI/Model/Item/ParticleLayoutItem.h
@@ -15,9 +15,9 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_PARTICLELAYOUTITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_PARTICLELAYOUTITEM_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Model/Item/InterferenceItems.h"
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <QUuid>
 #include <memory>
 
diff --git a/GUI/Model/Item/ProfileItems.h b/GUI/Model/Item/ProfileItems.h
index b6e048f1cb68cbfd7328fd6829b09c977a9c9070..5238be7c2b0114fcb1f1b79a81c1a0b20480fa20 100644
--- a/GUI/Model/Item/ProfileItems.h
+++ b/GUI/Model/Item/ProfileItems.h
@@ -15,8 +15,8 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_PROFILEITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_PROFILEITEMS_H
 
-#include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include "Sample/Correlations/Profiles1D.h"
 #include "Sample/Correlations/Profiles2D.h"
 #include <memory>
diff --git a/GUI/Model/Item/RectangularDetectorItem.h b/GUI/Model/Item/RectangularDetectorItem.h
index 912a0b71867a352791baa9d7b1bd96b1d38f0cb5..5e7244add78a401f25e7389c90eb71859e1a234e 100644
--- a/GUI/Model/Item/RectangularDetectorItem.h
+++ b/GUI/Model/Item/RectangularDetectorItem.h
@@ -17,9 +17,9 @@
 
 #include "Device/Detector/RectangularDetector.h"
 #include "GUI/Model/Item/DetectorItems.h"
-#include "GUI/Model/Types/AxisProperty.h"
-#include "GUI/Model/Types/DoubleProperty.h"
-#include "GUI/Model/Types/VectorProperty.h"
+#include "GUI/Model/Descriptor/AxisProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
+#include "GUI/Model/Descriptor/VectorProperty.h"
 
 class RectangularDetectorItem : public DetectorItem {
 private:
diff --git a/GUI/Model/Item/ResolutionFunctionItems.h b/GUI/Model/Item/ResolutionFunctionItems.h
index 1d8bd6b6d9e3358b29df591768bd501d2b98ba74..687fe802b0a9a124844b9997fecc6546259f7ec0 100644
--- a/GUI/Model/Item/ResolutionFunctionItems.h
+++ b/GUI/Model/Item/ResolutionFunctionItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONFUNCTIONITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONFUNCTIONITEMS_H
 
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <memory>
 #include <variant>
 
diff --git a/GUI/Model/Item/RotationItems.h b/GUI/Model/Item/RotationItems.h
index 91e453b74defdecc6bc51cc7f99651e90120bf28..036e9bdca96aa19eed047bb2a2f42a52b498d670 100644
--- a/GUI/Model/Item/RotationItems.h
+++ b/GUI/Model/Item/RotationItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_ROTATIONITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_ROTATIONITEMS_H
 
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <memory>
 
 class IRotation;
diff --git a/GUI/Model/Item/SphericalDetectorItem.h b/GUI/Model/Item/SphericalDetectorItem.h
index d05d6f5609f5434b21477c755c663a0b9547a181..f500f4211d761ddfa2a0c193d943093adf43becf 100644
--- a/GUI/Model/Item/SphericalDetectorItem.h
+++ b/GUI/Model/Item/SphericalDetectorItem.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_SPHERICALDETECTORITEM_H
 
 #include "GUI/Model/Item/DetectorItems.h"
-#include "GUI/Model/Types/AxisProperty.h"
+#include "GUI/Model/Descriptor/AxisProperty.h"
 
 class SphericalDetectorItem : public DetectorItem {
 public:
diff --git a/GUI/Model/Model/SessionModel.h b/GUI/Model/Model/SessionModel.h
index 94110d21ac7d896789386e46a4ba5dc92ffeeb6f..6319cab1ee4c9ca5a11da65742e04e99ed6cc615 100644
--- a/GUI/Model/Model/SessionModel.h
+++ b/GUI/Model/Model/SessionModel.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_MODEL_SESSIONMODEL_H
 #define BORNAGAIN_GUI_MODEL_MODEL_SESSIONMODEL_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
 #include <QStringList>
 #include <QVariant>
 #include <QXmlStreamWriter> // used in every including file ?
diff --git a/GUI/Model/To/ToDomain.cpp b/GUI/Model/To/ToDomain.cpp
index 29c08dbad62d80442ac90347a0a254e76842874a..2f3b6667228364ca2bc874201b619a4dfe4de7ca 100644
--- a/GUI/Model/To/ToDomain.cpp
+++ b/GUI/Model/To/ToDomain.cpp
@@ -23,8 +23,8 @@
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/Item/ParticleLayoutItem.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
 #include "GUI/Util/Error.h"
 #include "Sample/Aggregate/IInterference.h"
 #include "Sample/Aggregate/ParticleLayout.h"
diff --git a/GUI/Model/Group/GroupInfo.cpp b/GUI/Model/Types/GroupInfo.cpp
similarity index 95%
rename from GUI/Model/Group/GroupInfo.cpp
rename to GUI/Model/Types/GroupInfo.cpp
index c575b72bf7789c10ba3858d840c57a9d0366330e..24d709d7d294bd96915c8d6764facc07b3b3d2b6 100644
--- a/GUI/Model/Group/GroupInfo.cpp
+++ b/GUI/Model/Types/GroupInfo.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Group/GroupInfo.cpp
+//! @file      GUI/Model/Types/GroupInfo.cpp
 //! @brief     Defines class GroupInfo
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Group/GroupInfo.h"
+#include "GUI/Model/Types/GroupInfo.h"
 #include "Base/Util/Assert.h"
 
 GroupInfo::GroupInfo(bool is_sorted)
diff --git a/GUI/Model/Group/GroupInfo.h b/GUI/Model/Types/GroupInfo.h
similarity index 89%
rename from GUI/Model/Group/GroupInfo.h
rename to GUI/Model/Types/GroupInfo.h
index da793056b7d7c196a30a1b5a1b12c158d0a82d8d..f57769864f6017b76347a71699fec3b6490e158e 100644
--- a/GUI/Model/Group/GroupInfo.h
+++ b/GUI/Model/Types/GroupInfo.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Group/GroupInfo.h
+//! @file      GUI/Model/Types/GroupInfo.h
 //! @brief     Defines class GroupInfo
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_GROUP_GROUPINFO_H
-#define BORNAGAIN_GUI_MODEL_GROUP_GROUPINFO_H
+#ifndef BORNAGAIN_GUI_MODEL_TYPES_GROUPINFO_H
+#define BORNAGAIN_GUI_MODEL_TYPES_GROUPINFO_H
 
 #include <QString>
 #include <QStringList>
@@ -52,4 +52,4 @@ private:
     QVector<TypeAndLabel> m_info;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_GROUP_GROUPINFO_H
+#endif // BORNAGAIN_GUI_MODEL_TYPES_GROUPINFO_H
diff --git a/GUI/Model/XML/Serializer.cpp b/GUI/Model/XML/Serializer.cpp
index eec6730567118260c113fdf94bfb622ae661513d..f02ea25a8fe2f95e7131b6369f0648e62543ca2f 100644
--- a/GUI/Model/XML/Serializer.cpp
+++ b/GUI/Model/XML/Serializer.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/XML/Serializer.h"
-#include "GUI/Model/Types/AxisProperty.h"
-#include "GUI/Model/Types/DoubleProperty.h"
-#include "GUI/Model/Types/UIntProperty.h"
-#include "GUI/Model/Types/VectorProperty.h"
+#include "GUI/Model/Descriptor/AxisProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
+#include "GUI/Model/Descriptor/UIntProperty.h"
+#include "GUI/Model/Descriptor/VectorProperty.h"
 #include "GUI/Support/Data/XML.h"
 #include "GUI/Util/DeserializationException.h"
 #include <QColor>
diff --git a/GUI/Model/XML/Serializer.h b/GUI/Model/XML/Serializer.h
index 33b444971f6a59f72ee26ac28cd52f14aaf45f83..e30b7bb615c558cb01421753a2a43296c20e72dd 100644
--- a/GUI/Model/XML/Serializer.h
+++ b/GUI/Model/XML/Serializer.h
@@ -15,8 +15,8 @@
 #ifndef BORNAGAIN_GUI_MODEL_XML_SERIALIZER_H
 #define BORNAGAIN_GUI_MODEL_XML_SERIALIZER_H
 
-#include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Types/DoubleProperty.h"
+#include "GUI/Model/Descriptor/SelectionProperty.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <QXmlStreamWriter> // used in every including file
 #include <functional>
 #include <heinz/Vectors3D.h>
diff --git a/GUI/View/Edit/DoubleLineEdit.h b/GUI/View/Edit/DoubleLineEdit.h
index 24135b954ab29ae315d739466cfebd6163b57447..52180830cd3c4d6d23faac75420eff3826e77bbb 100644
--- a/GUI/View/Edit/DoubleLineEdit.h
+++ b/GUI/View/Edit/DoubleLineEdit.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_EDIT_DOUBLELINEEDIT_H
 #define BORNAGAIN_GUI_VIEW_EDIT_DOUBLELINEEDIT_H
 
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include <QLineEdit>
 
 class QDoubleValidator;
diff --git a/GUI/View/Edit/DoubleSpinBox.h b/GUI/View/Edit/DoubleSpinBox.h
index 2eb15a12ef2b4917476586c18765d0877df3a9ee..f1069b4ecba45d4f93aaf931533fddb817f2801d 100644
--- a/GUI/View/Edit/DoubleSpinBox.h
+++ b/GUI/View/Edit/DoubleSpinBox.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_EDIT_DOUBLESPINBOX_H
 #define BORNAGAIN_GUI_VIEW_EDIT_DOUBLESPINBOX_H
 
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include <QDoubleSpinBox>
 
 //! SpinBox for DoubleDescriptors, supporting units.
diff --git a/GUI/View/Fit/MinimizerSettingsWidget.h b/GUI/View/Fit/MinimizerSettingsWidget.h
index 392645dfa8503ea6f34751b2c23338fc724262bf..58e81e7f013d7a8a8f1398f4847e30fd207c4492 100644
--- a/GUI/View/Fit/MinimizerSettingsWidget.h
+++ b/GUI/View/Fit/MinimizerSettingsWidget.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_FIT_MINIMIZERSETTINGSWIDGET_H
 #define BORNAGAIN_GUI_VIEW_FIT_MINIMIZERSETTINGSWIDGET_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 #include <QList>
 #include <QWidget>
 #include <functional>
diff --git a/GUI/View/FromDomain/GUISampleBuilder.cpp b/GUI/View/FromDomain/GUISampleBuilder.cpp
index b08e5db128349ef012ed10d8a477664ac9f8b872..c86ce5908327a05645952470781d56e735b9e440 100644
--- a/GUI/View/FromDomain/GUISampleBuilder.cpp
+++ b/GUI/View/FromDomain/GUISampleBuilder.cpp
@@ -22,7 +22,7 @@
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/Item/ParticleLayoutItem.h"
 #include "GUI/Model/Item/MaterialItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/FromDomain/FromDomain.h"
 #include "Sample/Aggregate/ParticleLayout.h"
 #include "Sample/Multilayer/Layer.h"
diff --git a/GUI/View/Instrument/AxisPropertyEditor.cpp b/GUI/View/Instrument/AxisPropertyEditor.cpp
index b5a4beb578704f9865e631389997d9d9f6a99c8a..f889fe0be5890c06ec9d3cc65773ed54cb8b104d 100644
--- a/GUI/View/Instrument/AxisPropertyEditor.cpp
+++ b/GUI/View/Instrument/AxisPropertyEditor.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/Instrument/AxisPropertyEditor.h"
 #include "GUI/Model/Item/AxesItems.h"
-#include "GUI/Model/Types/AxisProperty.h"
+#include "GUI/Model/Descriptor/AxisProperty.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/Tool/WidgetUtils.h"
 #include <QFormLayout>
diff --git a/GUI/View/Instrument/DistributionForms.cpp b/GUI/View/Instrument/DistributionForms.cpp
index 452582672bed238360146cd8b210e188e8a0cccf..8911bd41fb500d9187a1f88c472b8c549269964f 100644
--- a/GUI/View/Instrument/DistributionForms.cpp
+++ b/GUI/View/Instrument/DistributionForms.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/Instrument/DistributionForms.h"
 #include "GUI/Model/Item/DistributionItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include "GUI/View/PropertyEditor/ScientificSpinBox.h"
 #include <QDoubleSpinBox>
diff --git a/GUI/View/Instrument/DistributionPlot.cpp b/GUI/View/Instrument/DistributionPlot.cpp
index 164c11f6f323dfface75f40ead665f3163be21bf..84b492993164576ce5c27b500288b897dc328c56 100644
--- a/GUI/View/Instrument/DistributionPlot.cpp
+++ b/GUI/View/Instrument/DistributionPlot.cpp
@@ -15,7 +15,7 @@
 #include "GUI/View/Instrument/DistributionPlot.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Item/DistributionItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/Info/CautionSign.h"
 #include "Param/Distrib/Distributions.h"
 #include <QLabel>
diff --git a/GUI/View/Instrument/GISASBeamEditor.cpp b/GUI/View/Instrument/GISASBeamEditor.cpp
index 88632f3d80ba1ff5a363e2fcaeb7d2623e1c3288..3e9de91be948f98cfef1474f1563178073c4a818 100644
--- a/GUI/View/Instrument/GISASBeamEditor.cpp
+++ b/GUI/View/Instrument/GISASBeamEditor.cpp
@@ -16,7 +16,7 @@
 #include "GUI/Model/Item/BeamAngleItems.h"
 #include "GUI/Model/Item/BeamItems.h"
 #include "GUI/Model/Item/BeamWavelengthItem.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include <QDoubleValidator>
 #include <QFormLayout>
diff --git a/GUI/View/Instrument/InstrumentEditController.cpp b/GUI/View/Instrument/InstrumentEditController.cpp
index 78b5ea047df7c8680a4c5dab241988b949c9695b..2c3a4ae4eefde267685b01789c7a074e7373b1a1 100644
--- a/GUI/View/Instrument/InstrumentEditController.cpp
+++ b/GUI/View/Instrument/InstrumentEditController.cpp
@@ -16,7 +16,7 @@
 #include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/Model/Item/PointwiseAxisItem.h"
 #include "GUI/Model/Project/InstrumentsEditController.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 
 InstrumentEditController::InstrumentEditController(InstrumentsEditController* ec,
                                                    InstrumentItem* instrument)
diff --git a/GUI/View/Instrument/OffSpecularBeamEditor.cpp b/GUI/View/Instrument/OffSpecularBeamEditor.cpp
index 07e851e791aaf3cd5495141f080db7ce44668852..e65128e16dc2cc30c62a06818343b4895ca1f8d8 100644
--- a/GUI/View/Instrument/OffSpecularBeamEditor.cpp
+++ b/GUI/View/Instrument/OffSpecularBeamEditor.cpp
@@ -16,7 +16,7 @@
 #include "GUI/Model/Item/BeamAngleItems.h"
 #include "GUI/Model/Item/BeamWavelengthItem.h"
 #include "GUI/Model/Item/InstrumentItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/Instrument/AxisPropertyEditor.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include <QDoubleValidator>
diff --git a/GUI/View/Instrument/SpecularBeamEditor.cpp b/GUI/View/Instrument/SpecularBeamEditor.cpp
index c73a2e6e1d4703b0f35c8a193a68a5dbf8b3738c..be48c9861ec8ae703a2f08c867f846328774e87e 100644
--- a/GUI/View/Instrument/SpecularBeamEditor.cpp
+++ b/GUI/View/Instrument/SpecularBeamEditor.cpp
@@ -15,7 +15,7 @@
 #include "GUI/View/Instrument/SpecularBeamEditor.h"
 #include "GUI/Model/Item/BeamItems.h"
 #include "GUI/Model/Item/BeamWavelengthItem.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include "GUI/View/Instrument/FootprintCorrectionEditor.h"
 #include "GUI/View/Instrument/InclinationAnglesEditor.h"
diff --git a/GUI/View/Instrument/VectorEditor.h b/GUI/View/Instrument/VectorEditor.h
index 84aec906cc505d580e4f1a3c32c2ace2e44e206b..e94307a5defe86dd6045b6a476d15ddc521a2419 100644
--- a/GUI/View/Instrument/VectorEditor.h
+++ b/GUI/View/Instrument/VectorEditor.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_INSTRUMENT_VECTOREDITOR_H
 #define BORNAGAIN_GUI_VIEW_INSTRUMENT_VECTOREDITOR_H
 
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include <QGroupBox>
 
 class QDoubleSpinBox;
diff --git a/GUI/View/MaterialEditor/MaterialEditorDialog.cpp b/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
index 545c6f06c9207f36f520511382669fa5f1cbcc65..b87c3138587f7fbfcd61f14471c565eb8c16c595 100644
--- a/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
+++ b/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
@@ -18,7 +18,7 @@
 #include "GUI/Model/Item/MaterialItem.h"
 #include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Model/Item/MaterialItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/MaterialEditor/MaterialEditorModel.h"
 #include "GUI/View/Tool/EditUtil.h"
 #include "GUI/View/Tool/StyleUtils.h"
diff --git a/GUI/View/MaterialEditor/MaterialEditorModel.cpp b/GUI/View/MaterialEditor/MaterialEditorModel.cpp
index 04350e009c8905757bc63a071353ed19108e18d7..5def29f031d48cec02c574d1bb91af626309b3f1 100644
--- a/GUI/View/MaterialEditor/MaterialEditorModel.cpp
+++ b/GUI/View/MaterialEditor/MaterialEditorModel.cpp
@@ -15,7 +15,7 @@
 #include "GUI/View/MaterialEditor/MaterialEditorModel.h"
 #include "GUI/Model/Item/MaterialItem.h"
 #include "GUI/Model/Item/MaterialItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include <QApplication>
 #include <QFontMetrics>
 #include <QPixmap>
diff --git a/GUI/View/PlotUtil/IntensityDataPropertyWidget.h b/GUI/View/PlotUtil/IntensityDataPropertyWidget.h
index e602276b3b9fcb42c1f1db3f268dd005a9ad74a0..e8b6f59a9be2b8f2f1adf47080be29d158a8eee9 100644
--- a/GUI/View/PlotUtil/IntensityDataPropertyWidget.h
+++ b/GUI/View/PlotUtil/IntensityDataPropertyWidget.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_PLOTUTIL_INTENSITYDATAPROPERTYWIDGET_H
 #define BORNAGAIN_GUI_VIEW_PLOTUTIL_INTENSITYDATAPROPERTYWIDGET_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 #include <QList>
 #include <QString>
 #include <QWidget>
diff --git a/GUI/View/PropertyEditor/SpecularDataPropertyWidget.h b/GUI/View/PropertyEditor/SpecularDataPropertyWidget.h
index 380f3cb1943b11f1757150e33ec5296da02e0fc1..f3979a0ed0280f0b00209a40ff7aec9d6ff0bbb8 100644
--- a/GUI/View/PropertyEditor/SpecularDataPropertyWidget.h
+++ b/GUI/View/PropertyEditor/SpecularDataPropertyWidget.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_PROPERTYEDITOR_SPECULARDATAPROPERTYWIDGET_H
 #define BORNAGAIN_GUI_VIEW_PROPERTYEDITOR_SPECULARDATAPROPERTYWIDGET_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 #include <QList>
 #include <QString>
 #include <QWidget>
diff --git a/GUI/View/Realspace/RealSpaceBuilder.cpp b/GUI/View/Realspace/RealSpaceBuilder.cpp
index f6e299d5458fd60d18868ca354bc9856f79838a7..9158be059ee8e49d67729c5799bb2f57bede71e1 100644
--- a/GUI/View/Realspace/RealSpaceBuilder.cpp
+++ b/GUI/View/Realspace/RealSpaceBuilder.cpp
@@ -21,7 +21,7 @@
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/Item/ParticleLayoutItem.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/Realspace/IPositionBuilder.h"
 #include "GUI/View/Realspace/Particle3DContainer.h"
 #include "GUI/View/Realspace/RealSpaceBuilderUtils.h"
diff --git a/GUI/View/Realspace/RealSpaceBuilderUtils.cpp b/GUI/View/Realspace/RealSpaceBuilderUtils.cpp
index aed949c54f24d35607ae4015c08c058f54c8ad9d..f25b9f21dab1c5af7644fa904b23423f58e1876c 100644
--- a/GUI/View/Realspace/RealSpaceBuilderUtils.cpp
+++ b/GUI/View/Realspace/RealSpaceBuilderUtils.cpp
@@ -20,7 +20,7 @@
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/Item/ParticleLayoutItem.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/Realspace/Particle3DContainer.h"
 #include "GUI/View/Realspace/RealSpaceBuilder.h"
 #include "GUI/View/Realspace/RealSpaceCanvas.h"
diff --git a/GUI/View/SampleDesigner/FormLayouter.cpp b/GUI/View/SampleDesigner/FormLayouter.cpp
index edbadf91b7c8aa5c69c7ea81110a2d597fec961f..d8111e5050b8dc40605bc39ee60cafd68c58d9e9 100644
--- a/GUI/View/SampleDesigner/FormLayouter.cpp
+++ b/GUI/View/SampleDesigner/FormLayouter.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/FormLayouter.h"
-#include "GUI/Model/Types/UIntDescriptor.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/SampleDesigner/LayerEditorUtils.h"
 #include "GUI/View/SampleDesigner/SampleEditorController.h"
diff --git a/GUI/View/SampleDesigner/FormLayouter.h b/GUI/View/SampleDesigner/FormLayouter.h
index 23475231ed58043044881f7dda7c18c11807606d..a0a2a27423fa9fcb01374782d8d70871be1aa3df 100644
--- a/GUI/View/SampleDesigner/FormLayouter.h
+++ b/GUI/View/SampleDesigner/FormLayouter.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_FORMLAYOUTER_H
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_FORMLAYOUTER_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 #include "GUI/View/SampleDesigner/SelectionContainerForm.h"
 #include <QFormLayout>
 
diff --git a/GUI/View/SampleDesigner/InterferenceForm.cpp b/GUI/View/SampleDesigner/InterferenceForm.cpp
index 09bf9fe670cfbea2895c8ef9677aa3054d80c556..deb41fb0811e1c6b3ae7630b9d6ee796b3eca32d 100644
--- a/GUI/View/SampleDesigner/InterferenceForm.cpp
+++ b/GUI/View/SampleDesigner/InterferenceForm.cpp
@@ -16,7 +16,7 @@
 #include "GUI/Model/Item/InterferenceItems.h"
 #include "GUI/Model/Item/Lattice2DItems.h"
 #include "GUI/Model/Item/ParticleLayoutItem.h"
-#include "GUI/Model/Types/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
 #include "GUI/View/PropertyEditor/CustomEventFilters.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
 #include "GUI/View/SampleDesigner/LatticeTypeSelectionForm.h"
diff --git a/GUI/View/SampleDesigner/LayerEditorUtils.cpp b/GUI/View/SampleDesigner/LayerEditorUtils.cpp
index 5414a019fc6f3ed2a28d8cd78ee7f134f9c9939a..0117c64f26334c44f3f9360d6a246cf288743671 100644
--- a/GUI/View/SampleDesigner/LayerEditorUtils.cpp
+++ b/GUI/View/SampleDesigner/LayerEditorUtils.cpp
@@ -20,7 +20,7 @@
 #include "GUI/Model/Item/ParticleCompositionItem.h"
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
 #include "GUI/View/SampleDesigner/MesoCrystalForm.h"
diff --git a/GUI/View/SampleDesigner/LayerEditorUtils.h b/GUI/View/SampleDesigner/LayerEditorUtils.h
index 756cc53122a8ee58ad9057d1c909b53925723687..78ebbb850f6568161771257efdd19df54263426e 100644
--- a/GUI/View/SampleDesigner/LayerEditorUtils.h
+++ b/GUI/View/SampleDesigner/LayerEditorUtils.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LAYEREDITORUTILS_H
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LAYEREDITORUTILS_H
 
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 
 #include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
diff --git a/GUI/View/SampleDesigner/MaterialInplaceForm.cpp b/GUI/View/SampleDesigner/MaterialInplaceForm.cpp
index a50c8b467352c52916684629a1bdbff452dc7a81..759bd056228a3eb9a43dee83d62ac1e61268e0d2 100644
--- a/GUI/View/SampleDesigner/MaterialInplaceForm.cpp
+++ b/GUI/View/SampleDesigner/MaterialInplaceForm.cpp
@@ -19,8 +19,8 @@
 #include "GUI/Model/Item/MaterialItem.h"
 #include "GUI/Model/Item/MaterialItems.h"
 #include "GUI/Model/Item/MultiLayerItem.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/View/Edit/DoubleLineEdit.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/Global/Globals.h"
diff --git a/GUI/View/SampleDesigner/MesoCrystalForm.cpp b/GUI/View/SampleDesigner/MesoCrystalForm.cpp
index 3424c4c1ab38e6546045b54f51936db2e84f76bf..12d7bae8273b7abba98908dac560ef3354ea5d5d 100644
--- a/GUI/View/SampleDesigner/MesoCrystalForm.cpp
+++ b/GUI/View/SampleDesigner/MesoCrystalForm.cpp
@@ -16,7 +16,7 @@
 #include "GUI/Model/Item/FormFactorItems.h"
 #include "GUI/Model/Item/MesoCrystalItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
 #include "GUI/View/Tool/GroupBoxCollapser.h"
diff --git a/GUI/View/SampleDesigner/ParticleCompositionForm.cpp b/GUI/View/SampleDesigner/ParticleCompositionForm.cpp
index a9d135a24521f9a6e86bf8dd5da542d4a597932a..8893548c69aba9e7bc7fdde282cbe4030b7d488d 100644
--- a/GUI/View/SampleDesigner/ParticleCompositionForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleCompositionForm.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/SampleDesigner/ParticleCompositionForm.h"
 #include "GUI/Model/Item/ParticleCompositionItem.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
 #include "GUI/View/SampleDesigner/LayerEditorUtils.h"
diff --git a/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp b/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
index aac2456127854a712b6e7e9224e93436bf6498b6..ad067e2812cd9a9d20b01a69073d6062a9cdbeb4 100644
--- a/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
@@ -17,7 +17,7 @@
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
 #include "GUI/View/SampleDesigner/SampleEditorController.h"
diff --git a/GUI/View/SampleDesigner/ParticleForm.cpp b/GUI/View/SampleDesigner/ParticleForm.cpp
index dd4989cf1b775025683c45eba6e74cea4e04972b..ba7b784d8b169350432fbccbde19f383a4060a42 100644
--- a/GUI/View/SampleDesigner/ParticleForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleForm.cpp
@@ -16,7 +16,7 @@
 #include "GUI/Model/Item/FormFactorItems.h"
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
-#include "GUI/Model/Types/VectorDescriptor.h"
+#include "GUI/Model/Descriptor/VectorDescriptor.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
 #include "GUI/View/SampleDesigner/MaterialInplaceForm.h"
diff --git a/GUI/View/SampleDesigner/SampleEditorController.cpp b/GUI/View/SampleDesigner/SampleEditorController.cpp
index 1da85754db8ee406a94940d7b969366a01382e6d..f03363d428952663860386fe1500594e7d92c533 100644
--- a/GUI/View/SampleDesigner/SampleEditorController.cpp
+++ b/GUI/View/SampleDesigner/SampleEditorController.cpp
@@ -24,7 +24,7 @@
 #include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "GUI/Model/Item/MaterialItems.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Types/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/SampleDesigner/InterferenceForm.h"
 #include "GUI/View/SampleDesigner/LatticeTypeSelectionForm.h"
diff --git a/GUI/View/Tool/WidgetUtils.cpp b/GUI/View/Tool/WidgetUtils.cpp
index d73f81975cf7f33b774dc819a243ee67961ce6b9..1170d22b7fd25eb302f614481f1904449a93c9be 100644
--- a/GUI/View/Tool/WidgetUtils.cpp
+++ b/GUI/View/Tool/WidgetUtils.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Tool/WidgetUtils.h"
-#include "GUI/Model/Types/UIntDescriptor.h"
+#include "GUI/Model/Descriptor/UIntDescriptor.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include <QFormLayout>
 #include <QSpinBox>
diff --git a/GUI/View/Tool/WidgetUtils.h b/GUI/View/Tool/WidgetUtils.h
index 01bb0cc5f5ddebc095b3a5fd6e72b64d0e946246..a8d40cc932ca827c843450934bcde525bde4a049 100644
--- a/GUI/View/Tool/WidgetUtils.h
+++ b/GUI/View/Tool/WidgetUtils.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_TOOL_WIDGETUTILS_H
 #define BORNAGAIN_GUI_VIEW_TOOL_WIDGETUTILS_H
 
-#include "GUI/Model/Group/SelectionDescriptor.h"
+#include "GUI/Model/Descriptor/SelectionDescriptor.h"
 #include "GUI/Model/Types/Unit.h"
 #include "GUI/View/PropertyEditor/CustomEventFilters.h"
 #include <QComboBox>
diff --git a/Tests/Unit/GUI/TestLayerRoughnessItems.cpp b/Tests/Unit/GUI/TestLayerRoughnessItems.cpp
index 19320aa34b65445a9de57aaa8884d05c36e0ba6b..49b1466fb44a8b5a8ca4624963d276630e2c656c 100644
--- a/Tests/Unit/GUI/TestLayerRoughnessItems.cpp
+++ b/Tests/Unit/GUI/TestLayerRoughnessItems.cpp
@@ -1,6 +1,6 @@
 #include "GUI/Model/Item/LayerRoughnessItems.h"
 #include "GUI/Model/To/ToDomain.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "GUI/View/FromDomain/FromDomain.h"
 #include "Sample/Interface/LayerRoughness.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/GUI/TestMapperForItem.cpp b/Tests/Unit/GUI/TestMapperForItem.cpp
index c6f763243458235e2776293446747de39291a214..546227f6ea9c6428c41fe6db23e5129d845d3c8b 100644
--- a/Tests/Unit/GUI/TestMapperForItem.cpp
+++ b/Tests/Unit/GUI/TestMapperForItem.cpp
@@ -1,7 +1,7 @@
 #include "GUI/Model/Item/MaskItems.h"
 #include "GUI/Model/Item/ProjectionItems.h"
 #include "GUI/Model/Model/JobModel.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <memory>
 
diff --git a/Tests/Unit/GUI/TestMaterialItems.cpp b/Tests/Unit/GUI/TestMaterialItems.cpp
index 0dfb5eb8ccd548491745b5e2a8a72c4e7dfb76ca..bb20f0ee968e5c56cd6e17b80694d705ea931fc4 100644
--- a/Tests/Unit/GUI/TestMaterialItems.cpp
+++ b/Tests/Unit/GUI/TestMaterialItems.cpp
@@ -1,7 +1,7 @@
 #include "GUI/Model/Item/ItemUtils.h"
 #include "GUI/Model/Item/MaterialItem.h"
 #include "GUI/Model/Item/MaterialItems.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Descriptor/DoubleDescriptor.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <memory>
 
diff --git a/auto/Wrap/libBornAgainBase_wrap.cpp b/auto/Wrap/libBornAgainBase_wrap.cpp
index f7a6f60cd69642e47a87bf49baf7018c95831d5b..f82b50c7886c9e066c911cda315f52a978c7fbe2 100644
--- a/auto/Wrap/libBornAgainBase_wrap.cpp
+++ b/auto/Wrap/libBornAgainBase_wrap.cpp
@@ -5253,7 +5253,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/local/share/swig/4.0.2/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig4.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index e2c1656ac512f918efa9c872b4fa2569509b4597..dd8dcc15bb9e9cf0fb0601b7c003317a8235f859 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -5292,7 +5292,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/local/share/swig/4.0.2/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig4.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
diff --git a/auto/Wrap/libBornAgainDevice_wrap.cpp b/auto/Wrap/libBornAgainDevice_wrap.cpp
index 5602a9eba273c03e0acc7ea67a3432afdabb20d8..edf0e765ddaffba2a80a42999fee568af90273e5 100644
--- a/auto/Wrap/libBornAgainDevice_wrap.cpp
+++ b/auto/Wrap/libBornAgainDevice_wrap.cpp
@@ -5300,7 +5300,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/local/share/swig/4.0.2/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig4.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
diff --git a/auto/Wrap/libBornAgainFit_wrap.cpp b/auto/Wrap/libBornAgainFit_wrap.cpp
index 556a56ac6f79995a094954176c6fe3b5099c24ea..9e3c5884128bbbf7d639dda9b5c06da723aa53a0 100644
--- a/auto/Wrap/libBornAgainFit_wrap.cpp
+++ b/auto/Wrap/libBornAgainFit_wrap.cpp
@@ -5251,7 +5251,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/local/share/swig/4.0.2/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig4.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
diff --git a/auto/Wrap/libBornAgainParam_wrap.cpp b/auto/Wrap/libBornAgainParam_wrap.cpp
index 254a971528df0483a7e947aedbf377ec0b6375f5..0782d42de7d3294b516bacfd2e1076b52dc90ce1 100644
--- a/auto/Wrap/libBornAgainParam_wrap.cpp
+++ b/auto/Wrap/libBornAgainParam_wrap.cpp
@@ -5259,7 +5259,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/local/share/swig/4.0.2/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig4.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
diff --git a/auto/Wrap/libBornAgainResample_wrap.cpp b/auto/Wrap/libBornAgainResample_wrap.cpp
index fde31f0d9ca5dadf167b3caa564ba914c8bab275..ab1c8a253d8933628e3d190df354740eea7577f8 100644
--- a/auto/Wrap/libBornAgainResample_wrap.cpp
+++ b/auto/Wrap/libBornAgainResample_wrap.cpp
@@ -5243,7 +5243,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/local/share/swig/4.0.2/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig4.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp
index b5be5b091984c3c47009eb9a6556e4dce7f6e4ab..d70e3daac812cbd68f9f179cb293c3c9fad79c39 100644
--- a/auto/Wrap/libBornAgainSample_wrap.cpp
+++ b/auto/Wrap/libBornAgainSample_wrap.cpp
@@ -5357,7 +5357,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/local/share/swig/4.0.2/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig4.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&