diff --git a/Core/Export/PyFmt2.cpp b/Core/Export/PyFmt2.cpp
index b2f4fc65b748ccf63db37191f7d2bd33855b508e..d4aa7930f5106e52597b2361f63d81299d556f52 100644
--- a/Core/Export/PyFmt2.cpp
+++ b/Core/Export/PyFmt2.cpp
@@ -17,8 +17,8 @@
 #include "Base/Axis/PointwiseAxis.h"
 #include "Base/Const/Units.h"
 #include "Base/Math/Constants.h"
-#include "Base/Util/Algorithms.h"
 #include "Base/Py/PyFmt.h"
+#include "Base/Util/Algorithms.h"
 #include "Base/Util/StringUtils.h"
 #include "Core/Export/PyFmtLimits.h"
 #include "Device/Mask/Ellipse.h"
diff --git a/Core/Export/SampleToPython.cpp b/Core/Export/SampleToPython.cpp
index ed8632c17c9f1577efa539c57482d8bf46bd653b..46932f75f3a56307172db65006351f8b38f2642b 100644
--- a/Core/Export/SampleToPython.cpp
+++ b/Core/Export/SampleToPython.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "Core/Export/SampleToPython.h"
-#include "Base/Util/Assert.h"
 #include "Base/Py/PyFmt.h"
+#include "Base/Util/Assert.h"
 #include "Base/Vector/RotMatrix.h"
 #include "Core/Export/ComponentKeyHandler.h"
 #include "Core/Export/MaterialKeyHandler.h"
diff --git a/Core/Export/SimulationToPython.cpp b/Core/Export/SimulationToPython.cpp
index ff43d6b1b2271abd1742e195dafbe45e220786e3..92311368aadde467437ea480a767f71c2844eedc 100644
--- a/Core/Export/SimulationToPython.cpp
+++ b/Core/Export/SimulationToPython.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "Core/Export/SimulationToPython.h"
-#include "Base/Util/Algorithms.h"
 #include "Base/Py/PyFmt.h"
+#include "Base/Util/Algorithms.h"
 #include "Core/Background/ConstantBackground.h"
 #include "Core/Background/PoissonNoiseBackground.h"
 #include "Core/Export/PyFmt2.h"
diff --git a/Device/Histo/HistoUtils.cpp b/Device/Histo/HistoUtils.cpp
index 89cd850ab0f4437b11618a72ba4a73bc659f43cc..a44512186a19f6e0865160f338cec62731ab448d 100644
--- a/Device/Histo/HistoUtils.cpp
+++ b/Device/Histo/HistoUtils.cpp
@@ -81,7 +81,8 @@ double DataUtils::Histo::getRelativeDifference(const IHistogram& dat, const IHis
 
 //! Returns true is relative difference is below threshold; prints informative output
 bool DataUtils::Histo::checkRelativeDifference(const OutputData<double>& dat,
-                                              const OutputData<double>& ref, const double threshold)
+                                               const OutputData<double>& ref,
+                                               const double threshold)
 {
     const std::unique_ptr<const IHistogram> histo(IHistogram::createHistogram(dat));
     if (histo->getMinimum() == 0 && histo->getMaximum() == 0) {
diff --git a/GUI/Model/Group/GroupItem.cpp b/GUI/Model/BaseItem/GroupItem.cpp
similarity index 96%
rename from GUI/Model/Group/GroupItem.cpp
rename to GUI/Model/BaseItem/GroupItem.cpp
index d97162b633dd8c93f6e84d174ae72dc53e334291..16558bba97faf5ea9fc5eabf2e120438d3ad7676 100644
--- a/GUI/Model/Group/GroupItem.cpp
+++ b/GUI/Model/BaseItem/GroupItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Group/GroupItem.cpp
+//! @file      GUI/Model/BaseItem/GroupItem.cpp
 //! @brief     Implements class GroupItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Group/GroupItem.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/Util/Error.h"
 
diff --git a/GUI/Model/Group/GroupItem.h b/GUI/Model/BaseItem/GroupItem.h
similarity index 83%
rename from GUI/Model/Group/GroupItem.h
rename to GUI/Model/BaseItem/GroupItem.h
index 9332f4ca67d9695f6f845d4d1d2f75823f127df1..7248b4e8cd145375d87e9b841bedd9afe06fc19f 100644
--- a/GUI/Model/Group/GroupItem.h
+++ b/GUI/Model/BaseItem/GroupItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Group/GroupItem.h
+//! @file      GUI/Model/BaseItem/GroupItem.h
 //! @brief     Defines class GroupItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_GROUP_GROUPITEM_H
-#define BORNAGAIN_GUI_MODEL_GROUP_GROUPITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_BASEITEM_GROUPITEM_H
+#define BORNAGAIN_GUI_MODEL_BASEITEM_GROUPITEM_H
 
-#include "GUI/Model/Group/GroupItemController.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/GroupItemController.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <memory>
 
 class GroupInfo;
@@ -57,4 +57,4 @@ template <typename T> T* GroupItem::itemOfType() const
     return dynamic_cast<T*>(m_controller->getItemOfType(T::M_TYPE));
 }
 
-#endif // BORNAGAIN_GUI_MODEL_GROUP_GROUPITEM_H
+#endif // BORNAGAIN_GUI_MODEL_BASEITEM_GROUPITEM_H
diff --git a/GUI/Model/Group/GroupItemController.cpp b/GUI/Model/BaseItem/GroupItemController.cpp
similarity index 94%
rename from GUI/Model/Group/GroupItemController.cpp
rename to GUI/Model/BaseItem/GroupItemController.cpp
index cdf7f0b53cf8236cec87ca4ab2dc8404ee16e594..55a81b701f16925933c2ad0f9465543954a24a61 100644
--- a/GUI/Model/Group/GroupItemController.cpp
+++ b/GUI/Model/BaseItem/GroupItemController.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Group/GroupItemController.cpp
+//! @file      GUI/Model/BaseItem/GroupItemController.cpp
 //! @brief     Implements class GroupItemController
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Group/GroupItemController.h"
+#include "GUI/Model/BaseItem/GroupItemController.h"
 
-#include "GUI/Model/Catalog/ItemFactory.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
+#include "GUI/Model/MakeItem/ItemFactory.h"
 #include "GUI/Util/ComboProperty.h"
 #include <utility>
 
diff --git a/GUI/Model/Group/GroupItemController.h b/GUI/Model/BaseItem/GroupItemController.h
similarity index 86%
rename from GUI/Model/Group/GroupItemController.h
rename to GUI/Model/BaseItem/GroupItemController.h
index 2d5faa963405b59c3499903e5d7223f148c73bc7..c56d8eaa6383285d0858ba594725231be6538f14 100644
--- a/GUI/Model/Group/GroupItemController.h
+++ b/GUI/Model/BaseItem/GroupItemController.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Group/GroupItemController.h
+//! @file      GUI/Model/BaseItem/GroupItemController.h
 //! @brief     Defines class GroupItemController
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_GROUP_GROUPITEMCONTROLLER_H
-#define BORNAGAIN_GUI_MODEL_GROUP_GROUPITEMCONTROLLER_H
+#ifndef BORNAGAIN_GUI_MODEL_BASEITEM_GROUPITEMCONTROLLER_H
+#define BORNAGAIN_GUI_MODEL_BASEITEM_GROUPITEMCONTROLLER_H
 
 #include "GUI/Model/Group/GroupInfo.h"
 #include <QStringList>
@@ -52,4 +52,4 @@ private:
     GroupInfo m_groupInfo;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_GROUP_GROUPITEMCONTROLLER_H
+#endif // BORNAGAIN_GUI_MODEL_BASEITEM_GROUPITEMCONTROLLER_H
diff --git a/GUI/Model/Session/ModelMapper.cpp b/GUI/Model/BaseItem/ModelMapper.cpp
similarity index 98%
rename from GUI/Model/Session/ModelMapper.cpp
rename to GUI/Model/BaseItem/ModelMapper.cpp
index d7655d4c8aeb6a5b39573630292891a2a3f7389f..2057ef9430f7bda9cfb841839d458f453ea22c51 100644
--- a/GUI/Model/Session/ModelMapper.cpp
+++ b/GUI/Model/BaseItem/ModelMapper.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/ModelMapper.cpp
+//! @file      GUI/Model/BaseItem/ModelMapper.cpp
 //! @brief     Implements class ModelMapper
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Session/ModelMapper.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/BaseItem/ModelMapper.h"
+#include "GUI/Model/Model/SessionModel.h"
 
 ModelMapper::ModelMapper(QObject* parent)
     : QObject(parent)
diff --git a/GUI/Model/Session/ModelMapper.h b/GUI/Model/BaseItem/ModelMapper.h
similarity index 95%
rename from GUI/Model/Session/ModelMapper.h
rename to GUI/Model/BaseItem/ModelMapper.h
index 6a70a8309fa177d98586a1ff8c847833bb93c012..414931a570702eaf0ceb692cc2e38e077eb9f263 100644
--- a/GUI/Model/Session/ModelMapper.h
+++ b/GUI/Model/BaseItem/ModelMapper.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/ModelMapper.h
+//! @file      GUI/Model/BaseItem/ModelMapper.h
 //! @brief     Defines class ModelMapper
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SESSION_MODELMAPPER_H
-#define BORNAGAIN_GUI_MODEL_SESSION_MODELMAPPER_H
+#ifndef BORNAGAIN_GUI_MODEL_BASEITEM_MODELMAPPER_H
+#define BORNAGAIN_GUI_MODEL_BASEITEM_MODELMAPPER_H
 
 #include <QModelIndex>
 #include <functional>
@@ -109,4 +109,4 @@ template <class U> inline void ModelMapper::clean_container(U& v, const void* ca
             v.end());
 }
 
-#endif // BORNAGAIN_GUI_MODEL_SESSION_MODELMAPPER_H
+#endif // BORNAGAIN_GUI_MODEL_BASEITEM_MODELMAPPER_H
diff --git a/GUI/Model/Session/PropertyItem.cpp b/GUI/Model/BaseItem/PropertyItem.cpp
similarity index 86%
rename from GUI/Model/Session/PropertyItem.cpp
rename to GUI/Model/BaseItem/PropertyItem.cpp
index 633796d342c4a8874bbf732cd851fec3eac3673b..24a5cdb2eb01b7ecb0b019956bb7b59efab2f2b2 100644
--- a/GUI/Model/Session/PropertyItem.cpp
+++ b/GUI/Model/BaseItem/PropertyItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/PropertyItem.cpp
+//! @file      GUI/Model/BaseItem/PropertyItem.cpp
 //! @brief     Implements class PropertyItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Session/PropertyItem.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
 
 PropertyItem::PropertyItem()
     : SessionItem(M_TYPE)
diff --git a/GUI/Model/Session/PropertyItem.h b/GUI/Model/BaseItem/PropertyItem.h
similarity index 73%
rename from GUI/Model/Session/PropertyItem.h
rename to GUI/Model/BaseItem/PropertyItem.h
index b1f9a1d3a6628c14d24ecc1589d54adf9a5646b7..f766cbff43594522e78813e5dbc3ba267d683a87 100644
--- a/GUI/Model/Session/PropertyItem.h
+++ b/GUI/Model/BaseItem/PropertyItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/PropertyItem.h
+//! @file      GUI/Model/BaseItem/PropertyItem.h
 //! @brief     Defines class PropertyItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SESSION_PROPERTYITEM_H
-#define BORNAGAIN_GUI_MODEL_SESSION_PROPERTYITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_BASEITEM_PROPERTYITEM_H
+#define BORNAGAIN_GUI_MODEL_BASEITEM_PROPERTYITEM_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class BA_CORE_API_ PropertyItem : public SessionItem {
 public:
@@ -24,4 +24,4 @@ public:
     PropertyItem();
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SESSION_PROPERTYITEM_H
+#endif // BORNAGAIN_GUI_MODEL_BASEITEM_PROPERTYITEM_H
diff --git a/GUI/Model/Session/SessionItem.cpp b/GUI/Model/BaseItem/SessionItem.cpp
similarity index 98%
rename from GUI/Model/Session/SessionItem.cpp
rename to GUI/Model/BaseItem/SessionItem.cpp
index 4a3d66e2b394c1e761734b46c91c082ac66c0192..27b2d182f36425831a09f30a0312ffb6c636c7e2 100644
--- a/GUI/Model/Session/SessionItem.cpp
+++ b/GUI/Model/BaseItem/SessionItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/SessionItem.cpp
+//! @file      GUI/Model/BaseItem/SessionItem.cpp
 //! @brief     Implements class SessionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Catalog/ItemFactory.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Session/PropertyItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/MakeItem/ItemFactory.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Support/Data/SessionFlags.h"
 #include "GUI/Support/Data/SessionItemData.h"
 #include "GUI/Support/Data/SessionItemTags.h"
diff --git a/GUI/Model/Session/SessionItem.h b/GUI/Model/BaseItem/SessionItem.h
similarity index 98%
rename from GUI/Model/Session/SessionItem.h
rename to GUI/Model/BaseItem/SessionItem.h
index 5fcf61d732623b40e446554fd485097b0a1e1d7b..db71e3a0e8ce472ee8c79baa72a219bf813f653a 100644
--- a/GUI/Model/Session/SessionItem.h
+++ b/GUI/Model/BaseItem/SessionItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/SessionItem.h
+//! @file      GUI/Model/BaseItem/SessionItem.h
 //! @brief     Defines class SessionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SESSION_SESSIONITEM_H
-#define BORNAGAIN_GUI_MODEL_SESSION_SESSIONITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_BASEITEM_SESSIONITEM_H
+#define BORNAGAIN_GUI_MODEL_BASEITEM_SESSIONITEM_H
 
 #include "Base/Util/Assert.h"
 #include "Fit/Param/RealLimits.h"
-#include "GUI/Model/Session/ModelMapper.h" // no forward declare, used too often
+#include "GUI/Model/BaseItem/ModelMapper.h" // no forward declare, used too often
 #include "Wrap/WinDllMacros.h"
 #include <QStringList>
 #include <memory>
@@ -404,4 +404,4 @@ template <typename T> bool SessionItem::hasModelType() const
     return modelType() == T::M_TYPE;
 }
 
-#endif // BORNAGAIN_GUI_MODEL_SESSION_SESSIONITEM_H
+#endif // BORNAGAIN_GUI_MODEL_BASEITEM_SESSIONITEM_H
diff --git a/GUI/Model/Group/SelectionDescriptor.h b/GUI/Model/Group/SelectionDescriptor.h
index c439e52081936f568f528d9fddb13f1a94054e7e..e60c7de89b5f88f93ba75a8713b2844b151dcbfd 100644
--- a/GUI/Model/Group/SelectionDescriptor.h
+++ b/GUI/Model/Group/SelectionDescriptor.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_GROUP_SELECTIONDESCRIPTOR_H
 #define BORNAGAIN_GUI_MODEL_GROUP_SELECTIONDESCRIPTOR_H
 
-#include "GUI/Model/Group/GroupItem.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include <QString>
 #include <QStringList>
diff --git a/GUI/Model/Ax/AxesItems.cpp b/GUI/Model/Item/AxesItems.cpp
similarity index 98%
rename from GUI/Model/Ax/AxesItems.cpp
rename to GUI/Model/Item/AxesItems.cpp
index 11f402c413b64634ff5fe1df709073c7e37da73e..e890e96eafa51106d34ab44ef52a5c5bc610d547 100644
--- a/GUI/Model/Ax/AxesItems.cpp
+++ b/GUI/Model/Item/AxesItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Ax/AxesItems.cpp
+//! @file      GUI/Model/Item/AxesItems.cpp
 //! @brief     Implements various axis items
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Ax/AxesItems.h"
+#include "GUI/Model/Item/AxesItems.h"
 #include "Base/Axis/FixedBinAxis.h"
 
 const int max_detector_pixels = 65536;
diff --git a/GUI/Model/Ax/AxesItems.h b/GUI/Model/Item/AxesItems.h
similarity index 92%
rename from GUI/Model/Ax/AxesItems.h
rename to GUI/Model/Item/AxesItems.h
index f9267877149514b510304a276644877591416b28..93f4737ad585d248189be76c071c6bfecb77d961 100644
--- a/GUI/Model/Ax/AxesItems.h
+++ b/GUI/Model/Item/AxesItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Ax/AxesItems.h
+//! @file      GUI/Model/Item/AxesItems.h
 //! @brief     Defines various axis items
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_AX_AXESITEMS_H
-#define BORNAGAIN_GUI_MODEL_AX_AXESITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_AXESITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_AXESITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Types/DoubleDescriptor.h" // no forward declaration < used in many children
 #include <memory>
 
@@ -92,4 +92,4 @@ private:
     void setMinMaxEditor(const QString& editorType);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_AX_AXESITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_AXESITEMS_H
diff --git a/GUI/Model/Instrument/BackgroundItems.cpp b/GUI/Model/Item/BackgroundItems.cpp
similarity index 95%
rename from GUI/Model/Instrument/BackgroundItems.cpp
rename to GUI/Model/Item/BackgroundItems.cpp
index 6db94c899683b909a92eb80de43a6487de22a372..978378da68dc75324850093d6f69a6a54f8d17e6 100644
--- a/GUI/Model/Instrument/BackgroundItems.cpp
+++ b/GUI/Model/Item/BackgroundItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BackgroundItems.cpp
+//! @file      GUI/Model/Item/BackgroundItems.cpp
 //! @brief     Implements BackgroundItem classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/BackgroundItems.h"
+#include "GUI/Model/Item/BackgroundItems.h"
 #include "Core/Background/ConstantBackground.h"
 #include "Core/Background/PoissonNoiseBackground.h"
 
diff --git a/GUI/Model/Instrument/BackgroundItems.h b/GUI/Model/Item/BackgroundItems.h
similarity index 85%
rename from GUI/Model/Instrument/BackgroundItems.h
rename to GUI/Model/Item/BackgroundItems.h
index e1291969ae3f18919350ab4c0c174b2642ae5740..59a6e38256159971eefde52870f771811ec49e47 100644
--- a/GUI/Model/Instrument/BackgroundItems.h
+++ b/GUI/Model/Item/BackgroundItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BackgroundItems.h
+//! @file      GUI/Model/Item/BackgroundItems.h
 //! @brief     Defines BackgroundItem classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_BACKGROUNDITEMS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_BACKGROUNDITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_BACKGROUNDITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_BACKGROUNDITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class IBackground;
 
@@ -56,4 +56,4 @@ public:
     std::unique_ptr<IBackground> createBackground() const override;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_BACKGROUNDITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_BACKGROUNDITEMS_H
diff --git a/GUI/Model/Instrument/BeamAngleItems.cpp b/GUI/Model/Item/BeamAngleItems.cpp
similarity index 95%
rename from GUI/Model/Instrument/BeamAngleItems.cpp
rename to GUI/Model/Item/BeamAngleItems.cpp
index ce55f0ac7f829e7b006d1e9354bcc184dc72867b..17a39336807786b846a083a4527c00f899bec107 100644
--- a/GUI/Model/Instrument/BeamAngleItems.cpp
+++ b/GUI/Model/Item/BeamAngleItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BeamAngleItems.cpp
+//! @file      GUI/Model/Item/BeamAngleItems.cpp
 //! @brief     Implements class BeamAngleItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/BeamAngleItems.h"
+#include "GUI/Model/Item/BeamAngleItems.h"
 #include "Base/Const/Units.h"
 
 BeamAzimuthalAngleItem::BeamAzimuthalAngleItem()
diff --git a/GUI/Model/Instrument/BeamAngleItems.h b/GUI/Model/Item/BeamAngleItems.h
similarity index 80%
rename from GUI/Model/Instrument/BeamAngleItems.h
rename to GUI/Model/Item/BeamAngleItems.h
index a18cf25bfc35106cd487af6615e95bc4fcc84995..6d716167eae9e17656e4595568e4e965ec1671b6 100644
--- a/GUI/Model/Instrument/BeamAngleItems.h
+++ b/GUI/Model/Item/BeamAngleItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BeamAngleItems.h
+//! @file      GUI/Model/Item/BeamAngleItems.h
 //! @brief     Defines class BeamAngleItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMANGLEITEMS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMANGLEITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_BEAMANGLEITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_BEAMANGLEITEMS_H
 
-#include "GUI/Model/Instrument/BeamDistributionItem.h"
+#include "GUI/Model/Item/BeamDistributionItem.h"
 
 class BeamAzimuthalAngleItem : public BeamDistributionItem {
 public:
@@ -45,4 +45,4 @@ private:
     static const bool m_show_mean = true;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMANGLEITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_BEAMANGLEITEMS_H
diff --git a/GUI/Model/Instrument/BeamDistributionItem.cpp b/GUI/Model/Item/BeamDistributionItem.cpp
similarity index 97%
rename from GUI/Model/Instrument/BeamDistributionItem.cpp
rename to GUI/Model/Item/BeamDistributionItem.cpp
index 8c22e4759657e5194e584c94b92c433f16e29e73..754e348d16e3d41344d00c19b422be74d030d355 100644
--- a/GUI/Model/Instrument/BeamDistributionItem.cpp
+++ b/GUI/Model/Item/BeamDistributionItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BeamDistributionItem.cpp
+//! @file      GUI/Model/Item/BeamDistributionItem.cpp
 //! @brief     Implements class BeamDistributionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/BeamDistributionItem.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Session/RealLimitsItems.h"
+#include "GUI/Model/Item/BeamDistributionItem.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/RealLimitsItems.h"
 #include "Param/Distrib/Distributions.h"
 
 namespace {
diff --git a/GUI/Model/Instrument/BeamDistributionItem.h b/GUI/Model/Item/BeamDistributionItem.h
similarity index 84%
rename from GUI/Model/Instrument/BeamDistributionItem.h
rename to GUI/Model/Item/BeamDistributionItem.h
index 7ef1d7e833ab9b8044c0f71062551f1eac0428b8..8a7dd8922a8c86844b8d2c6f569266185e87840a 100644
--- a/GUI/Model/Instrument/BeamDistributionItem.h
+++ b/GUI/Model/Item/BeamDistributionItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BeamDistributionItem.h
+//! @file      GUI/Model/Item/BeamDistributionItem.h
 //! @brief     Defines class BeamDistributionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMDISTRIBUTIONITEM_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMDISTRIBUTIONITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_BEAMDISTRIBUTIONITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_BEAMDISTRIBUTIONITEM_H
 
-#include "GUI/Model/Instrument/ItemWithDistribution.h"
-#include "GUI/Model/Instrument/ResolutionItems.h"
+#include "GUI/Model/Item/ItemWithDistribution.h"
+#include "GUI/Model/Item/ResolutionItems.h"
 #include "Param/Distrib/ParameterDistribution.h"
 
 //! The BeamDistributionItem handles wavelength, inclination and azimuthal parameter
@@ -59,4 +59,4 @@ template <typename T> T* BeamDistributionItem::setDistributionType()
     return setGroupPropertyType<T>(P_DISTRIBUTION);
 }
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMDISTRIBUTIONITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_BEAMDISTRIBUTIONITEM_H
diff --git a/GUI/Model/Instrument/BeamItems.cpp b/GUI/Model/Item/BeamItems.cpp
similarity index 95%
rename from GUI/Model/Instrument/BeamItems.cpp
rename to GUI/Model/Item/BeamItems.cpp
index 49f41ccd1410b0b479c8cc62a528a621ec564b3c..d8157c29e478288700e04c00b199413770169c0f 100644
--- a/GUI/Model/Instrument/BeamItems.cpp
+++ b/GUI/Model/Item/BeamItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BeamItems.cpp
+//! @file      GUI/Model/Item/BeamItems.cpp
 //! @brief     Implements BeamItem hierarchy
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,16 +12,16 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/BeamItems.h"
+#include "GUI/Model/Item/BeamItems.h"
 #include "Base/Axis/IAxis.h"
 #include "Base/Const/Units.h"
 #include "Device/Beam/Beam.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Instrument/BeamAngleItems.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
-#include "GUI/Model/Instrument/FootprintItems.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/BeamAngleItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
+#include "GUI/Model/Item/FootprintItems.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
+#include "GUI/Model/Item/VectorItem.h"
 #include <cmath>
 
 namespace {
diff --git a/GUI/Model/Instrument/BeamItems.h b/GUI/Model/Item/BeamItems.h
similarity index 91%
rename from GUI/Model/Instrument/BeamItems.h
rename to GUI/Model/Item/BeamItems.h
index c1df416d290d3abc731292981b5fb3cd7aad16bf..73315555c4b4601d242116f0aaf0eec5115fa723 100644
--- a/GUI/Model/Instrument/BeamItems.h
+++ b/GUI/Model/Item/BeamItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BeamItems.h
+//! @file      GUI/Model/Item/BeamItems.h
 //! @brief     Defines BeamItem hierarchy
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMITEMS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_BEAMITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_BEAMITEMS_H
 
-#include "GUI/Model/Instrument/SpecularBeamInclinationItem.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
+#include "GUI/Model/Item/SpecularBeamInclinationItem.h"
 #include <heinz/Vectors3D.h>
 
 class BasicAxisItem;
@@ -111,4 +111,4 @@ template <typename T> T* SpecularBeamItem::setFootprintType()
     return setGroupPropertyType<T>(P_FOOTPRINT);
 }
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_BEAMITEMS_H
diff --git a/GUI/Model/Instrument/BeamWavelengthItem.cpp b/GUI/Model/Item/BeamWavelengthItem.cpp
similarity index 94%
rename from GUI/Model/Instrument/BeamWavelengthItem.cpp
rename to GUI/Model/Item/BeamWavelengthItem.cpp
index 7f18fb2377dca27709d594395697060a412db6b4..aaa4f72b1dc51b772570d91ae0052d3245713588 100644
--- a/GUI/Model/Instrument/BeamWavelengthItem.cpp
+++ b/GUI/Model/Item/BeamWavelengthItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BeamWavelengthItem.cpp
+//! @file      GUI/Model/Item/BeamWavelengthItem.cpp
 //! @brief     Implements class BeamWavelengthItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
 
 namespace {
 
diff --git a/GUI/Model/Instrument/BeamWavelengthItem.h b/GUI/Model/Item/BeamWavelengthItem.h
similarity index 79%
rename from GUI/Model/Instrument/BeamWavelengthItem.h
rename to GUI/Model/Item/BeamWavelengthItem.h
index 499c51137e552eb6e15d5a0fecc9a8c52d781553..6548118d3272e2efd0799860477f2df9f62b9d56 100644
--- a/GUI/Model/Instrument/BeamWavelengthItem.h
+++ b/GUI/Model/Item/BeamWavelengthItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/BeamWavelengthItem.h
+//! @file      GUI/Model/Item/BeamWavelengthItem.h
 //! @brief     Defines class BeamWavelengthItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMWAVELENGTHITEM_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMWAVELENGTHITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_BEAMWAVELENGTHITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_BEAMWAVELENGTHITEM_H
 
-#include "GUI/Model/Instrument/BeamDistributionItem.h"
+#include "GUI/Model/Item/BeamDistributionItem.h"
 
 class BA_CORE_API_ BeamWavelengthItem : public BeamDistributionItem {
 public:
@@ -39,4 +39,4 @@ public:
     void setToRange(const RealLimits& limits);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_BEAMWAVELENGTHITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_BEAMWAVELENGTHITEM_H
diff --git a/GUI/Model/Plot/Data1DViewItem.cpp b/GUI/Model/Item/Data1DViewItem.cpp
similarity index 95%
rename from GUI/Model/Plot/Data1DViewItem.cpp
rename to GUI/Model/Item/Data1DViewItem.cpp
index a615d0f16bedc2bf09a7e6ba931722370959fc03..832ba9135711e7f6a234f999d1f1139b825dc6df 100644
--- a/GUI/Model/Plot/Data1DViewItem.cpp
+++ b/GUI/Model/Item/Data1DViewItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Plot/Data1DViewItem.cpp
+//! @file      GUI/Model/Item/Data1DViewItem.cpp
 //! @brief     Implements class Data1DViewItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Plot/Data1DViewItem.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Plot/DataProperties.h"
-#include "GUI/Model/Plot/DataPropertyContainer.h"
-#include "GUI/Model/Plot/DataViewUtils.h"
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/DataProperties.h"
+#include "GUI/Model/Item/DataPropertyContainer.h"
+#include "GUI/Model/Item/DataViewUtils.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/Util/Error.h"
 
diff --git a/GUI/Model/Plot/Data1DViewItem.h b/GUI/Model/Item/Data1DViewItem.h
similarity index 93%
rename from GUI/Model/Plot/Data1DViewItem.h
rename to GUI/Model/Item/Data1DViewItem.h
index a2d6a66677f7736047260536b396a35864f7cf4a..47a0dd0b123c332fab4c6550c8768dea5b1b0c2d 100644
--- a/GUI/Model/Plot/Data1DViewItem.h
+++ b/GUI/Model/Item/Data1DViewItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Plot/Data1DViewItem.h
+//! @file      GUI/Model/Item/Data1DViewItem.h
 //! @brief     Defines class Data1DViewItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PLOT_DATA1DVIEWITEM_H
-#define BORNAGAIN_GUI_MODEL_PLOT_DATA1DVIEWITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_DATA1DVIEWITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_DATA1DVIEWITEM_H
 
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Session/SessionItem.h"
 
 class AmplitudeAxisItem;
 class BasicAxisItem;
@@ -107,4 +107,4 @@ private:
     JobItem* m_job_item;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_PLOT_DATA1DVIEWITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_DATA1DVIEWITEM_H
diff --git a/GUI/Model/Session/DataItem.cpp b/GUI/Model/Item/DataItem.cpp
similarity index 97%
rename from GUI/Model/Session/DataItem.cpp
rename to GUI/Model/Item/DataItem.cpp
index b2e0dc33d491331a658e945942de9acefeecead2..1aebc3b7c29ba38203cea6a139f183909286ab38 100644
--- a/GUI/Model/Session/DataItem.cpp
+++ b/GUI/Model/Item/DataItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/DataItem.cpp
+//! @file      GUI/Model/Item/DataItem.cpp
 //! @brief     Implements class IntensityDataItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/DataItem.h"
 #include "Device/Histo/IntensityDataIOFactory.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/Util/Error.h"
diff --git a/GUI/Model/Session/DataItem.h b/GUI/Model/Item/DataItem.h
similarity index 92%
rename from GUI/Model/Session/DataItem.h
rename to GUI/Model/Item/DataItem.h
index bf7c2c449a2de7b7ee91cb4777c39c9281c3daa6..f6f301f864f14e08062db7deacb581cd20c263b3 100644
--- a/GUI/Model/Session/DataItem.h
+++ b/GUI/Model/Item/DataItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/DataItem.h
+//! @file      GUI/Model/Item/DataItem.h
 //! @brief     Declares class DataItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SESSION_DATAITEM_H
-#define BORNAGAIN_GUI_MODEL_SESSION_DATAITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_DATAITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_DATAITEM_H
 
 #include "Device/Data/OutputData.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Session/SessionItem.h"
 #include "GUI/Support/IO/SaveLoadInterface.h"
 #include <QDateTime>
 #include <mutex>
@@ -81,4 +81,4 @@ protected:
     std::mutex m_update_data_mutex;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SESSION_DATAITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_DATAITEM_H
diff --git a/GUI/Model/Plot/DataProperties.cpp b/GUI/Model/Item/DataProperties.cpp
similarity index 94%
rename from GUI/Model/Plot/DataProperties.cpp
rename to GUI/Model/Item/DataProperties.cpp
index 22c31ccb5cc8a424d9a2af3726771f7611f6debe..9dcf1959c71b5161652a0ca3a3c915b53d04e2dd 100644
--- a/GUI/Model/Plot/DataProperties.cpp
+++ b/GUI/Model/Item/DataProperties.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Plot/DataProperties.cpp
+//! @file      GUI/Model/Item/DataProperties.cpp
 //! @brief     Implements class DataPresentationProperties and its descendants
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Plot/DataProperties.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Session/DataItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/DataProperties.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/Util/Error.h"
 #include "GUI/Util/Path.h"
diff --git a/GUI/Model/Plot/DataProperties.h b/GUI/Model/Item/DataProperties.h
similarity index 88%
rename from GUI/Model/Plot/DataProperties.h
rename to GUI/Model/Item/DataProperties.h
index 44bab8036716e330e4b9c9f1857d854013fcb16a..ad9a7c6d80cb45cebeeeb0cf40a2c13525079b44 100644
--- a/GUI/Model/Plot/DataProperties.h
+++ b/GUI/Model/Item/DataProperties.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Plot/DataProperties.h
+//! @file      GUI/Model/Item/DataProperties.h
 //! @brief     Defines class DataProperties and its descendants
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTIES_H
-#define BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTIES_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_DATAPROPERTIES_H
+#define BORNAGAIN_GUI_MODEL_ITEM_DATAPROPERTIES_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class DataItem;
 
@@ -59,4 +59,4 @@ public:
     static const QString& nextColorName(Data1DProperties* properties);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTIES_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_DATAPROPERTIES_H
diff --git a/GUI/Model/Plot/DataPropertyContainer.cpp b/GUI/Model/Item/DataPropertyContainer.cpp
similarity index 93%
rename from GUI/Model/Plot/DataPropertyContainer.cpp
rename to GUI/Model/Item/DataPropertyContainer.cpp
index 80575d506701f154ce147bc177b1e832f4a7beba..ec12fcc31acd2107bd6468977cb03ae9719ae14f 100644
--- a/GUI/Model/Plot/DataPropertyContainer.cpp
+++ b/GUI/Model/Item/DataPropertyContainer.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Plot/DataPropertyContainer.cpp
+//! @file      GUI/Model/Item/DataPropertyContainer.cpp
 //! @brief     Implements class DataPropertyContainer
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Plot/DataPropertyContainer.h"
-#include "GUI/Model/Plot/DataProperties.h"
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/DataPropertyContainer.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/DataProperties.h"
 #include "GUI/Util/Error.h"
 
 DataPropertyContainer::DataPropertyContainer()
diff --git a/GUI/Model/Plot/DataPropertyContainer.h b/GUI/Model/Item/DataPropertyContainer.h
similarity index 81%
rename from GUI/Model/Plot/DataPropertyContainer.h
rename to GUI/Model/Item/DataPropertyContainer.h
index 254db64aca0aaeaa9c54e2eecf601cee97a833bd..bc653c53f91033be502091f020ec3e85c08eb25c 100644
--- a/GUI/Model/Plot/DataPropertyContainer.h
+++ b/GUI/Model/Item/DataPropertyContainer.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Plot/DataPropertyContainer.h
+//! @file      GUI/Model/Item/DataPropertyContainer.h
 //! @brief     Defines class DataPropertyContainer
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTYCONTAINER_H
-#define BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTYCONTAINER_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_DATAPROPERTYCONTAINER_H
+#define BORNAGAIN_GUI_MODEL_ITEM_DATAPROPERTYCONTAINER_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class DataItem;
 class DataProperties;
@@ -43,4 +43,4 @@ protected:
     DataItem* dataItem(size_t i) const;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTYCONTAINER_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_DATAPROPERTYCONTAINER_H
diff --git a/GUI/Model/Plot/DataViewUtils.cpp b/GUI/Model/Item/DataViewUtils.cpp
similarity index 88%
rename from GUI/Model/Plot/DataViewUtils.cpp
rename to GUI/Model/Item/DataViewUtils.cpp
index e8079b824002364d2b2a6b1b124140aee5fdf76e..aab2550b32bb7b90ba0a598c864256c553a92794 100644
--- a/GUI/Model/Plot/DataViewUtils.cpp
+++ b/GUI/Model/Item/DataViewUtils.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Plot/DataViewUtils.cpp
+//! @file      GUI/Model/Item/DataViewUtils.cpp
 //! @brief     Implements functions in namespace DataViewUtils
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Plot/DataViewUtils.h"
+#include "GUI/Model/Item/DataViewUtils.h"
 #include "Device/Coord/ICoordSystem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Plot/Data1DViewItem.h"
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/Util/CoordName.h"
 
 namespace {
diff --git a/GUI/Model/Plot/DataViewUtils.h b/GUI/Model/Item/DataViewUtils.h
similarity index 83%
rename from GUI/Model/Plot/DataViewUtils.h
rename to GUI/Model/Item/DataViewUtils.h
index fc20b26bd0a8f35c6a13996ea0e47e79dd8c4e31..ad3c5910bf4ea569a689a2640c710805d4019c3c 100644
--- a/GUI/Model/Plot/DataViewUtils.h
+++ b/GUI/Model/Item/DataViewUtils.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Plot/DataViewUtils.h
+//! @file      GUI/Model/Item/DataViewUtils.h
 //! @brief     Defines namespace GUI::Model::DataViewUtils
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PLOT_DATAVIEWUTILS_H
-#define BORNAGAIN_GUI_MODEL_PLOT_DATAVIEWUTILS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_DATAVIEWUTILS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_DATAVIEWUTILS_H
 
 #include <QString>
 #include <memory>
@@ -32,4 +32,4 @@ std::unique_ptr<OutputData<double>> getTranslatedData(Data1DViewItem* view_item,
 
 } // namespace GUI::Model::DataViewUtils
 
-#endif // BORNAGAIN_GUI_MODEL_PLOT_DATAVIEWUTILS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_DATAVIEWUTILS_H
diff --git a/GUI/Model/Instrument/DetectorItems.cpp b/GUI/Model/Item/DetectorItems.cpp
similarity index 94%
rename from GUI/Model/Instrument/DetectorItems.cpp
rename to GUI/Model/Item/DetectorItems.cpp
index 8057dd66567c933c2ddfc624395da427a43eac52..1f4ef2e282acf77a3118d1ece4704b5535cf81e6 100644
--- a/GUI/Model/Instrument/DetectorItems.cpp
+++ b/GUI/Model/Item/DetectorItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/DetectorItems.cpp
+//! @file      GUI/Model/Item/DetectorItems.cpp
 //! @brief     Implements classes DetectorItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,15 +12,15 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/DetectorItems.h"
+#include "GUI/Model/Item/DetectorItems.h"
 #include "Device/Detector/IDetector2D.h"
 #include "Device/Mask/IShape2D.h"
 #include "Device/Resolution/ResolutionFunction2DGaussian.h"
 #include "GUI/Model/Group/GroupInfo.h"
-#include "GUI/Model/Instrument/ResolutionFunctionItems.h"
-#include "GUI/Model/Instrument/SphericalDetectorItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/ResolutionFunctionItems.h"
+#include "GUI/Model/Item/SphericalDetectorItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 
 namespace {
 
diff --git a/GUI/Model/Instrument/DetectorItems.h b/GUI/Model/Item/DetectorItems.h
similarity index 90%
rename from GUI/Model/Instrument/DetectorItems.h
rename to GUI/Model/Item/DetectorItems.h
index 9839a5b14dbf668fa2718125f659741d4e1024e6..d8611e430acd53fdd06bd77be06ac67c5e705506 100644
--- a/GUI/Model/Instrument/DetectorItems.h
+++ b/GUI/Model/Item/DetectorItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/DetectorItems.h
+//! @file      GUI/Model/Item/DetectorItems.h
 //! @brief     Defines classes DetectorItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_DETECTORITEMS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_DETECTORITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_DETECTORITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_DETECTORITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <heinz/Vectors3D.h>
 
 class MaskContainerItem;
@@ -82,4 +82,4 @@ template <typename T> T* DetectorItem::setResolutionFunctionType()
     return setGroupPropertyType<T>(P_RESOLUTION_FUNCTION);
 }
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_DETECTORITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_DETECTORITEMS_H
diff --git a/GUI/Model/Sample/FTDecayFunctionItems.cpp b/GUI/Model/Item/FTDecayFunctionItems.cpp
similarity index 98%
rename from GUI/Model/Sample/FTDecayFunctionItems.cpp
rename to GUI/Model/Item/FTDecayFunctionItems.cpp
index 576907b1a87b685e8946327cd637e61c52bc3cb7..bc9ac7a62f7138fbc7374816d38948403cbfa243 100644
--- a/GUI/Model/Sample/FTDecayFunctionItems.cpp
+++ b/GUI/Model/Item/FTDecayFunctionItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FTDecayFunctionItems.cpp
+//! @file      GUI/Model/Item/FTDecayFunctionItems.cpp
 //! @brief     Implements FTDecayFunction1DItem classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/FTDecayFunctionItems.h"
+#include "GUI/Model/Item/FTDecayFunctionItems.h"
 #include "Base/Const/Units.h"
 #include "GUI/Model/XML/Serializer.h"
 #include <QList>
diff --git a/GUI/Model/Sample/FTDecayFunctionItems.h b/GUI/Model/Item/FTDecayFunctionItems.h
similarity index 93%
rename from GUI/Model/Sample/FTDecayFunctionItems.h
rename to GUI/Model/Item/FTDecayFunctionItems.h
index ab79420c147b87d08de9187ad39995b9b554e587..1d07bb59ace58cd539679530e2ec9bdcedaf9766 100644
--- a/GUI/Model/Sample/FTDecayFunctionItems.h
+++ b/GUI/Model/Item/FTDecayFunctionItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FTDecayFunctionItems.h
+//! @file      GUI/Model/Item/FTDecayFunctionItems.h
 //! @brief     Defines FTDecayFunction1DItem classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_FTDECAYFUNCTIONITEMS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_FTDECAYFUNCTIONITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_FTDECAYFUNCTIONITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_FTDECAYFUNCTIONITEMS_H
 
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/Model/Types/DoubleProperty.h"
@@ -117,4 +117,4 @@ private:
     DoubleProperty m_eta;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_FTDECAYFUNCTIONITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_FTDECAYFUNCTIONITEMS_H
diff --git a/GUI/Model/Sample/FTDistributionItems.cpp b/GUI/Model/Item/FTDistributionItems.cpp
similarity index 98%
rename from GUI/Model/Sample/FTDistributionItems.cpp
rename to GUI/Model/Item/FTDistributionItems.cpp
index 5cfdbce4d1e0cfb08a263bb004b2aa89c9d0edfc..a69ee529d0024f27fc9df4b933602d41ed7e2e0f 100644
--- a/GUI/Model/Sample/FTDistributionItems.cpp
+++ b/GUI/Model/Item/FTDistributionItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FTDistributionItems.cpp
+//! @file      GUI/Model/Item/FTDistributionItems.cpp
 //! @brief     Implements FTDistribution1DItem's classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/FTDistributionItems.h"
+#include "GUI/Model/Item/FTDistributionItems.h"
 #include "Base/Const/Units.h"
 #include "GUI/Model/XML/Serializer.h"
 
diff --git a/GUI/Model/Sample/FTDistributionItems.h b/GUI/Model/Item/FTDistributionItems.h
similarity index 94%
rename from GUI/Model/Sample/FTDistributionItems.h
rename to GUI/Model/Item/FTDistributionItems.h
index 2474757296862817cad643eb4c222881dd5a5464..9534097609a9396e2b609b1e6527a4f68f839570 100644
--- a/GUI/Model/Sample/FTDistributionItems.h
+++ b/GUI/Model/Item/FTDistributionItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FTDistributionItems.h
+//! @file      GUI/Model/Item/FTDistributionItems.h
 //! @brief     Defines FTDistribution1DItem's classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_FTDISTRIBUTIONITEMS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_FTDISTRIBUTIONITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_FTDISTRIBUTIONITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_FTDISTRIBUTIONITEMS_H
 
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/Model/Types/DoubleProperty.h"
@@ -141,4 +141,4 @@ private:
     DoubleProperty m_eta;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_FTDISTRIBUTIONITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_FTDISTRIBUTIONITEMS_H
diff --git a/GUI/Model/Fit/FitParameterContainerItem.cpp b/GUI/Model/Item/FitParameterContainerItem.cpp
similarity index 92%
rename from GUI/Model/Fit/FitParameterContainerItem.cpp
rename to GUI/Model/Item/FitParameterContainerItem.cpp
index ef5c48cb927c050ae691fc62a11e3d3b76d02177..12a2e0910c6ac7051110bff6ef714e87d6260803 100644
--- a/GUI/Model/Fit/FitParameterContainerItem.cpp
+++ b/GUI/Model/Item/FitParameterContainerItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterContainerItem.cpp
+//! @file      GUI/Model/Item/FitParameterContainerItem.cpp
 //! @brief     Implements class FitParameterContainerItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,13 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
 #include "Base/Util/Assert.h"
 #include "Fit/Param/Parameters.h"
-#include "GUI/Model/Fit/FitParameterHelper.h"
-#include "GUI/Model/Fit/FitParameterItem.h"
-#include "GUI/Model/Fit/FitParameterLinkItem.h"
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/FitParameterItem.h"
+#include "GUI/Model/Item/FitParameterLinkItem.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/Error.h"
 
 FitParameterContainerItem::FitParameterContainerItem()
diff --git a/GUI/Model/Fit/FitParameterContainerItem.h b/GUI/Model/Item/FitParameterContainerItem.h
similarity index 88%
rename from GUI/Model/Fit/FitParameterContainerItem.h
rename to GUI/Model/Item/FitParameterContainerItem.h
index 1a81bc66a4b131f596d2e9d0c69e34252c53103b..339e5bf587ba03347140068ba7a4a9a7884119a1 100644
--- a/GUI/Model/Fit/FitParameterContainerItem.h
+++ b/GUI/Model/Item/FitParameterContainerItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterContainerItem.h
+//! @file      GUI/Model/Item/FitParameterContainerItem.h
 //! @brief     Defines class FitParameterContainerItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERCONTAINERITEM_H
-#define BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERCONTAINERITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERCONTAINERITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERCONTAINERITEM_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 namespace mumufit {
 
@@ -65,4 +65,4 @@ public:
     mumufit::Parameters createParameters() const;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERCONTAINERITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERCONTAINERITEM_H
diff --git a/GUI/Model/Fit/FitParameterItem.cpp b/GUI/Model/Item/FitParameterItem.cpp
similarity index 97%
rename from GUI/Model/Fit/FitParameterItem.cpp
rename to GUI/Model/Item/FitParameterItem.cpp
index 46c416ad7335a42321a6c69d3e749ffef20e2b35..8774ddef88b791eecfbd933c53a1ea7a51918a52 100644
--- a/GUI/Model/Fit/FitParameterItem.cpp
+++ b/GUI/Model/Item/FitParameterItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterItem.cpp
+//! @file      GUI/Model/Item/FitParameterItem.cpp
 //! @brief     Implements FitParameterItems family of classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/FitParameterItem.h"
+#include "GUI/Model/Item/FitParameterItem.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Fit/FitParameterLinkItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/FitParameterLinkItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/ComboProperty.h"
 
 namespace {
diff --git a/GUI/Model/Fit/FitParameterItem.h b/GUI/Model/Item/FitParameterItem.h
similarity index 89%
rename from GUI/Model/Fit/FitParameterItem.h
rename to GUI/Model/Item/FitParameterItem.h
index 6eea5f1f54991a32daf903ea1abe783c74b66025..37b50a85bde32515df6be7460a688248d138ea4a 100644
--- a/GUI/Model/Fit/FitParameterItem.h
+++ b/GUI/Model/Item/FitParameterItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterItem.h
+//! @file      GUI/Model/Item/FitParameterItem.h
 //! @brief     Defines class FitParameterItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERITEM_H
-#define BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERITEM_H
 
 #include "Fit/Param/AttLimits.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class FitParameterLinkItem;
 
@@ -75,4 +75,4 @@ private:
     bool isFixed() const;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERITEM_H
diff --git a/GUI/Model/Fit/FitParameterLinkItem.cpp b/GUI/Model/Item/FitParameterLinkItem.cpp
similarity index 91%
rename from GUI/Model/Fit/FitParameterLinkItem.cpp
rename to GUI/Model/Item/FitParameterLinkItem.cpp
index 2bc633157e136aae36e3a43c6b5ce3572451f9d3..bbc81985ce8090a66ce59657f1f5fdf6147c0610 100644
--- a/GUI/Model/Fit/FitParameterLinkItem.cpp
+++ b/GUI/Model/Item/FitParameterLinkItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterLinkItem.cpp
+//! @file      GUI/Model/Item/FitParameterLinkItem.cpp
 //! @brief     Implements class FitParameterLinkItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/FitParameterLinkItem.h"
+#include "GUI/Model/Item/FitParameterLinkItem.h"
 
 FitParameterLinkItem::FitParameterLinkItem()
     : SessionItem(M_TYPE)
diff --git a/GUI/Model/Fit/FitParameterLinkItem.h b/GUI/Model/Item/FitParameterLinkItem.h
similarity index 80%
rename from GUI/Model/Fit/FitParameterLinkItem.h
rename to GUI/Model/Item/FitParameterLinkItem.h
index 7797a6ee5e9666f3b8deaf0d3426457228e8afc9..154ef0e71b532790234da2a78364ba1383bd91c6 100644
--- a/GUI/Model/Fit/FitParameterLinkItem.h
+++ b/GUI/Model/Item/FitParameterLinkItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterLinkItem.h
+//! @file      GUI/Model/Item/FitParameterLinkItem.h
 //! @brief     Defines class FitParameterLinkItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERLINKITEM_H
-#define BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERLINKITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERLINKITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERLINKITEM_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 //! The FitParameterLinkItem class holds a link to ParameterItem in tuning tree.
 
@@ -37,4 +37,4 @@ public:
     SessionItem* linkItem() const;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERLINKITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERLINKITEM_H
diff --git a/GUI/Model/Fit/FitSuiteItem.cpp b/GUI/Model/Item/FitSuiteItem.cpp
similarity index 92%
rename from GUI/Model/Fit/FitSuiteItem.cpp
rename to GUI/Model/Item/FitSuiteItem.cpp
index aba6428d02a305c9187be7a5e9d8c4fd9591cba9..365517c12ab7106a175afa79e24bf0fa85a44be4 100644
--- a/GUI/Model/Fit/FitSuiteItem.cpp
+++ b/GUI/Model/Item/FitSuiteItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitSuiteItem.cpp
+//! @file      GUI/Model/Item/FitSuiteItem.cpp
 //! @brief     Implements class FitSuiteItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
-#include "GUI/Model/Fit/MinimizerItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
+#include "GUI/Model/Item/MinimizerItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/Error.h"
 
 FitSuiteItem::FitSuiteItem()
diff --git a/GUI/Model/Fit/FitSuiteItem.h b/GUI/Model/Item/FitSuiteItem.h
similarity index 87%
rename from GUI/Model/Fit/FitSuiteItem.h
rename to GUI/Model/Item/FitSuiteItem.h
index ebd8f58ff127e28f05e7c5e9defee3bdea5a370a..1c703e7169b2afe677e3c6fcdd744963cca0cc7c 100644
--- a/GUI/Model/Fit/FitSuiteItem.h
+++ b/GUI/Model/Item/FitSuiteItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitSuiteItem.h
+//! @file      GUI/Model/Item/FitSuiteItem.h
 //! @brief     Defines class FitSuiteItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_FITSUITEITEM_H
-#define BORNAGAIN_GUI_MODEL_FIT_FITSUITEITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_FITSUITEITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_FITSUITEITEM_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class FitParameterContainerItem;
 class MinimizerContainerItem;
@@ -51,4 +51,4 @@ public:
     void setChi2(double chi2);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_FITSUITEITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_FITSUITEITEM_H
diff --git a/GUI/Model/Instrument/FootprintItems.cpp b/GUI/Model/Item/FootprintItems.cpp
similarity index 96%
rename from GUI/Model/Instrument/FootprintItems.cpp
rename to GUI/Model/Item/FootprintItems.cpp
index 7e081e17574a0e72e662c8483271ff576513ff16..9c9df968708e35519f0c18f6904e29f119462116 100644
--- a/GUI/Model/Instrument/FootprintItems.cpp
+++ b/GUI/Model/Item/FootprintItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/FootprintItems.cpp
+//! @file      GUI/Model/Item/FootprintItems.cpp
 //! @brief     Implements FootprintItem classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/FootprintItems.h"
+#include "GUI/Model/Item/FootprintItems.h"
 #include "Device/Beam/FootprintGauss.h"
 #include "Device/Beam/FootprintSquare.h"
 
diff --git a/GUI/Model/Instrument/FootprintItems.h b/GUI/Model/Item/FootprintItems.h
similarity index 87%
rename from GUI/Model/Instrument/FootprintItems.h
rename to GUI/Model/Item/FootprintItems.h
index a847eee16e7270b6d485a6c4de8c7944a125c58b..5062493bfd88b7ee9a4dcce407bae8ff1d76f158 100644
--- a/GUI/Model/Instrument/FootprintItems.h
+++ b/GUI/Model/Item/FootprintItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/FootprintItems.h
+//! @file      GUI/Model/Item/FootprintItems.h
 //! @brief     Declares FootprintItem classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_FOOTPRINTITEMS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_FOOTPRINTITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_FOOTPRINTITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_FOOTPRINTITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class IFootprintFactor;
 
@@ -65,4 +65,4 @@ public:
     void setSquareFootprintValue(double value);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_FOOTPRINTITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_FOOTPRINTITEMS_H
diff --git a/GUI/Model/Sample/FormFactorItems.cpp b/GUI/Model/Item/FormFactorItems.cpp
similarity index 99%
rename from GUI/Model/Sample/FormFactorItems.cpp
rename to GUI/Model/Item/FormFactorItems.cpp
index 7cca6555bed78ad73791ebacbfce229393d9e388..f91b8a207118a721928a3a1651103f933c936b0a 100644
--- a/GUI/Model/Sample/FormFactorItems.cpp
+++ b/GUI/Model/Item/FormFactorItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FormFactorItems.cpp
+//! @file      GUI/Model/Item/FormFactorItems.cpp
 //! @brief     Implements FormFactorItems classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Item/FormFactorItems.h"
 #include "Base/Const/Units.h"
 #include "Sample/HardParticle/HardParticles.h"
 
diff --git a/GUI/Model/Sample/FormFactorItems.h b/GUI/Model/Item/FormFactorItems.h
similarity index 98%
rename from GUI/Model/Sample/FormFactorItems.h
rename to GUI/Model/Item/FormFactorItems.h
index ca5564d79803b43570c03ed3114bf14b73895764..60390c6691932038702f9914ce3e757c3c7e8255 100644
--- a/GUI/Model/Sample/FormFactorItems.h
+++ b/GUI/Model/Item/FormFactorItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FormFactorItems.h
+//! @file      GUI/Model/Item/FormFactorItems.h
 //! @brief     Defines FormFactorItems classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_FORMFACTORITEMS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_FORMFACTORITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_FORMFACTORITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_FORMFACTORITEMS_H
 
 #include "GUI/Model/Types/DoubleProperty.h"
 #include "GUI/Model/XML/Serializer.h"
@@ -466,4 +466,4 @@ public:
     }
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_FORMFACTORITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_FORMFACTORITEMS_H
diff --git a/GUI/Model/Instrument/InstrumentItems.cpp b/GUI/Model/Item/InstrumentItems.cpp
similarity index 97%
rename from GUI/Model/Instrument/InstrumentItems.cpp
rename to GUI/Model/Item/InstrumentItems.cpp
index 39f7b3e3f167af1cde7d89eb27e1a36eef6ccd39..eb5144414e043154b6835c3db7f2ba9bc4df1904 100644
--- a/GUI/Model/Instrument/InstrumentItems.cpp
+++ b/GUI/Model/Item/InstrumentItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/InstrumentItems.cpp
+//! @file      GUI/Model/Item/InstrumentItems.cpp
 //! @brief     Implement class InstrumentItem and all its children
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "Base/Const/Units.h"
 #include "Base/Pixel/RectangularPixel.h"
 #include "Core/Simulation/DepthProbeSimulation.h"
@@ -21,15 +21,15 @@
 #include "Device/Coord/CoordSystem2D.h"
 #include "Device/Detector/RectangularDetector.h"
 #include "Device/Detector/SphericalDetector.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Instrument/BackgroundItems.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
-#include "GUI/Model/Instrument/DetectorItems.h"
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
-#include "GUI/Model/Instrument/SphericalDetectorItem.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/BackgroundItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
+#include "GUI/Model/Item/DetectorItems.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
+#include "GUI/Model/Item/SphericalDetectorItem.h"
+#include "GUI/Model/Item/VectorItem.h"
 #include "GUI/Support/IO/ItemFileNameUtils.h"
 #include "GUI/Util/CoordName.h"
 #include "GUI/Util/Error.h"
diff --git a/GUI/Model/Instrument/InstrumentItems.h b/GUI/Model/Item/InstrumentItems.h
similarity index 95%
rename from GUI/Model/Instrument/InstrumentItems.h
rename to GUI/Model/Item/InstrumentItems.h
index c09e1d0c00a98affe8a12739f5266c6738f1a7b0..ed2b3272d0ebfb321c90672fc365ad7dae2d467e 100644
--- a/GUI/Model/Instrument/InstrumentItems.h
+++ b/GUI/Model/Item/InstrumentItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/InstrumentItems.h
+//! @file      GUI/Model/Item/InstrumentItems.h
 //! @brief     Defines class InstrumentItem and all its children
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTITEMS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_INSTRUMENTITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_INSTRUMENTITEMS_H
 
-#include "GUI/Model/Instrument/BeamItems.h" // inheritance prevents forward declaration
+#include "GUI/Model/Item/BeamItems.h" // inheritance prevents forward declaration
 
 class BackgroundItem;
 class DataItem;
@@ -210,4 +210,4 @@ template <typename T> T* Instrument2DItem::setDetectorType()
     return setGroupPropertyType<T>(P_DETECTOR);
 }
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_INSTRUMENTITEMS_H
diff --git a/GUI/Model/Data/IntensityDataItem.cpp b/GUI/Model/Item/IntensityDataItem.cpp
similarity index 97%
rename from GUI/Model/Data/IntensityDataItem.cpp
rename to GUI/Model/Item/IntensityDataItem.cpp
index c4ec7fcc66c3789a15e95c0d7f659517796b9fda..6df0ee3068b2591fef91a4539eff412264aafe1f 100644
--- a/GUI/Model/Data/IntensityDataItem.cpp
+++ b/GUI/Model/Item/IntensityDataItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Data/IntensityDataItem.cpp
+//! @file      GUI/Model/Item/IntensityDataItem.cpp
 //! @brief     Implements class IntensityDataItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/MaskUnitsConverter.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/JobItemUtils.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/MaskUnitsConverter.h"
+#include "GUI/Model/Item/ProjectionItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Support/IO/ImportDataInfo.h"
 #include "GUI/Util/Error.h"
 
diff --git a/GUI/Model/Data/IntensityDataItem.h b/GUI/Model/Item/IntensityDataItem.h
similarity index 94%
rename from GUI/Model/Data/IntensityDataItem.h
rename to GUI/Model/Item/IntensityDataItem.h
index 58589b159c7153a165fc04e476c66a1aabf3bb1f..d32c2cab671bda8d660ecaac515ebf647a98a068 100644
--- a/GUI/Model/Data/IntensityDataItem.h
+++ b/GUI/Model/Item/IntensityDataItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Data/IntensityDataItem.h
+//! @file      GUI/Model/Item/IntensityDataItem.h
 //! @brief     Defines class IntensityDataItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_DATA_INTENSITYDATAITEM_H
-#define BORNAGAIN_GUI_MODEL_DATA_INTENSITYDATAITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_INTENSITYDATAITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_INTENSITYDATAITEM_H
 
 #include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/DataItem.h"
 
 class BasicAxisItem;
 class AmplitudeAxisItem;
@@ -137,4 +137,4 @@ private:
     void updateAxesLabels();
 };
 
-#endif // BORNAGAIN_GUI_MODEL_DATA_INTENSITYDATAITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_INTENSITYDATAITEM_H
diff --git a/GUI/Model/Sample/InterferenceItems.cpp b/GUI/Model/Item/InterferenceItems.cpp
similarity index 96%
rename from GUI/Model/Sample/InterferenceItems.cpp
rename to GUI/Model/Item/InterferenceItems.cpp
index cefff4a5c8d6e05b1c41041741710c36aa016e60..dfe0026e93a1c2152679bcb5e83f7bee8c6c5268 100644
--- a/GUI/Model/Sample/InterferenceItems.cpp
+++ b/GUI/Model/Item/InterferenceItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/InterferenceItems.cpp
+//! @file      GUI/Model/Item/InterferenceItems.cpp
 //! @brief     Implements InterferenceItems's classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,14 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/InterferenceItems.h"
+#include "GUI/Model/Item/InterferenceItems.h"
 #include "Base/Const/Units.h"
-#include "GUI/Model/Sample/FTDecayFunctionItemCatalogs.h"
-#include "GUI/Model/Sample/FTDecayFunctionItems.h"
-#include "GUI/Model/Sample/FTDistributionItemCatalogs.h"
-#include "GUI/Model/Sample/FTDistributionItems.h"
-#include "GUI/Model/Sample/Lattice2DItemCatalog.h"
-#include "GUI/Model/Sample/Lattice2DItems.h"
+#include "GUI/Model/Item/FTDecayFunctionItems.h"
+#include "GUI/Model/Item/FTDistributionItems.h"
+#include "GUI/Model/Item/Lattice2DItems.h"
+#include "GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FTDistributionItemCatalogs.h"
+#include "GUI/Model/MakeItem/Lattice2DItemCatalog.h"
 #include "GUI/Model/Types/UIntDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "Sample/Aggregate/Interferences.h"
diff --git a/GUI/Model/Sample/InterferenceItems.h b/GUI/Model/Item/InterferenceItems.h
similarity index 94%
rename from GUI/Model/Sample/InterferenceItems.h
rename to GUI/Model/Item/InterferenceItems.h
index 8fe2b492bd43629d812c9209a9bc24577b2420e3..a9594620cbe4883c360cca45d8e0e9125265058b 100644
--- a/GUI/Model/Sample/InterferenceItems.h
+++ b/GUI/Model/Item/InterferenceItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/InterferenceItems.h
+//! @file      GUI/Model/Item/InterferenceItems.h
 //! @brief     Defines InterferenceItems's classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_INTERFERENCEITEMS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_INTERFERENCEITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_INTERFERENCEITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_INTERFERENCEITEMS_H
 
 #include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Sample/FTDecayFunctionItems.h"
-#include "GUI/Model/Sample/FTDistributionItems.h"
-#include "GUI/Model/Sample/Lattice2DItems.h"
+#include "GUI/Model/Item/FTDecayFunctionItems.h"
+#include "GUI/Model/Item/FTDistributionItems.h"
+#include "GUI/Model/Item/Lattice2DItems.h"
 #include "GUI/Model/Types/DoubleProperty.h"
 #include "GUI/Model/Types/UIntProperty.h"
 #include <memory>
@@ -180,4 +180,4 @@ private:
     SelectionProperty<FTDistribution1DItem*> m_pdf;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_INTERFERENCEITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_INTERFERENCEITEMS_H
diff --git a/GUI/Model/Instrument/ItemWithDistribution.h b/GUI/Model/Item/ItemWithDistribution.h
similarity index 79%
rename from GUI/Model/Instrument/ItemWithDistribution.h
rename to GUI/Model/Item/ItemWithDistribution.h
index dda91e4fbbd16afe6797ed9096464ec00520a937..2e5f09967e8501d4cbbdbd900b48aed407278b20 100644
--- a/GUI/Model/Instrument/ItemWithDistribution.h
+++ b/GUI/Model/Item/ItemWithDistribution.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/ItemWithDistribution.h
+//! @file      GUI/Model/Item/ItemWithDistribution.h
 //! @brief     Defines abstract item with a distribution
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_ITEMWITHDISTRIBUTION_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_ITEMWITHDISTRIBUTION_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHDISTRIBUTION_H
+#define BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHDISTRIBUTION_H
 
 #include "Wrap/WinDllMacros.h"
 
@@ -32,4 +32,4 @@ public:
     virtual ~ItemWithDistribution() = default;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_ITEMWITHDISTRIBUTION_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHDISTRIBUTION_H
diff --git a/GUI/Model/Sample/ItemWithMaterial.cpp b/GUI/Model/Item/ItemWithMaterial.cpp
similarity index 89%
rename from GUI/Model/Sample/ItemWithMaterial.cpp
rename to GUI/Model/Item/ItemWithMaterial.cpp
index b6781af985da214311bcf67dfbd953de43a14fbc..3d51a02f084eb8075127dd2e725ed72a24986194 100644
--- a/GUI/Model/Sample/ItemWithMaterial.cpp
+++ b/GUI/Model/Item/ItemWithMaterial.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ItemWithMaterial.cpp
+//! @file      GUI/Model/Item/ItemWithMaterial.cpp
 //! @brief     Implements class ItemWithMaterial
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/ItemWithMaterial.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 
 void ItemWithMaterial::setMaterial(const MaterialItem* materialItem)
 {
diff --git a/GUI/Model/Sample/ItemWithMaterial.h b/GUI/Model/Item/ItemWithMaterial.h
similarity index 87%
rename from GUI/Model/Sample/ItemWithMaterial.h
rename to GUI/Model/Item/ItemWithMaterial.h
index 78739704b2c5ce6affbb686a242a72ca3b47ccae..d14d144f903174dcf2bd1b6c427e4e9737678887 100644
--- a/GUI/Model/Sample/ItemWithMaterial.h
+++ b/GUI/Model/Item/ItemWithMaterial.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ItemWithMaterial.h
+//! @file      GUI/Model/Item/ItemWithMaterial.h
 //! @brief     Defines abstract item with a material property
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHMATERIAL_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHMATERIAL_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHMATERIAL_H
+#define BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHMATERIAL_H
 
 #include <QString>
 #include <functional>
@@ -51,4 +51,4 @@ protected:
     QString m_materialIdentifier;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHMATERIAL_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHMATERIAL_H
diff --git a/GUI/Model/Sample/ItemWithParticles.cpp b/GUI/Model/Item/ItemWithParticles.cpp
similarity index 92%
rename from GUI/Model/Sample/ItemWithParticles.cpp
rename to GUI/Model/Item/ItemWithParticles.cpp
index 06d752d277a6e7bff36991da2e056e5d03726fb3..3f8bb5727864b8b6be15fb5f90709eeb265e427c 100644
--- a/GUI/Model/Sample/ItemWithParticles.cpp
+++ b/GUI/Model/Item/ItemWithParticles.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ItemWithParticles.cpp
+//! @file      GUI/Model/Item/ItemWithParticles.cpp
 //! @brief     Implements class ItemWithParticles
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/ItemWithParticles.h"
+#include "GUI/Model/Item/ItemWithParticles.h"
 #include "Base/Vector/RotMatrix.h"
-#include "GUI/Model/Sample/RotationItemCatalog.h"
+#include "GUI/Model/MakeItem/RotationItemCatalog.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "Sample/Particle/IParticle.h"
 #include "Sample/Scattering/Rotations.h"
diff --git a/GUI/Model/Sample/ItemWithParticles.h b/GUI/Model/Item/ItemWithParticles.h
similarity index 87%
rename from GUI/Model/Sample/ItemWithParticles.h
rename to GUI/Model/Item/ItemWithParticles.h
index 3dd5fa542752b73ff35bc6b19e1411cc60e06cde..880c0aa975de595d51e23ac691d5e884140cdc59 100644
--- a/GUI/Model/Sample/ItemWithParticles.h
+++ b/GUI/Model/Item/ItemWithParticles.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ItemWithParticles.h
+//! @file      GUI/Model/Item/ItemWithParticles.h
 //! @brief     Defines abstract item with a material property
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHPARTICLES_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHPARTICLES_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHPARTICLES_H
+#define BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHPARTICLES_H
 
 #include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Sample/RotationItems.h"
+#include "GUI/Model/Item/RotationItems.h"
 #include "GUI/Model/Types/DoubleProperty.h"
 #include "GUI/Model/Types/VectorProperty.h"
 #include <memory>
@@ -60,4 +60,4 @@ protected:
     SelectionProperty<RotationItem*> m_rotation;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHPARTICLES_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_ITEMWITHPARTICLES_H
diff --git a/GUI/Model/Project/JobModelFunctions.cpp b/GUI/Model/Item/JobFunctions.cpp
similarity index 92%
rename from GUI/Model/Project/JobModelFunctions.cpp
rename to GUI/Model/Item/JobFunctions.cpp
index d4cd9af2cbeabd0087071a046baedf425ceb1df7..900c1a62fa26ed766493ec68aba87c3db0b1958a 100644
--- a/GUI/Model/Project/JobModelFunctions.cpp
+++ b/GUI/Model/Item/JobFunctions.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/JobModelFunctions.cpp
+//! @file      GUI/Model/Item/JobFunctions.cpp
 //! @brief     Implements auxiliary functions in JobModelFunctions namespace.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,22 +12,22 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Project/JobModelFunctions.h"
+#include "GUI/Model/Item/JobFunctions.h"
 #include "Base/Util/Assert.h"
 #include "Device/Instrument/Instrument.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Fit/MinimizerItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Plot/Data1DViewItem.h"
-#include "GUI/Model/Plot/DataPropertyContainer.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/DataPropertyContainer.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/JobItemUtils.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/MinimizerItem.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Support/IO/ItemFileNameUtils.h"
 #include "GUI/Util/Error.h"
 #include "GUI/Util/Path.h"
diff --git a/GUI/Model/Project/JobModelFunctions.h b/GUI/Model/Item/JobFunctions.h
similarity index 87%
rename from GUI/Model/Project/JobModelFunctions.h
rename to GUI/Model/Item/JobFunctions.h
index 010467c7bb893087de3cc9443b08a322ad063393..b3ae5046651a81b559a9dec7b97ce8d720feeb5a 100644
--- a/GUI/Model/Project/JobModelFunctions.h
+++ b/GUI/Model/Item/JobFunctions.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/JobModelFunctions.h
+//! @file      GUI/Model/Item/JobFunctions.h
 //! @brief     Defines auxiliary functions in namespace GUI::Model::JobModelFunctions.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PROJECT_JOBMODELFUNCTIONS_H
-#define BORNAGAIN_GUI_MODEL_PROJECT_JOBMODELFUNCTIONS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_JOBFUNCTIONS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_JOBFUNCTIONS_H
 
 class InstrumentItem;
 class JobItem;
@@ -44,4 +44,4 @@ void copyRealDataItem(JobItem* jobItem, const RealDataItem* realDataItem);
 
 } // namespace GUI::Model::JobFunctions
 
-#endif // BORNAGAIN_GUI_MODEL_PROJECT_JOBMODELFUNCTIONS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_JOBFUNCTIONS_H
diff --git a/GUI/Model/Fit/JobItem.cpp b/GUI/Model/Item/JobItem.cpp
similarity index 96%
rename from GUI/Model/Fit/JobItem.cpp
rename to GUI/Model/Item/JobItem.cpp
index 2469897a1993f582a0e1cc1f8d22042905c9dcc4..558690711ed3a04f157f98354457c41f97cdc1af 100644
--- a/GUI/Model/Fit/JobItem.cpp
+++ b/GUI/Model/Item/JobItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/JobItem.cpp
+//! @file      GUI/Model/Item/JobItem.cpp
 //! @brief     Implements class JobItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,17 +12,16 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
-#include "GUI/Model/Plot/Data1DViewItem.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Item/JobItemUtils.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Support/Data/XML.h"
 #include "GUI/Support/IO/ItemFileNameUtils.h"
 #include "GUI/Util/DeserializationException.h"
diff --git a/GUI/Model/Fit/JobItem.h b/GUI/Model/Item/JobItem.h
similarity index 91%
rename from GUI/Model/Fit/JobItem.h
rename to GUI/Model/Item/JobItem.h
index 639b309a0d96c36a3069b7a50920e7dc14094abf..1d3418bda7ea2c58864b2cd5fc73aa5d81a1999c 100644
--- a/GUI/Model/Fit/JobItem.h
+++ b/GUI/Model/Item/JobItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/JobItem.h
+//! @file      GUI/Model/Item/JobItem.h
 //! @brief     Defines class JobItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,15 +12,15 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_JOBITEM_H
-#define BORNAGAIN_GUI_MODEL_FIT_JOBITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_JOBITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_JOBITEM_H
 
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Session/SessionItem.h"
-#include "GUI/Model/Session/SessionModel.h" // call to model() from templated fct
-#include "GUI/Support/Data/JobStatus.h"     // enum cannot be forward declared
+#include "GUI/Model/BaseItem/SessionItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Model/MaterialModel.h"
+#include "GUI/Model/Model/SessionModel.h" // call to model() from templated fct
+#include "GUI/Support/Data/JobStatus.h"   // enum cannot be forward declared
 #include "GUI/Support/Data/SimulationOptionsItem.h"
 #include <QDateTime>
 #include <optional>
@@ -164,4 +164,4 @@ template <typename T> T* JobItem::setDataType()
     return model()->insertItem<T>(this, -1, T_OUTPUT);
 }
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_JOBITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_JOBITEM_H
diff --git a/GUI/Model/Instrument/JobItemUtils.cpp b/GUI/Model/Item/JobItemUtils.cpp
similarity index 95%
rename from GUI/Model/Instrument/JobItemUtils.cpp
rename to GUI/Model/Item/JobItemUtils.cpp
index 7376915d40f2d6264029d62d2252064712301295..7cfcd6d91b7f2a9c6cd07e5523ff4b51cdea4469 100644
--- a/GUI/Model/Instrument/JobItemUtils.cpp
+++ b/GUI/Model/Item/JobItemUtils.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/JobItemUtils.cpp
+//! @file      GUI/Model/Item/JobItemUtils.cpp
 //! @brief     Implements class JobItemUtils
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/JobItemUtils.h"
+#include "GUI/Model/Item/JobItemUtils.h"
 #include "Core/Simulation/ISimulation.h"
 #include "Device/Histo/SimulationResult.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/Util/CoordName.h"
 
 namespace {
diff --git a/GUI/Model/Instrument/JobItemUtils.h b/GUI/Model/Item/JobItemUtils.h
similarity index 88%
rename from GUI/Model/Instrument/JobItemUtils.h
rename to GUI/Model/Item/JobItemUtils.h
index 2336bc3dbfb7bf17d94c02d0872bd9af5e4adb9d..caa4ceb47e7c604246c8c5f2fe102090e1037ec6 100644
--- a/GUI/Model/Instrument/JobItemUtils.h
+++ b/GUI/Model/Item/JobItemUtils.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/JobItemUtils.h
+//! @file      GUI/Model/Item/JobItemUtils.h
 //! @brief     Defines namespace GUI::Model::JobItemUtils
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_JOBITEMUTILS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_JOBITEMUTILS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_JOBITEMUTILS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_JOBITEMUTILS_H
 
 #include "Device/Detector/IDetector.h"
 #include "GUI/Util/ComboProperty.h"
@@ -46,4 +46,4 @@ ComboProperty availableUnits(const ICoordSystem& converter);
 
 } // namespace GUI::Model::JobItemUtils
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_JOBITEMUTILS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_JOBITEMUTILS_H
diff --git a/GUI/Model/Sample/Lattice2DItems.cpp b/GUI/Model/Item/Lattice2DItems.cpp
similarity index 97%
rename from GUI/Model/Sample/Lattice2DItems.cpp
rename to GUI/Model/Item/Lattice2DItems.cpp
index 9e3d374b14a83957bf3482df472a1b6f028e95d0..15a7633b8e67f59585fe7f087afc25fedc395e4a 100644
--- a/GUI/Model/Sample/Lattice2DItems.cpp
+++ b/GUI/Model/Item/Lattice2DItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/Lattice2DItems.cpp
+//! @file      GUI/Model/Item/Lattice2DItems.cpp
 //! @brief     Implements classes Lattice2DItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/Lattice2DItems.h"
+#include "GUI/Model/Item/Lattice2DItems.h"
 #include "Base/Const/Units.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/XML/Serializer.h"
diff --git a/GUI/Model/Sample/Lattice2DItems.h b/GUI/Model/Item/Lattice2DItems.h
similarity index 94%
rename from GUI/Model/Sample/Lattice2DItems.h
rename to GUI/Model/Item/Lattice2DItems.h
index 02627dc2c15d2146fb6d7f1ee4664405eac7ec18..14aa150e6a1b17d4ec2d8216a61622eb1277e80d 100644
--- a/GUI/Model/Sample/Lattice2DItems.h
+++ b/GUI/Model/Item/Lattice2DItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/Lattice2DItems.h
+//! @file      GUI/Model/Item/Lattice2DItems.h
 //! @brief     Defines classes Lattice2DItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_LATTICE2DITEMS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_LATTICE2DITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_LATTICE2DITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_LATTICE2DITEMS_H
 
 #include "GUI/Model/Types/DoubleProperty.h"
 #include <QVector>
@@ -112,4 +112,4 @@ private:
     DoubleProperty m_length;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_LATTICE2DITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_LATTICE2DITEMS_H
diff --git a/GUI/Model/Sample/LayerItem.cpp b/GUI/Model/Item/LayerItem.cpp
similarity index 92%
rename from GUI/Model/Sample/LayerItem.cpp
rename to GUI/Model/Item/LayerItem.cpp
index 0e623a05b8fe7033788079193745dee2fdd16bf8..d0502c471d1ed3cef857375c6dce1f32d6b68061 100644
--- a/GUI/Model/Sample/LayerItem.cpp
+++ b/GUI/Model/Item/LayerItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/LayerItem.cpp
+//! @file      GUI/Model/Item/LayerItem.cpp
 //! @brief     Implements class LayerItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
 #include <QColor>
 
 namespace {
diff --git a/GUI/Model/Sample/LayerItem.h b/GUI/Model/Item/LayerItem.h
similarity index 87%
rename from GUI/Model/Sample/LayerItem.h
rename to GUI/Model/Item/LayerItem.h
index f00cfb2f0b233a24ae478dedf89d62bd1c84d618..5d21ba10e3c3bde38cb679766e7c9512f75ad6da 100644
--- a/GUI/Model/Sample/LayerItem.h
+++ b/GUI/Model/Item/LayerItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/LayerItem.h
+//! @file      GUI/Model/Item/LayerItem.h
 //! @brief     Defines class LayerItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_LAYERITEM_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_LAYERITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_LAYERITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_LAYERITEM_H
 
 #include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/Sample/LayerRoughnessItems.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 <QColor>
@@ -77,4 +77,4 @@ private:
     std::unique_ptr<LayerBasicRoughnessItem> m_topRoughness;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_LAYERITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_LAYERITEM_H
diff --git a/GUI/Model/Sample/LayerRoughnessItems.cpp b/GUI/Model/Item/LayerRoughnessItems.cpp
similarity index 92%
rename from GUI/Model/Sample/LayerRoughnessItems.cpp
rename to GUI/Model/Item/LayerRoughnessItems.cpp
index f3872eb796ed6bca1e81d5927b7307b7c1bd8602..fcfb6fe7ecb2d5b85a5518151bb2dbe4080e52cc 100644
--- a/GUI/Model/Sample/LayerRoughnessItems.cpp
+++ b/GUI/Model/Item/LayerRoughnessItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/LayerRoughnessItems.cpp
+//! @file      GUI/Model/Item/LayerRoughnessItems.cpp
 //! @brief     Implements classes LayerRoughnessItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/LayerRoughnessItems.h"
+#include "GUI/Model/Item/LayerRoughnessItems.h"
 
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
-#include "GUI/Model/XML/SessionXML.h"
 
 using namespace GUI::Session::XML;
 
diff --git a/GUI/Model/Sample/LayerRoughnessItems.h b/GUI/Model/Item/LayerRoughnessItems.h
similarity index 81%
rename from GUI/Model/Sample/LayerRoughnessItems.h
rename to GUI/Model/Item/LayerRoughnessItems.h
index 27ae8b80c4fbac313f727dbaa02a635278f37f19..462d7ad6b694e05f791e1cc439465ab732b3af0f 100644
--- a/GUI/Model/Sample/LayerRoughnessItems.h
+++ b/GUI/Model/Item/LayerRoughnessItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/LayerRoughnessItems.h
+//! @file      GUI/Model/Item/LayerRoughnessItems.h
 //! @brief     Defines classes LayerRoughnessItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_LAYERROUGHNESSITEMS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_LAYERROUGHNESSITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_LAYERROUGHNESSITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_LAYERROUGHNESSITEMS_H
 
 #include "GUI/Model/Types/DoubleProperty.h"
 
@@ -36,4 +36,4 @@ private:
     DoubleProperty m_lateralCorrelationLength;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_LAYERROUGHNESSITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_LAYERROUGHNESSITEMS_H
diff --git a/GUI/Model/Mask/MaskItems.cpp b/GUI/Model/Item/MaskItems.cpp
similarity index 98%
rename from GUI/Model/Mask/MaskItems.cpp
rename to GUI/Model/Item/MaskItems.cpp
index 7447af9200e7b7801500a490bad6467a6bd40b0a..9f559ae02ac4501bdd82d14d30f969e6a4a9257c 100644
--- a/GUI/Model/Mask/MaskItems.cpp
+++ b/GUI/Model/Item/MaskItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Mask/MaskItems.cpp
+//! @file      GUI/Model/Item/MaskItems.cpp
 //! @brief     Implements MaskItems classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include "Device/Mask/Ellipse.h"
 #include "Device/Mask/InfinitePlane.h"
 #include "Device/Mask/Line.h"
 #include "Device/Mask/Polygon.h"
 #include "Device/Mask/Rectangle.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/Util/Error.h"
 
diff --git a/GUI/Model/Mask/MaskItems.h b/GUI/Model/Item/MaskItems.h
similarity index 95%
rename from GUI/Model/Mask/MaskItems.h
rename to GUI/Model/Item/MaskItems.h
index 506685b32edc698bdcffa02a378ff7b1cd65793b..7f70ddbb11dd57e3012384452379968acb9b05d3 100644
--- a/GUI/Model/Mask/MaskItems.h
+++ b/GUI/Model/Item/MaskItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Mask/MaskItems.h
+//! @file      GUI/Model/Item/MaskItems.h
 //! @brief     Defines MaskItems classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_MASK_MASKITEMS_H
-#define BORNAGAIN_GUI_MODEL_MASK_MASKITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_MASKITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_MASKITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 
 class IShape2D;
@@ -199,4 +199,4 @@ public:
     void clear();
 };
 
-#endif // BORNAGAIN_GUI_MODEL_MASK_MASKITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_MASKITEMS_H
diff --git a/GUI/Model/Mask/MaskUnitsConverter.cpp b/GUI/Model/Item/MaskUnitsConverter.cpp
similarity index 95%
rename from GUI/Model/Mask/MaskUnitsConverter.cpp
rename to GUI/Model/Item/MaskUnitsConverter.cpp
index 53bbcd9a3beea0c6908f6e206ef1a9124e5b5eb9..c2725c72e8904c6597aa0ba8baa3d49f3465396f 100644
--- a/GUI/Model/Mask/MaskUnitsConverter.cpp
+++ b/GUI/Model/Item/MaskUnitsConverter.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Mask/MaskUnitsConverter.cpp
+//! @file      GUI/Model/Item/MaskUnitsConverter.cpp
 //! @brief     Implements class MaskUnitsConverter
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Mask/MaskUnitsConverter.h"
+#include "GUI/Model/Item/MaskUnitsConverter.h"
 #include "Device/Data/DataUtils.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/ProjectionItems.h"
 
 #include <boost/polymorphic_cast.hpp>
 
diff --git a/GUI/Model/Mask/MaskUnitsConverter.h b/GUI/Model/Item/MaskUnitsConverter.h
similarity index 88%
rename from GUI/Model/Mask/MaskUnitsConverter.h
rename to GUI/Model/Item/MaskUnitsConverter.h
index 7b22393a0ad8502de09d4fc6e52774b5ce18d623..296fd1a2693a09bb832adbaf9a239389935c6cc6 100644
--- a/GUI/Model/Mask/MaskUnitsConverter.h
+++ b/GUI/Model/Item/MaskUnitsConverter.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Mask/MaskUnitsConverter.h
+//! @file      GUI/Model/Item/MaskUnitsConverter.h
 //! @brief     Defines class MaskUnitsConverter
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_MASK_MASKUNITSCONVERTER_H
-#define BORNAGAIN_GUI_MODEL_MASK_MASKUNITSCONVERTER_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_MASKUNITSCONVERTER_H
+#define BORNAGAIN_GUI_MODEL_ITEM_MASKUNITSCONVERTER_H
 
 class IntensityDataItem;
 class SessionItem;
@@ -51,4 +51,4 @@ private:
     EConvertionDirection m_direction;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_MASK_MASKUNITSCONVERTER_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_MASKUNITSCONVERTER_H
diff --git a/GUI/Model/Material/MaterialItem.cpp b/GUI/Model/Item/MaterialItem.cpp
similarity index 98%
rename from GUI/Model/Material/MaterialItem.cpp
rename to GUI/Model/Item/MaterialItem.cpp
index 63be35c3fad64f7c1f87209bab8e90ba034be7d6..30b8ee009c1c6829b1f806cfd2ce9c64f3d20d73 100644
--- a/GUI/Model/Material/MaterialItem.cpp
+++ b/GUI/Model/Item/MaterialItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Material/MaterialItem.cpp
+//! @file      GUI/Model/Item/MaterialItem.cpp
 //! @brief     Implements class MaterialItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Material/MaterialItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Types/VectorDescriptor.h"
 #include "GUI/Support/Data/XML.h"
diff --git a/GUI/Model/Material/MaterialItem.h b/GUI/Model/Item/MaterialItem.h
similarity index 94%
rename from GUI/Model/Material/MaterialItem.h
rename to GUI/Model/Item/MaterialItem.h
index 0e7f98910f36d21ecd1be7eaa0defbb1368ffb8e..372d06ce62baf65fef1c0b03abcfce6fd1b23ccb 100644
--- a/GUI/Model/Material/MaterialItem.h
+++ b/GUI/Model/Item/MaterialItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Material/MaterialItem.h
+//! @file      GUI/Model/Item/MaterialItem.h
 //! @brief     Defines class MaterialItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_MATERIAL_MATERIALITEM_H
-#define BORNAGAIN_GUI_MODEL_MATERIAL_MATERIALITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_MATERIALITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_MATERIALITEM_H
 
 #include <QColor>
 #include <QObject>
@@ -118,4 +118,4 @@ private:
     R3 m_magnetization;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_MATERIAL_MATERIALITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_MATERIALITEM_H
diff --git a/GUI/Model/Sample/MesoCrystalItem.cpp b/GUI/Model/Item/MesoCrystalItem.cpp
similarity index 91%
rename from GUI/Model/Sample/MesoCrystalItem.cpp
rename to GUI/Model/Item/MesoCrystalItem.cpp
index 76b29f3e607e4a5815de90f57111e06ec55b4825..f58cf465186440410dad32d0ffcddfd587bba06b 100644
--- a/GUI/Model/Sample/MesoCrystalItem.cpp
+++ b/GUI/Model/Item/MesoCrystalItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/MesoCrystalItem.cpp
+//! @file      GUI/Model/Item/MesoCrystalItem.cpp
 //! @brief     Implements class MesoCrystalItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,14 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/RotationItemCatalog.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/RotationItemCatalog.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "GUI/Util/Error.h"
 #include "Sample/Particle/Crystal.h"
diff --git a/GUI/Model/Sample/MesoCrystalItem.h b/GUI/Model/Item/MesoCrystalItem.h
similarity index 86%
rename from GUI/Model/Sample/MesoCrystalItem.h
rename to GUI/Model/Item/MesoCrystalItem.h
index 2273f7beead8f5efd9ebcc2336213751eb491bd8..a13b229f83d7ad4993fe984ee342d5d18f6b2728 100644
--- a/GUI/Model/Sample/MesoCrystalItem.h
+++ b/GUI/Model/Item/MesoCrystalItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/MesoCrystalItem.h
+//! @file      GUI/Model/Item/MesoCrystalItem.h
 //! @brief     Defines class MesoCrystalItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_MESOCRYSTALITEM_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_MESOCRYSTALITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_MESOCRYSTALITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_MESOCRYSTALITEM_H
 
 #include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/ItemWithParticles.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/ItemWithParticles.h"
 #include "GUI/Model/Types/VectorProperty.h"
 #include "Sample/Lattice/Lattice3D.h"
 #include <memory>
@@ -70,4 +70,4 @@ template <typename T> T* MesoCrystalItem::setOuterShapeType()
     return p;
 }
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_MESOCRYSTALITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_MESOCRYSTALITEM_H
diff --git a/GUI/Model/Fit/MinimizerItem.cpp b/GUI/Model/Item/MinimizerItem.cpp
similarity index 98%
rename from GUI/Model/Fit/MinimizerItem.cpp
rename to GUI/Model/Item/MinimizerItem.cpp
index 1a590e7ecc3326bac2430e03af76591320e76cd0..99a48f21c7ff05b8e1b23d9d973b5afeee156f57 100644
--- a/GUI/Model/Fit/MinimizerItem.cpp
+++ b/GUI/Model/Item/MinimizerItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/MinimizerItem.cpp
+//! @file      GUI/Model/Item/MinimizerItem.cpp
 //! @brief     Implements MinimizerItem class
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/MinimizerItem.h"
+#include "GUI/Model/Item/MinimizerItem.h"
 #include "Core/Fitting/ObjectiveMetric.h"
 #include "Core/Fitting/ObjectiveMetricUtils.h"
 #include "Fit/Adapter/GSLLevenbergMarquardtMinimizer.h"
@@ -20,7 +20,7 @@
 #include "Fit/Adapter/GeneticMinimizer.h"
 #include "Fit/Adapter/Minuit2Minimizer.h"
 #include "Fit/Adapter/SimAnMinimizer.h"
-#include "GUI/Model/Fit/MinimizerItemCatalog.h"
+#include "GUI/Model/MakeItem/MinimizerItemCatalog.h"
 
 namespace {
 
diff --git a/GUI/Model/Fit/MinimizerItem.h b/GUI/Model/Item/MinimizerItem.h
similarity index 95%
rename from GUI/Model/Fit/MinimizerItem.h
rename to GUI/Model/Item/MinimizerItem.h
index 45935d037f55ca962273bd75c00947f59f5b3fba..835c7ffa2e4fc80d516e706c158264d612db254b 100644
--- a/GUI/Model/Fit/MinimizerItem.h
+++ b/GUI/Model/Item/MinimizerItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/MinimizerItem.h
+//! @file      GUI/Model/Item/MinimizerItem.h
 //! @brief     Defines MinimizerItem class
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_MINIMIZERITEM_H
-#define BORNAGAIN_GUI_MODEL_FIT_MINIMIZERITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_MINIMIZERITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_MINIMIZERITEM_H
 
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Session/SessionItem.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/Model/Types/UIntDescriptor.h"
 #include <variant>
@@ -147,4 +147,4 @@ public:
     ValueDescriptors valueDescriptorsForUI() const override;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_MINIMIZERITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_MINIMIZERITEM_H
diff --git a/GUI/Model/Sample/MultiLayerItem.cpp b/GUI/Model/Item/MultiLayerItem.cpp
similarity index 95%
rename from GUI/Model/Sample/MultiLayerItem.cpp
rename to GUI/Model/Item/MultiLayerItem.cpp
index 7a819d4636870e4a3ad6015977688c70ddc77527..863d5b8b0981650f68a4873b3171924f1fe16551 100644
--- a/GUI/Model/Sample/MultiLayerItem.cpp
+++ b/GUI/Model/Item/MultiLayerItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/MultiLayerItem.cpp
+//! @file      GUI/Model/Item/MultiLayerItem.cpp
 //! @brief     Implements class MultiLayerItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Model/XML/Serializer.h"
-#include "GUI/Model/XML/SessionXML.h"
 #include <QXmlStreamWriter>
 
 MultiLayerItem::MultiLayerItem()
diff --git a/GUI/Model/Sample/MultiLayerItem.h b/GUI/Model/Item/MultiLayerItem.h
similarity index 90%
rename from GUI/Model/Sample/MultiLayerItem.h
rename to GUI/Model/Item/MultiLayerItem.h
index 6d60e94f8d2a5d54b61062b13644f057e09f3555..6f047a9e3ebeb5e863575309f8525d512f55bbc0 100644
--- a/GUI/Model/Sample/MultiLayerItem.h
+++ b/GUI/Model/Item/MultiLayerItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/MultiLayerItem.h
+//! @file      GUI/Model/Item/MultiLayerItem.h
 //! @brief     Defines class MultiLayerItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_MULTILAYERITEM_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_MULTILAYERITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_MULTILAYERITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_MULTILAYERITEM_H
 
 #include "GUI/Model/Types/DoubleProperty.h"
 #include "GUI/Model/Types/VectorProperty.h"
@@ -70,4 +70,4 @@ private:
     QVector<LayerItem*> m_layers;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_MULTILAYERITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_MULTILAYERITEM_H
diff --git a/GUI/Model/Fit/ParameterTreeItems.cpp b/GUI/Model/Item/ParameterTreeItems.cpp
similarity index 96%
rename from GUI/Model/Fit/ParameterTreeItems.cpp
rename to GUI/Model/Item/ParameterTreeItems.cpp
index d6c158c3905ce851e40fcba0dc9ba9a6d4710809..2127bb2a96ddd1630dc52491146f417094723995 100644
--- a/GUI/Model/Fit/ParameterTreeItems.cpp
+++ b/GUI/Model/Item/ParameterTreeItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/ParameterTreeItems.cpp
+//! @file      GUI/Model/Item/ParameterTreeItems.cpp
 //! @brief     Implements classes for ParameterTreeItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Types/VectorDescriptor.h"
 #include "GUI/Support/Data/XML.h"
 #include "GUI/Util/DeserializationException.h"
diff --git a/GUI/Model/Fit/ParameterTreeItems.h b/GUI/Model/Item/ParameterTreeItems.h
similarity index 92%
rename from GUI/Model/Fit/ParameterTreeItems.h
rename to GUI/Model/Item/ParameterTreeItems.h
index e410c8864df9f95dfb7cbe1fe3355a613d899005..eef6db6fd66beeb8afe3c91f806532a63b455f27 100644
--- a/GUI/Model/Fit/ParameterTreeItems.h
+++ b/GUI/Model/Item/ParameterTreeItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/ParameterTreeItems.h
+//! @file      GUI/Model/Item/ParameterTreeItems.h
 //! @brief     Defines classes for ParameterTreeItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_PARAMETERTREEITEMS_H
-#define BORNAGAIN_GUI_MODEL_FIT_PARAMETERTREEITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_PARAMETERTREEITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_PARAMETERTREEITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include <QObject>
 
@@ -99,4 +99,4 @@ private:
     std::unique_ptr<QObject> m_parameterTreeRoot;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_PARAMETERTREEITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_PARAMETERTREEITEMS_H
diff --git a/GUI/Model/Sample/ParticleCompositionItem.cpp b/GUI/Model/Item/ParticleCompositionItem.cpp
similarity index 90%
rename from GUI/Model/Sample/ParticleCompositionItem.cpp
rename to GUI/Model/Item/ParticleCompositionItem.cpp
index 1a4d89831037b87d5ef6ebbf2457104e8ec42add..732ac9924be318a4795dae04e1151f2cebe9c9b9 100644
--- a/GUI/Model/Sample/ParticleCompositionItem.cpp
+++ b/GUI/Model/Item/ParticleCompositionItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ParticleCompositionItem.cpp
+//! @file      GUI/Model/Item/ParticleCompositionItem.cpp
 //! @brief     Implements class ParticleCompositionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/RotationItemCatalog.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/RotationItemCatalog.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "Sample/Particle/MesoCrystal.h"
 #include "Sample/Particle/Particle.h"
diff --git a/GUI/Model/Sample/ParticleCompositionItem.h b/GUI/Model/Item/ParticleCompositionItem.h
similarity index 79%
rename from GUI/Model/Sample/ParticleCompositionItem.h
rename to GUI/Model/Item/ParticleCompositionItem.h
index 937ed92b0242c435649687fdd494be9ec9664278..552e5c93dadf5c6462918b6efb51070926ee9571 100644
--- a/GUI/Model/Sample/ParticleCompositionItem.h
+++ b/GUI/Model/Item/ParticleCompositionItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ParticleCompositionItem.h
+//! @file      GUI/Model/Item/ParticleCompositionItem.h
 //! @brief     Defines class ParticleCompositionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLECOMPOSITIONITEM_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLECOMPOSITIONITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_PARTICLECOMPOSITIONITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_PARTICLECOMPOSITIONITEM_H
 
-#include "GUI/Model/Sample/ItemWithParticles.h"
+#include "GUI/Model/Item/ItemWithParticles.h"
 #include "Sample/Particle/ParticleComposition.h"
 #include <memory>
 
@@ -36,4 +36,4 @@ private:
     QVector<ItemWithParticles*> m_particles;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLECOMPOSITIONITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_PARTICLECOMPOSITIONITEM_H
diff --git a/GUI/Model/Sample/ParticleCoreShellItem.cpp b/GUI/Model/Item/ParticleCoreShellItem.cpp
similarity index 93%
rename from GUI/Model/Sample/ParticleCoreShellItem.cpp
rename to GUI/Model/Item/ParticleCoreShellItem.cpp
index 6d3c8e58d9c38a31eec898ad3312602d0eec8bb2..26bf682d0c1d4d8f7082a2797a1843b30c27e7af 100644
--- a/GUI/Model/Sample/ParticleCoreShellItem.cpp
+++ b/GUI/Model/Item/ParticleCoreShellItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ParticleCoreShellItem.cpp
+//! @file      GUI/Model/Item/ParticleCoreShellItem.cpp
 //! @brief     Implements class ParticleCoreShellItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/VectorItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/VectorItem.h"
 #include "GUI/Support/Type/VariantUtil.h"
 #include "GUI/Util/Error.h"
 #include "Sample/Particle/Particle.h"
diff --git a/GUI/Model/Sample/ParticleCoreShellItem.h b/GUI/Model/Item/ParticleCoreShellItem.h
similarity index 81%
rename from GUI/Model/Sample/ParticleCoreShellItem.h
rename to GUI/Model/Item/ParticleCoreShellItem.h
index e2986b4ac3f11e1625d4cb9fc45e2dd0f63b5b5d..c2a6dacc8a582f19ec6c8825c03f3c40045fbce6 100644
--- a/GUI/Model/Sample/ParticleCoreShellItem.h
+++ b/GUI/Model/Item/ParticleCoreShellItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ParticleCoreShellItem.h
+//! @file      GUI/Model/Item/ParticleCoreShellItem.h
 //! @brief     Defines class ParticleCoreShellItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLECORESHELLITEM_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLECORESHELLITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_PARTICLECORESHELLITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_PARTICLECORESHELLITEM_H
 
-#include "GUI/Model/Sample/ItemWithParticles.h"
+#include "GUI/Model/Item/ItemWithParticles.h"
 #include <memory>
 
 class ParticleCoreShell;
@@ -45,4 +45,4 @@ private:
     std::unique_ptr<ParticleItem> m_shell;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLECORESHELLITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_PARTICLECORESHELLITEM_H
diff --git a/GUI/Model/Sample/ParticleItem.cpp b/GUI/Model/Item/ParticleItem.cpp
similarity index 86%
rename from GUI/Model/Sample/ParticleItem.cpp
rename to GUI/Model/Item/ParticleItem.cpp
index f723c148db610bef41412c0f670414a950386808..19883f6a362ffcf3f453f04c929624620eeabb4c 100644
--- a/GUI/Model/Sample/ParticleItem.cpp
+++ b/GUI/Model/Item/ParticleItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ParticleItem.cpp
+//! @file      GUI/Model/Item/ParticleItem.cpp
 //! @brief     Implements class ParticleItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/RotationItemCatalog.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/RotationItemCatalog.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "Sample/Particle/Particle.h"
 #include "Sample/Scattering/Rotations.h"
diff --git a/GUI/Model/Sample/ParticleItem.h b/GUI/Model/Item/ParticleItem.h
similarity index 79%
rename from GUI/Model/Sample/ParticleItem.h
rename to GUI/Model/Item/ParticleItem.h
index 75315a62996dc4928426bd44fe797ae60657fc8d..9f1cb74b86bc83609b33f6eb88ff4b4f29c8cecb 100644
--- a/GUI/Model/Sample/ParticleItem.h
+++ b/GUI/Model/Item/ParticleItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ParticleItem.h
+//! @file      GUI/Model/Item/ParticleItem.h
 //! @brief     Defines class ParticleItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLEITEM_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLEITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_PARTICLEITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_PARTICLEITEM_H
 
 #include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/Sample/ItemWithParticles.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Item/ItemWithParticles.h"
 #include <memory>
 
 class GroupItem;
@@ -48,4 +48,4 @@ template <typename T> T* ParticleItem::setFormFactorType()
     return p;
 }
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLEITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_PARTICLEITEM_H
diff --git a/GUI/Model/Sample/ParticleLayoutItem.cpp b/GUI/Model/Item/ParticleLayoutItem.cpp
similarity index 90%
rename from GUI/Model/Sample/ParticleLayoutItem.cpp
rename to GUI/Model/Item/ParticleLayoutItem.cpp
index e43a7390a36bcc997710788055b33700427c4d7e..e1586325f7e75545609b4fbfb36ecc4f1a18950d 100644
--- a/GUI/Model/Sample/ParticleLayoutItem.cpp
+++ b/GUI/Model/Item/ParticleLayoutItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ParticleLayoutItem.cpp
+//! @file      GUI/Model/Item/ParticleLayoutItem.cpp
 //! @brief     Implements class ParticleLayoutItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,14 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Sample/InterferenceItemCatalog.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
-#include "GUI/Model/Sample/Lattice2DItems.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/Lattice2DItems.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/MakeItem/InterferenceItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
 #include "GUI/Model/XML/Serializer.h"
 
 ParticleLayoutItem::ParticleLayoutItem()
diff --git a/GUI/Model/Sample/ParticleLayoutItem.h b/GUI/Model/Item/ParticleLayoutItem.h
similarity index 91%
rename from GUI/Model/Sample/ParticleLayoutItem.h
rename to GUI/Model/Item/ParticleLayoutItem.h
index b5789c263457fbfe9d6cf2daba5974c1a55e27b9..56d22de885a06118dfc2725f6816a4f64858e73e 100644
--- a/GUI/Model/Sample/ParticleLayoutItem.h
+++ b/GUI/Model/Item/ParticleLayoutItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ParticleLayoutItem.h
+//! @file      GUI/Model/Item/ParticleLayoutItem.h
 //! @brief     Defines class ParticleLayoutItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLELAYOUTITEM_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLELAYOUTITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_PARTICLELAYOUTITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_PARTICLELAYOUTITEM_H
 
 #include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
+#include "GUI/Model/Item/InterferenceItems.h"
 #include "GUI/Model/Types/DoubleProperty.h"
 #include <QUuid>
 #include <memory>
@@ -78,4 +78,4 @@ private:
     QVector<ItemWithParticles*> m_particles;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLELAYOUTITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_PARTICLELAYOUTITEM_H
diff --git a/GUI/Model/Ax/PointwiseAxisItem.cpp b/GUI/Model/Item/PointwiseAxisItem.cpp
similarity index 96%
rename from GUI/Model/Ax/PointwiseAxisItem.cpp
rename to GUI/Model/Item/PointwiseAxisItem.cpp
index a6269e1cf930adc60d19d75cc289bbec73dc8e1b..fc60404153614e150e5ec187407ca761e7680ffa 100644
--- a/GUI/Model/Ax/PointwiseAxisItem.cpp
+++ b/GUI/Model/Item/PointwiseAxisItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Ax/PointwiseAxisItem.cpp
+//! @file      GUI/Model/Item/PointwiseAxisItem.cpp
 //! @brief     Implements pointwise axis item
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
 #include "Base/Axis/PointwiseAxis.h"
 #include "Device/Coord/ICoordSystem.h"
 #include "Device/Data/OutputData.h"
 #include "Device/Histo/IntensityDataIOFactory.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 
 namespace {
 
diff --git a/GUI/Model/Ax/PointwiseAxisItem.h b/GUI/Model/Item/PointwiseAxisItem.h
similarity index 88%
rename from GUI/Model/Ax/PointwiseAxisItem.h
rename to GUI/Model/Item/PointwiseAxisItem.h
index c1ae2ed00f3cc0222133d2b9cab39bcea1f4c754..efa30fef2d69fb6bdffdf12ad84a90e95d9b31b8 100644
--- a/GUI/Model/Ax/PointwiseAxisItem.h
+++ b/GUI/Model/Item/PointwiseAxisItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Ax/PointwiseAxisItem.h
+//! @file      GUI/Model/Item/PointwiseAxisItem.h
 //! @brief     Defines pointwise axis item
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_AX_POINTWISEAXISITEM_H
-#define BORNAGAIN_GUI_MODEL_AX_POINTWISEAXISITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_POINTWISEAXISITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_POINTWISEAXISITEM_H
 
-#include "GUI/Model/Ax/AxesItems.h"
+#include "GUI/Model/Item/AxesItems.h"
 #include "GUI/Support/IO/SaveLoadInterface.h"
 
 class PointwiseAxis;
@@ -62,4 +62,4 @@ private:
     QDateTime m_last_modified;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_AX_POINTWISEAXISITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_POINTWISEAXISITEM_H
diff --git a/GUI/Model/Mask/ProjectionItems.cpp b/GUI/Model/Item/ProjectionItems.cpp
similarity index 86%
rename from GUI/Model/Mask/ProjectionItems.cpp
rename to GUI/Model/Item/ProjectionItems.cpp
index 94aa5d0e2ef8105a5c091895925d314a18618042..0b9d94bd1e91341d549074ff36fa38b6df94da5f 100644
--- a/GUI/Model/Mask/ProjectionItems.cpp
+++ b/GUI/Model/Item/ProjectionItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Mask/ProjectionItems.cpp
+//! @file      GUI/Model/Item/ProjectionItems.cpp
 //! @brief     Implements items related to projections over color map.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Mask/ProjectionItems.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/ProjectionItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 
 ProjectionContainerItem::ProjectionContainerItem()
     : SessionItem(M_TYPE)
diff --git a/GUI/Model/Mask/ProjectionItems.h b/GUI/Model/Item/ProjectionItems.h
similarity index 77%
rename from GUI/Model/Mask/ProjectionItems.h
rename to GUI/Model/Item/ProjectionItems.h
index c3d9ee7e6dab750a7a4db1babf8c81e4797a7b51..e53008e385f73a6f3a1882a3b26b7c1ffe538179 100644
--- a/GUI/Model/Mask/ProjectionItems.h
+++ b/GUI/Model/Item/ProjectionItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Mask/ProjectionItems.h
+//! @file      GUI/Model/Item/ProjectionItems.h
 //! @brief     Defines items related to projections over color map.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_MASK_PROJECTIONITEMS_H
-#define BORNAGAIN_GUI_MODEL_MASK_PROJECTIONITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_PROJECTIONITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_PROJECTIONITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 //! A container to hold ProjectionItems, intended to store projections of color map on X, Y axes.
 
@@ -26,4 +26,4 @@ public:
     ProjectionContainerItem();
 };
 
-#endif // BORNAGAIN_GUI_MODEL_MASK_PROJECTIONITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_PROJECTIONITEMS_H
diff --git a/GUI/Model/Data/RealDataItem.cpp b/GUI/Model/Item/RealDataItem.cpp
similarity index 96%
rename from GUI/Model/Data/RealDataItem.cpp
rename to GUI/Model/Item/RealDataItem.cpp
index 7df63d23628ef031309bbe11707d0b058e73911c..36c026ed828ee6deec6f9ac7742c68c738e071d4 100644
--- a/GUI/Model/Data/RealDataItem.cpp
+++ b/GUI/Model/Item/RealDataItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Data/RealDataItem.cpp
+//! @file      GUI/Model/Item/RealDataItem.cpp
 //! @brief     Implements class RealDataItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,16 +12,15 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Data/RealDataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
 #include "Device/Data/DataUtils.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/JobItemUtils.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/ProjectionItems.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Model/State/SessionData.h"
 #include "GUI/Support/IO/AbstractDataLoader1D.h"
diff --git a/GUI/Model/Data/RealDataItem.h b/GUI/Model/Item/RealDataItem.h
similarity index 94%
rename from GUI/Model/Data/RealDataItem.h
rename to GUI/Model/Item/RealDataItem.h
index b3c37ed68ca081b6d0de8397d8e27d9a13921b36..0b5c643a6c0671d9f1105a9d032bfa79fd979821 100644
--- a/GUI/Model/Data/RealDataItem.h
+++ b/GUI/Model/Item/RealDataItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Data/RealDataItem.h
+//! @file      GUI/Model/Item/RealDataItem.h
 //! @brief     Defines class RealDataItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_DATA_REALDATAITEM_H
-#define BORNAGAIN_GUI_MODEL_DATA_REALDATAITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_REALDATAITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_REALDATAITEM_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Support/IO/AbstractDataLoader.h"
 #include <QPointer>
 
@@ -126,4 +126,4 @@ private:
     std::unique_ptr<AbstractDataLoader> m_dataLoader;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_DATA_REALDATAITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_REALDATAITEM_H
diff --git a/GUI/Model/Session/RealLimitsItems.cpp b/GUI/Model/Item/RealLimitsItems.cpp
similarity index 97%
rename from GUI/Model/Session/RealLimitsItems.cpp
rename to GUI/Model/Item/RealLimitsItems.cpp
index 6995ac9ba6d00a9520d174b84c2235cadffbaae8..22acce32181f9fee5330b800d1e998eaf1a9c4ba 100644
--- a/GUI/Model/Session/RealLimitsItems.cpp
+++ b/GUI/Model/Item/RealLimitsItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/RealLimitsItems.cpp
+//! @file      GUI/Model/Item/RealLimitsItems.cpp
 //! @brief     Defines RealLimitsItems's classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Session/RealLimitsItems.h"
+#include "GUI/Model/Item/RealLimitsItems.h"
 
 namespace {
 
diff --git a/GUI/Model/Session/RealLimitsItems.h b/GUI/Model/Item/RealLimitsItems.h
similarity index 91%
rename from GUI/Model/Session/RealLimitsItems.h
rename to GUI/Model/Item/RealLimitsItems.h
index 0e9f347796e7609259e38a638e032ac44e05c5d8..f31c2c8afd8ee99c8f28be9728fc27be7e0e30f3 100644
--- a/GUI/Model/Session/RealLimitsItems.h
+++ b/GUI/Model/Item/RealLimitsItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/RealLimitsItems.h
+//! @file      GUI/Model/Item/RealLimitsItems.h
 //! @brief     Defines RealLimitsItems's classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SESSION_REALLIMITSITEMS_H
-#define BORNAGAIN_GUI_MODEL_SESSION_REALLIMITSITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_REALLIMITSITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_REALLIMITSITEMS_H
 
 #include <optional>
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class RealLimitsItem : public SessionItem {
 private:
@@ -89,4 +89,4 @@ public:
     using RealLimitsItem::setUpperLimit;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SESSION_REALLIMITSITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_REALLIMITSITEMS_H
diff --git a/GUI/Model/Instrument/RectangularDetectorItem.cpp b/GUI/Model/Item/RectangularDetectorItem.cpp
similarity index 98%
rename from GUI/Model/Instrument/RectangularDetectorItem.cpp
rename to GUI/Model/Item/RectangularDetectorItem.cpp
index e212696d248b8e3e1e2f1358e17a29ec50bac762..a65c265a5acb33e59fe6fa2612b77e3f5ec5fc08 100644
--- a/GUI/Model/Instrument/RectangularDetectorItem.cpp
+++ b/GUI/Model/Item/RectangularDetectorItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/RectangularDetectorItem.cpp
+//! @file      GUI/Model/Item/RectangularDetectorItem.cpp
 //! @brief     Implements class RectangularDetectorItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
 #include "Device/Detector/RectangularDetector.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/VectorItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/Util/Error.h"
 
diff --git a/GUI/Model/Instrument/RectangularDetectorItem.h b/GUI/Model/Item/RectangularDetectorItem.h
similarity index 89%
rename from GUI/Model/Instrument/RectangularDetectorItem.h
rename to GUI/Model/Item/RectangularDetectorItem.h
index 080f9ed1d9e35345b35b54dad8dabca728b9ae11..18db45df31a1d5128d9ab04eb1633f96ade591d4 100644
--- a/GUI/Model/Instrument/RectangularDetectorItem.h
+++ b/GUI/Model/Item/RectangularDetectorItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/RectangularDetectorItem.h
+//! @file      GUI/Model/Item/RectangularDetectorItem.h
 //! @brief     Defines class RectangularDetectorItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_RECTANGULARDETECTORITEM_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_RECTANGULARDETECTORITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_RECTANGULARDETECTORITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_RECTANGULARDETECTORITEM_H
 
-#include "GUI/Model/Instrument/DetectorItems.h"
+#include "GUI/Model/Item/DetectorItems.h"
 
 class BasicAxisItem;
 class VectorItem;
@@ -91,4 +91,4 @@ private:
     bool m_is_constructed;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_RECTANGULARDETECTORITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_RECTANGULARDETECTORITEM_H
diff --git a/GUI/Model/Instrument/ResolutionFunctionItems.cpp b/GUI/Model/Item/ResolutionFunctionItems.cpp
similarity index 95%
rename from GUI/Model/Instrument/ResolutionFunctionItems.cpp
rename to GUI/Model/Item/ResolutionFunctionItems.cpp
index ca22d2eefa12adc7ffc29a8b653ea0bfe00fa7e4..1f9f13f1650c16ec78e776081e987639a3b09f20 100644
--- a/GUI/Model/Instrument/ResolutionFunctionItems.cpp
+++ b/GUI/Model/Item/ResolutionFunctionItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/ResolutionFunctionItems.cpp
+//! @file      GUI/Model/Item/ResolutionFunctionItems.cpp
 //! @brief     Implements family of ResolutionFunctionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/ResolutionFunctionItems.h"
+#include "GUI/Model/Item/ResolutionFunctionItems.h"
 #include "Device/Resolution/ResolutionFunction2DGaussian.h"
 
 ResolutionFunctionItem::ResolutionFunctionItem(const QString& name)
diff --git a/GUI/Model/Instrument/ResolutionFunctionItems.h b/GUI/Model/Item/ResolutionFunctionItems.h
similarity index 85%
rename from GUI/Model/Instrument/ResolutionFunctionItems.h
rename to GUI/Model/Item/ResolutionFunctionItems.h
index a321cd9fcd99cb77d4cc12f3ad27ed0f568e35bb..4d95a40dc3c224e5e9ecc1d6437e3aeb7d9a8bf1 100644
--- a/GUI/Model/Instrument/ResolutionFunctionItems.h
+++ b/GUI/Model/Item/ResolutionFunctionItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/ResolutionFunctionItems.h
+//! @file      GUI/Model/Item/ResolutionFunctionItems.h
 //! @brief     Defines family of ResolutionFunctionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_RESOLUTIONFUNCTIONITEMS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_RESOLUTIONFUNCTIONITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONFUNCTIONITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONFUNCTIONITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <memory>
 
 class IResolutionFunction2D;
@@ -61,4 +61,4 @@ public:
     void setSigmaY(double sigma_y);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_RESOLUTIONFUNCTIONITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONFUNCTIONITEMS_H
diff --git a/GUI/Model/Instrument/ResolutionItems.cpp b/GUI/Model/Item/ResolutionItems.cpp
similarity index 98%
rename from GUI/Model/Instrument/ResolutionItems.cpp
rename to GUI/Model/Item/ResolutionItems.cpp
index f0235e3db0a8b6d146f2d334823869b15d7d92f9..0d11c91ccdeabb001e7fcbfdf6a515ce4cbaa95b 100644
--- a/GUI/Model/Instrument/ResolutionItems.cpp
+++ b/GUI/Model/Item/ResolutionItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/ResolutionItems.cpp
+//! @file      GUI/Model/Item/ResolutionItems.cpp
 //! @brief     Implements class ResolutionItem and several subclasses
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/ResolutionItems.h"
+#include "GUI/Model/Item/ResolutionItems.h"
 #include "GUI/Model/Group/GroupInfo.h"
-#include "GUI/Model/Session/RealLimitsItems.h"
+#include "GUI/Model/Item/RealLimitsItems.h"
 #include "Param/Distrib/Distributions.h"
 #include "Param/Distrib/RangedDistributions.h"
 #include <cmath>
diff --git a/GUI/Model/Instrument/ResolutionItems.h b/GUI/Model/Item/ResolutionItems.h
similarity index 95%
rename from GUI/Model/Instrument/ResolutionItems.h
rename to GUI/Model/Item/ResolutionItems.h
index 39465c79a18016136477e6d2931a9105a1e4d26b..8ef20b9a6528def00885e13f5f4918c11d87036d 100644
--- a/GUI/Model/Instrument/ResolutionItems.h
+++ b/GUI/Model/Item/ResolutionItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/ResolutionItems.h
+//! @file      GUI/Model/Item/ResolutionItems.h
 //! @brief     Defines class ResolutionItem and several subclasses
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_RESOLUTIONITEMS_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_RESOLUTIONITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONITEMS_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class IDistribution1D;
 class IRangedDistribution;
@@ -207,4 +207,4 @@ public:
     void setRightWidth(double right_width);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_RESOLUTIONITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONITEMS_H
diff --git a/GUI/Model/Sample/RotationItems.cpp b/GUI/Model/Item/RotationItems.cpp
similarity index 97%
rename from GUI/Model/Sample/RotationItems.cpp
rename to GUI/Model/Item/RotationItems.cpp
index 851fd6b972e1e68fdc9e1408cdb00627bfa647e2..0dbe71e1317abd740ed0511d206db2690e2157b0 100644
--- a/GUI/Model/Sample/RotationItems.cpp
+++ b/GUI/Model/Item/RotationItems.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/RotationItems.cpp
+//! @file      GUI/Model/Item/RotationItems.cpp
 //! @brief     Implements class RotationItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/RotationItems.h"
+#include "GUI/Model/Item/RotationItems.h"
 #include "Base/Const/Units.h"
 #include "Base/Vector/RotMatrix.h"
 #include "GUI/Model/XML/Serializer.h"
diff --git a/GUI/Model/Sample/RotationItems.h b/GUI/Model/Item/RotationItems.h
similarity index 92%
rename from GUI/Model/Sample/RotationItems.h
rename to GUI/Model/Item/RotationItems.h
index 4db570b4d68d9d5bbc40c478bb00913b820f02d0..91e453b74defdecc6bc51cc7f99651e90120bf28 100644
--- a/GUI/Model/Sample/RotationItems.h
+++ b/GUI/Model/Item/RotationItems.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/RotationItems.h
+//! @file      GUI/Model/Item/RotationItems.h
 //! @brief     Defines class RotationItems
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_ROTATIONITEMS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_ROTATIONITEMS_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_ROTATIONITEMS_H
+#define BORNAGAIN_GUI_MODEL_ITEM_ROTATIONITEMS_H
 
 #include "GUI/Model/Types/DoubleProperty.h"
 #include <memory>
@@ -101,4 +101,4 @@ private:
     DoubleProperty m_gamma;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_ROTATIONITEMS_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_ROTATIONITEMS_H
diff --git a/GUI/Model/Sample/SampleItem.cpp b/GUI/Model/Item/SampleItem.cpp
similarity index 78%
rename from GUI/Model/Sample/SampleItem.cpp
rename to GUI/Model/Item/SampleItem.cpp
index 50195ad0b439c3b064d2e75db5876d3380b2b92a..911fd8ce92d2c3ff26dd637e2e732948e28d8d43 100644
--- a/GUI/Model/Sample/SampleItem.cpp
+++ b/GUI/Model/Item/SampleItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/SampleItem.cpp
+//! @file      GUI/Model/Item/SampleItem.cpp
 //! @brief     Implements class SampleItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/SampleItem.h"
-#include "GUI/Model/Sample/ItemWithParticles.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/SampleItem.h"
+#include "GUI/Model/Item/ItemWithParticles.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
 
 SampleItem::SampleItem(SessionItem* item)
 {
diff --git a/GUI/Model/Sample/SampleItem.h b/GUI/Model/Item/SampleItem.h
similarity index 88%
rename from GUI/Model/Sample/SampleItem.h
rename to GUI/Model/Item/SampleItem.h
index a559d00b08e965f292d1dd230f7ef1bff6110e3c..29dca1e93c08a8e83e7cef96c6803fc9806d601c 100644
--- a/GUI/Model/Sample/SampleItem.h
+++ b/GUI/Model/Item/SampleItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/SampleItem.h
+//! @file      GUI/Model/Item/SampleItem.h
 //! @brief     Defines class SampleItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_SAMPLEITEM_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_SAMPLEITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_SAMPLEITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_SAMPLEITEM_H
 
 #include <variant>
 
@@ -53,4 +53,4 @@ private:
     using base = VariantForSampleItems;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_SAMPLEITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_SAMPLEITEM_H
diff --git a/GUI/Model/Instrument/SpecularBeamInclinationItem.cpp b/GUI/Model/Item/SpecularBeamInclinationItem.cpp
similarity index 95%
rename from GUI/Model/Instrument/SpecularBeamInclinationItem.cpp
rename to GUI/Model/Item/SpecularBeamInclinationItem.cpp
index 604543f00b7b34211f482a20a049cd7159e851a2..f943ff318d80009a0365b5f9f26489f2582483df 100644
--- a/GUI/Model/Instrument/SpecularBeamInclinationItem.cpp
+++ b/GUI/Model/Item/SpecularBeamInclinationItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/SpecularBeamInclinationItem.cpp
+//! @file      GUI/Model/Item/SpecularBeamInclinationItem.cpp
 //! @brief     Implements class SpecularBeamInclinationItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/SpecularBeamInclinationItem.h"
+#include "GUI/Model/Item/SpecularBeamInclinationItem.h"
 #include "Base/Const/Units.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Group/GroupItem.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
 
 namespace {
 
diff --git a/GUI/Model/Instrument/SpecularBeamInclinationItem.h b/GUI/Model/Item/SpecularBeamInclinationItem.h
similarity index 81%
rename from GUI/Model/Instrument/SpecularBeamInclinationItem.h
rename to GUI/Model/Item/SpecularBeamInclinationItem.h
index 68818afc7634d5f86c80b5da53dd278aadf0d2bf..eea5865c40437318cef7bf1a0661dc8898b4aecf 100644
--- a/GUI/Model/Instrument/SpecularBeamInclinationItem.h
+++ b/GUI/Model/Item/SpecularBeamInclinationItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/SpecularBeamInclinationItem.h
+//! @file      GUI/Model/Item/SpecularBeamInclinationItem.h
 //! @brief     Declares the class SpecularBeamInclinationItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_SPECULARBEAMINCLINATIONITEM_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_SPECULARBEAMINCLINATIONITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_SPECULARBEAMINCLINATIONITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_SPECULARBEAMINCLINATIONITEM_H
 
-#include "GUI/Model/Instrument/BeamDistributionItem.h"
+#include "GUI/Model/Item/BeamDistributionItem.h"
 
 class BasicAxisItem;
 class GroupItem;
@@ -47,4 +47,4 @@ private:
     static const bool m_show_mean = false;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_SPECULARBEAMINCLINATIONITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_SPECULARBEAMINCLINATIONITEM_H
diff --git a/GUI/Model/Data/SpecularDataItem.cpp b/GUI/Model/Item/SpecularDataItem.cpp
similarity index 97%
rename from GUI/Model/Data/SpecularDataItem.cpp
rename to GUI/Model/Item/SpecularDataItem.cpp
index 86ece8f635251ad320e7d55643a38f7800383d99..d7732649fa2e12211dd20f2c0d9b9a1f6682f694 100644
--- a/GUI/Model/Data/SpecularDataItem.cpp
+++ b/GUI/Model/Item/SpecularDataItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Data/SpecularDataItem.cpp
+//! @file      GUI/Model/Item/SpecularDataItem.cpp
 //! @brief     Implements class SpecularDataItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/JobItemUtils.h"
 #include "GUI/Support/IO/ImportDataInfo.h"
 #include "GUI/Util/Error.h"
 
diff --git a/GUI/Model/Data/SpecularDataItem.h b/GUI/Model/Item/SpecularDataItem.h
similarity index 91%
rename from GUI/Model/Data/SpecularDataItem.h
rename to GUI/Model/Item/SpecularDataItem.h
index ca8b8a9b8983f5c608b0e016093e109daee7a277..7cc10eee0ff7dbc47a692be533cb3b79e25d6cb7 100644
--- a/GUI/Model/Data/SpecularDataItem.h
+++ b/GUI/Model/Item/SpecularDataItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Data/SpecularDataItem.h
+//! @file      GUI/Model/Item/SpecularDataItem.h
 //! @brief     Defines class SpecularDataItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_DATA_SPECULARDATAITEM_H
-#define BORNAGAIN_GUI_MODEL_DATA_SPECULARDATAITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_SPECULARDATAITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_SPECULARDATAITEM_H
 
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/DataItem.h"
 
 class AmplitudeAxisItem;
 class BasicAxisItem;
@@ -89,4 +89,4 @@ private:
     void updateAxesZoomLevel();
 };
 
-#endif // BORNAGAIN_GUI_MODEL_DATA_SPECULARDATAITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_SPECULARDATAITEM_H
diff --git a/GUI/Model/Instrument/SphericalDetectorItem.cpp b/GUI/Model/Item/SphericalDetectorItem.cpp
similarity index 95%
rename from GUI/Model/Instrument/SphericalDetectorItem.cpp
rename to GUI/Model/Item/SphericalDetectorItem.cpp
index 75c5b2056f49522544d90862ce838d92f121ac06..7edcf2d74aed5a1420593ef74d83a9d9d062a27e 100644
--- a/GUI/Model/Instrument/SphericalDetectorItem.cpp
+++ b/GUI/Model/Item/SphericalDetectorItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/SphericalDetectorItem.cpp
+//! @file      GUI/Model/Item/SphericalDetectorItem.cpp
 //! @brief     Implements class SphericalDetectorItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/SphericalDetectorItem.h"
+#include "GUI/Model/Item/SphericalDetectorItem.h"
 #include "Base/Const/Units.h"
 #include "Device/Detector/SphericalDetector.h"
-#include "GUI/Model/Ax/AxesItems.h"
+#include "GUI/Model/Item/AxesItems.h"
 
 SphericalDetectorItem::SphericalDetectorItem()
     : DetectorItem(M_TYPE)
diff --git a/GUI/Model/Instrument/SphericalDetectorItem.h b/GUI/Model/Item/SphericalDetectorItem.h
similarity index 81%
rename from GUI/Model/Instrument/SphericalDetectorItem.h
rename to GUI/Model/Item/SphericalDetectorItem.h
index c5f50bfa83ef05aba525d2281572741887da7826..49c68170d8b025696a1b726ac2760d933382fa33 100644
--- a/GUI/Model/Instrument/SphericalDetectorItem.h
+++ b/GUI/Model/Item/SphericalDetectorItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/SphericalDetectorItem.h
+//! @file      GUI/Model/Item/SphericalDetectorItem.h
 //! @brief     Defines class SphericalDetectorItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_SPHERICALDETECTORITEM_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_SPHERICALDETECTORITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_SPHERICALDETECTORITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_SPHERICALDETECTORITEM_H
 
-#include "GUI/Model/Instrument/DetectorItems.h"
+#include "GUI/Model/Item/DetectorItems.h"
 
 class BasicAxisItem;
 
@@ -45,4 +45,4 @@ protected:
     double axesToDomainUnitsFactor() const override;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_SPHERICALDETECTORITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_SPHERICALDETECTORITEM_H
diff --git a/GUI/Model/Types/VectorItem.cpp b/GUI/Model/Item/VectorItem.cpp
similarity index 96%
rename from GUI/Model/Types/VectorItem.cpp
rename to GUI/Model/Item/VectorItem.cpp
index 9e0bad1033d83a6f029b2999376422ad6adda834..e9a33572226f6b3e782f9c2a490ca3f4b35c8277 100644
--- a/GUI/Model/Types/VectorItem.cpp
+++ b/GUI/Model/Item/VectorItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/VectorItem.cpp
+//! @file      GUI/Model/Item/VectorItem.cpp
 //! @brief     Implements class VectorItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Item/VectorItem.h"
 
 VectorItem::VectorItem()
     : SessionItem(M_TYPE)
diff --git a/GUI/Model/Types/VectorItem.h b/GUI/Model/Item/VectorItem.h
similarity index 84%
rename from GUI/Model/Types/VectorItem.h
rename to GUI/Model/Item/VectorItem.h
index 97f9609b581510bd4d6f97b0fdd3a0eeb70e1d32..bbd99e0ddb0933c3aa671009a2c6cb54f9e176fb 100644
--- a/GUI/Model/Types/VectorItem.h
+++ b/GUI/Model/Item/VectorItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Types/VectorItem.h
+//! @file      GUI/Model/Item/VectorItem.h
 //! @brief     Defines class VectorItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_TYPES_VECTORITEM_H
-#define BORNAGAIN_GUI_MODEL_TYPES_VECTORITEM_H
+#ifndef BORNAGAIN_GUI_MODEL_ITEM_VECTORITEM_H
+#define BORNAGAIN_GUI_MODEL_ITEM_VECTORITEM_H
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <heinz/Vectors3D.h>
 
 class BA_CORE_API_ VectorItem : public SessionItem {
@@ -50,4 +50,4 @@ private:
     void updateLabel();
 };
 
-#endif // BORNAGAIN_GUI_MODEL_TYPES_VECTORITEM_H
+#endif // BORNAGAIN_GUI_MODEL_ITEM_VECTORITEM_H
diff --git a/GUI/Model/Sample/FTDecayFunctionItemCatalogs.cpp b/GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.cpp
similarity index 95%
rename from GUI/Model/Sample/FTDecayFunctionItemCatalogs.cpp
rename to GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.cpp
index adb23b4bca7bef41bfbd3d8ba85335180f6020ca..17f64df1d2e249d1ae49fa6168ca4ea3922a963d 100644
--- a/GUI/Model/Sample/FTDecayFunctionItemCatalogs.cpp
+++ b/GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FTDecayFunctionItemCatalogs.cpp
+//! @file      GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.cpp
 //! @brief     Implements FTDecayFunctionItemCatalog classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/FTDecayFunctionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Sample/FTDecayFunctionItems.h"
+#include "GUI/Model/Item/FTDecayFunctionItems.h"
 
 FTDecayFunction1DItemCatalog::CatalogedType* FTDecayFunction1DItemCatalog::create(Type type)
 {
diff --git a/GUI/Model/Sample/FTDecayFunctionItemCatalogs.h b/GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h
similarity index 88%
rename from GUI/Model/Sample/FTDecayFunctionItemCatalogs.h
rename to GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h
index 295de4e3ec282add51e3a8b6f907044a2c148dc0..4b93d8494264ebb329c528565c4823d2695b13c3 100644
--- a/GUI/Model/Sample/FTDecayFunctionItemCatalogs.h
+++ b/GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FTDecayFunctionItemCatalogs.h
+//! @file      GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h
 //! @brief     Defines FTDecayFunctionItemCatalog classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_FTDECAYFUNCTIONITEMCATALOGS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_FTDECAYFUNCTIONITEMCATALOGS_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_FTDECAYFUNCTIONITEMCATALOGS_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_FTDECAYFUNCTIONITEMCATALOGS_H
 
 #include <QString>
 #include <QVector>
@@ -74,4 +74,4 @@ public:
 };
 
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_FTDECAYFUNCTIONITEMCATALOGS_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_FTDECAYFUNCTIONITEMCATALOGS_H
diff --git a/GUI/Model/Sample/FTDistributionItemCatalogs.cpp b/GUI/Model/MakeItem/FTDistributionItemCatalogs.cpp
similarity index 96%
rename from GUI/Model/Sample/FTDistributionItemCatalogs.cpp
rename to GUI/Model/MakeItem/FTDistributionItemCatalogs.cpp
index d8a9831aae14f74fbb4fd7c0e0f2e06e5b5aec99..787365aff5dc5456373e7e8d1d4959331152df5d 100644
--- a/GUI/Model/Sample/FTDistributionItemCatalogs.cpp
+++ b/GUI/Model/MakeItem/FTDistributionItemCatalogs.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FTDistributionItemCatalogs.cpp
+//! @file      GUI/Model/MakeItem/FTDistributionItemCatalogs.cpp
 //! @brief     Implements FTDistributionItemCatalog classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/FTDistributionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FTDistributionItemCatalogs.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Sample/FTDistributionItems.h"
+#include "GUI/Model/Item/FTDistributionItems.h"
 
 FTDistribution1DItemCatalog::CatalogedType* FTDistribution1DItemCatalog::create(Type type)
 {
diff --git a/GUI/Model/Sample/FTDistributionItemCatalogs.h b/GUI/Model/MakeItem/FTDistributionItemCatalogs.h
similarity index 89%
rename from GUI/Model/Sample/FTDistributionItemCatalogs.h
rename to GUI/Model/MakeItem/FTDistributionItemCatalogs.h
index aa274f21712328010dde0aa8fe017fd32bc08e2a..2bb68beeb02d7db615c1d23c52ba5a2be66e3b66 100644
--- a/GUI/Model/Sample/FTDistributionItemCatalogs.h
+++ b/GUI/Model/MakeItem/FTDistributionItemCatalogs.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FTDistributionItemCatalogs.h
+//! @file      GUI/Model/MakeItem/FTDistributionItemCatalogs.h
 //! @brief     Defines FTDistributionItemCatalog classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_FTDISTRIBUTIONITEMCATALOGS_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_FTDISTRIBUTIONITEMCATALOGS_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_FTDISTRIBUTIONITEMCATALOGS_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_FTDISTRIBUTIONITEMCATALOGS_H
 
 #include <QString>
 #include <QVector>
@@ -81,4 +81,4 @@ public:
 };
 
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_FTDISTRIBUTIONITEMCATALOGS_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_FTDISTRIBUTIONITEMCATALOGS_H
diff --git a/GUI/Model/Sample/FormFactorItemCatalog.cpp b/GUI/Model/MakeItem/FormFactorItemCatalog.cpp
similarity index 98%
rename from GUI/Model/Sample/FormFactorItemCatalog.cpp
rename to GUI/Model/MakeItem/FormFactorItemCatalog.cpp
index 228f3eee8d0905ddce622503f20247a7dfae5f8a..5d4ad6c87419158ff4a2e19349baf2f30c8d555b 100644
--- a/GUI/Model/Sample/FormFactorItemCatalog.cpp
+++ b/GUI/Model/MakeItem/FormFactorItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FormFactorItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/FormFactorItemCatalog.cpp
 //! @brief     Implements class FormFactorItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Item/FormFactorItems.h"
 
 FormFactorItem* FormFactorItemCatalog::create(Type type)
 {
diff --git a/GUI/Model/Sample/FormFactorItemCatalog.h b/GUI/Model/MakeItem/FormFactorItemCatalog.h
similarity index 90%
rename from GUI/Model/Sample/FormFactorItemCatalog.h
rename to GUI/Model/MakeItem/FormFactorItemCatalog.h
index 3d2188d93ef2b63d6167268718abf4e65ea7e06d..11da388eea2c24c660d3b39af4513a0380467d07 100644
--- a/GUI/Model/Sample/FormFactorItemCatalog.h
+++ b/GUI/Model/MakeItem/FormFactorItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FormFactorItemCatalog.h
+//! @file      GUI/Model/MakeItem/FormFactorItemCatalog.h
 //! @brief     Defines class FormFactorItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_FORMFACTORITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_FORMFACTORITEMCATALOG_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_FORMFACTORITEMCATALOG_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_FORMFACTORITEMCATALOG_H
 
 #include <QString>
 #include <QVector>
@@ -86,4 +86,4 @@ public:
     static QString menuEntry(const FormFactorItem* item);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_FORMFACTORITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_FORMFACTORITEMCATALOG_H
diff --git a/GUI/Model/Sample/InterferenceItemCatalog.cpp b/GUI/Model/MakeItem/InterferenceItemCatalog.cpp
similarity index 95%
rename from GUI/Model/Sample/InterferenceItemCatalog.cpp
rename to GUI/Model/MakeItem/InterferenceItemCatalog.cpp
index 353beefd88dd279aa3b19c83de181a42aefa3f2c..dc610d886f1c6dec87975e6532408a1a551e1450 100644
--- a/GUI/Model/Sample/InterferenceItemCatalog.cpp
+++ b/GUI/Model/MakeItem/InterferenceItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/InterferenceItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/InterferenceItemCatalog.cpp
 //! @brief     Implements class InterferenceItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/InterferenceItemCatalog.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
+#include "GUI/Model/MakeItem/InterferenceItemCatalog.h"
+#include "GUI/Model/Item/InterferenceItems.h"
 
 InterferenceItem* InterferenceItemCatalog::create(Type type)
 {
diff --git a/GUI/Model/Sample/InterferenceItemCatalog.h b/GUI/Model/MakeItem/InterferenceItemCatalog.h
similarity index 86%
rename from GUI/Model/Sample/InterferenceItemCatalog.h
rename to GUI/Model/MakeItem/InterferenceItemCatalog.h
index abd8fa122cfd5c55dfbe33b200aec8fa3561808d..b0d944c50a90085a424c60efddd3c2cff6e966b1 100644
--- a/GUI/Model/Sample/InterferenceItemCatalog.h
+++ b/GUI/Model/MakeItem/InterferenceItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/InterferenceItemCatalog.h
+//! @file      GUI/Model/MakeItem/InterferenceItemCatalog.h
 //! @brief     Defines class InterferenceItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_INTERFERENCEITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_INTERFERENCEITEMCATALOG_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_INTERFERENCEITEMCATALOG_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_INTERFERENCEITEMCATALOG_H
 
 #include <QString>
 #include <QVector>
@@ -60,4 +60,4 @@ public:
     static Type type(const InterferenceItem* item);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_INTERFERENCEITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_INTERFERENCEITEMCATALOG_H
diff --git a/GUI/Model/Catalog/ItemCatalog.cpp b/GUI/Model/MakeItem/ItemCatalog.cpp
similarity index 66%
rename from GUI/Model/Catalog/ItemCatalog.cpp
rename to GUI/Model/MakeItem/ItemCatalog.cpp
index a3d240752100b7391fa434fbaa25ead16433e894..0876d2680da5a43b88e419626f084cb7e39e0744 100644
--- a/GUI/Model/Catalog/ItemCatalog.cpp
+++ b/GUI/Model/MakeItem/ItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Catalog/ItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/ItemCatalog.cpp
 //! @brief     Implements class ItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,42 +12,43 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Catalog/ItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemCatalog.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
-#include "GUI/Model/Fit/FitParameterItem.h"
-#include "GUI/Model/Fit/FitParameterLinkItem.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Fit/MinimizerItem.h"
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Instrument/BackgroundItems.h"
-#include "GUI/Model/Instrument/BeamAngleItems.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
-#include "GUI/Model/Instrument/FootprintItems.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
-#include "GUI/Model/Instrument/ResolutionFunctionItems.h"
-#include "GUI/Model/Instrument/SpecularBeamInclinationItem.h"
-#include "GUI/Model/Instrument/SphericalDetectorItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
-#include "GUI/Model/Plot/Data1DViewItem.h"
-#include "GUI/Model/Plot/DataProperties.h"
-#include "GUI/Model/Plot/DataPropertyContainer.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Session/PropertyItem.h"
-#include "GUI/Model/Session/RealLimitsItems.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Item/BackgroundItems.h"
+#include "GUI/Model/Item/BeamAngleItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/DataProperties.h"
+#include "GUI/Model/Item/DataPropertyContainer.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
+#include "GUI/Model/Item/FitParameterItem.h"
+#include "GUI/Model/Item/FitParameterLinkItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/FootprintItems.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/MinimizerItem.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
+#include "GUI/Model/Item/ProjectionItems.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/RealLimitsItems.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
+#include "GUI/Model/Item/ResolutionFunctionItems.h"
+#include "GUI/Model/Item/SpecularBeamInclinationItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
+#include "GUI/Model/Item/SphericalDetectorItem.h"
+#include "GUI/Model/Item/VectorItem.h"
 
 ItemCatalog::ItemCatalog()
 {
diff --git a/GUI/Model/Catalog/ItemCatalog.h b/GUI/Model/MakeItem/ItemCatalog.h
similarity index 83%
rename from GUI/Model/Catalog/ItemCatalog.h
rename to GUI/Model/MakeItem/ItemCatalog.h
index 4c724640830eff1c58bf95d5bf1f9b3d8159714f..0b18f62f0b7a13adbde8e9dafd3abf26c7f28d1d 100644
--- a/GUI/Model/Catalog/ItemCatalog.h
+++ b/GUI/Model/MakeItem/ItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Catalog/ItemCatalog.h
+//! @file      GUI/Model/MakeItem/ItemCatalog.h
 //! @brief     Defines class ItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_CATALOG_ITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_CATALOG_ITEMCATALOG_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMCATALOG_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMCATALOG_H
 
 #include "Base/Util/IFactory.h"
 #include <QString>
@@ -37,4 +37,4 @@ private:
     IFactory<QString, SessionItem> m_data;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_CATALOG_ITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMCATALOG_H
diff --git a/GUI/Model/Catalog/ItemFactory.cpp b/GUI/Model/MakeItem/ItemFactory.cpp
similarity index 81%
rename from GUI/Model/Catalog/ItemFactory.cpp
rename to GUI/Model/MakeItem/ItemFactory.cpp
index 60e54ebabcf914ae399de1e8bca2bbe29e933ea3..841a38ba82cd5555a4f60cef4bf1df6df6913e8a 100644
--- a/GUI/Model/Catalog/ItemFactory.cpp
+++ b/GUI/Model/MakeItem/ItemFactory.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Catalog/ItemFactory.cpp
+//! @file      GUI/Model/MakeItem/ItemFactory.cpp
 //! @brief     Implements class ItemFactory
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Catalog/ItemFactory.h"
-#include "GUI/Model/Catalog/ItemCatalog.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/MakeItem/ItemFactory.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
+#include "GUI/Model/MakeItem/ItemCatalog.h"
 
 SessionItem* GUI::Model::ItemFactory::CreateItem(const QString& model_name, SessionItem* parent)
 {
diff --git a/GUI/Model/Catalog/ItemFactory.h b/GUI/Model/MakeItem/ItemFactory.h
similarity index 80%
rename from GUI/Model/Catalog/ItemFactory.h
rename to GUI/Model/MakeItem/ItemFactory.h
index ae0aa80d448f1fe6f13fecaa234f82ae98387ce8..2e73926cfab990ddf342c26a646fd2f360a68756 100644
--- a/GUI/Model/Catalog/ItemFactory.h
+++ b/GUI/Model/MakeItem/ItemFactory.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Catalog/ItemFactory.h
+//! @file      GUI/Model/MakeItem/ItemFactory.h
 //! @brief     Defines namespace GUI::Model::ItemFactory
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_CATALOG_ITEMFACTORY_H
-#define BORNAGAIN_GUI_MODEL_CATALOG_ITEMFACTORY_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMFACTORY_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMFACTORY_H
 
 #include <QString>
 
@@ -26,4 +26,4 @@ SessionItem* CreateItem(const QString& model_name, SessionItem* parent = nullptr
 
 } // namespace GUI::Model::ItemFactory
 
-#endif // BORNAGAIN_GUI_MODEL_CATALOG_ITEMFACTORY_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMFACTORY_H
diff --git a/GUI/Model/Sample/ItemWithParticlesCatalog.cpp b/GUI/Model/MakeItem/ItemWithParticlesCatalog.cpp
similarity index 88%
rename from GUI/Model/Sample/ItemWithParticlesCatalog.cpp
rename to GUI/Model/MakeItem/ItemWithParticlesCatalog.cpp
index 146c835c5295701b8d3cfe2f88fa717bed59fd16..3c901f656f565a5a8baa8f40815a2dc68255de51 100644
--- a/GUI/Model/Sample/ItemWithParticlesCatalog.cpp
+++ b/GUI/Model/MakeItem/ItemWithParticlesCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ItemWithParticlesCatalog.cpp
+//! @file      GUI/Model/MakeItem/ItemWithParticlesCatalog.cpp
 //! @brief     Implements class ItemWithParticlesCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
 
 ItemWithParticles* ItemWithParticlesCatalog::create(Type type)
 {
diff --git a/GUI/Model/Sample/ItemWithParticlesCatalog.h b/GUI/Model/MakeItem/ItemWithParticlesCatalog.h
similarity index 85%
rename from GUI/Model/Sample/ItemWithParticlesCatalog.h
rename to GUI/Model/MakeItem/ItemWithParticlesCatalog.h
index 9d060c42f24263ed745c6c7c1560c082b04ea4ae..60d14f1ddd5b8b8c2e5358301abcc95027733c3c 100644
--- a/GUI/Model/Sample/ItemWithParticlesCatalog.h
+++ b/GUI/Model/MakeItem/ItemWithParticlesCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/ItemWithParticlesCatalog.h
+//! @file      GUI/Model/MakeItem/ItemWithParticlesCatalog.h
 //! @brief     Defines class ItemWithParticlesCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHPARTICLESCATALOG_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHPARTICLESCATALOG_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMWITHPARTICLESCATALOG_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMWITHPARTICLESCATALOG_H
 
 #include <QString>
 #include <QVector>
@@ -51,4 +51,4 @@ public:
     static Type type(const ItemWithParticles* item);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_ITEMWITHPARTICLESCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMWITHPARTICLESCATALOG_H
diff --git a/GUI/Model/Sample/Lattice2DItemCatalog.cpp b/GUI/Model/MakeItem/Lattice2DItemCatalog.cpp
similarity index 92%
rename from GUI/Model/Sample/Lattice2DItemCatalog.cpp
rename to GUI/Model/MakeItem/Lattice2DItemCatalog.cpp
index 1f49cb715ff4d156fdd9d2d42d98534a0da3f0f7..ff04ec08001c07d6da609189561ad25664d3739e 100644
--- a/GUI/Model/Sample/Lattice2DItemCatalog.cpp
+++ b/GUI/Model/MakeItem/Lattice2DItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/Lattice2DItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/Lattice2DItemCatalog.cpp
 //! @brief     Implements class Lattice2DItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/Lattice2DItemCatalog.h"
+#include "GUI/Model/MakeItem/Lattice2DItemCatalog.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Sample/Lattice2DItems.h"
+#include "GUI/Model/Item/Lattice2DItems.h"
 
 Lattice2DItemCatalog::CatalogedType* Lattice2DItemCatalog::create(Type type)
 {
diff --git a/GUI/Model/Sample/Lattice2DItemCatalog.h b/GUI/Model/MakeItem/Lattice2DItemCatalog.h
similarity index 84%
rename from GUI/Model/Sample/Lattice2DItemCatalog.h
rename to GUI/Model/MakeItem/Lattice2DItemCatalog.h
index a41a1d9fbd31afe87858ec1419c6a6b74fd21155..46e7c8f9c3dbf8566d882b974307709a0635ec54 100644
--- a/GUI/Model/Sample/Lattice2DItemCatalog.h
+++ b/GUI/Model/MakeItem/Lattice2DItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/Lattice2DItemCatalog.h
+//! @file      GUI/Model/MakeItem/Lattice2DItemCatalog.h
 //! @brief     Defines class Lattice2DItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_LATTICE2DITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_LATTICE2DITEMCATALOG_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_LATTICE2DITEMCATALOG_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_LATTICE2DITEMCATALOG_H
 
 #include <QString>
 #include <QVector>
@@ -46,4 +46,4 @@ public:
     static Type type(const CatalogedType* item);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_LATTICE2DITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_LATTICE2DITEMCATALOG_H
diff --git a/GUI/Model/Fit/MinimizerItemCatalog.cpp b/GUI/Model/MakeItem/MinimizerItemCatalog.cpp
similarity index 93%
rename from GUI/Model/Fit/MinimizerItemCatalog.cpp
rename to GUI/Model/MakeItem/MinimizerItemCatalog.cpp
index 86e574c29068b8bf7ada70254a5d5db251d41b6a..2eccb93f69314d64d75d988d83aeda8f200b152c 100644
--- a/GUI/Model/Fit/MinimizerItemCatalog.cpp
+++ b/GUI/Model/MakeItem/MinimizerItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/MinimizerItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/MinimizerItemCatalog.cpp
 //! @brief     Implements MinimizerItemCatalog class
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/MinimizerItemCatalog.h"
+#include "GUI/Model/MakeItem/MinimizerItemCatalog.h"
 #include "Fit/Kernel/MinimizerFactory.h"
 #include "GUI/Util/String.h"
 
diff --git a/GUI/Model/Fit/MinimizerItemCatalog.h b/GUI/Model/MakeItem/MinimizerItemCatalog.h
similarity index 81%
rename from GUI/Model/Fit/MinimizerItemCatalog.h
rename to GUI/Model/MakeItem/MinimizerItemCatalog.h
index c2ff0daadb0ecf6c48bb459a959c7fe982d82a46..19625244ae61ca73aae488c6da115bdc02617870 100644
--- a/GUI/Model/Fit/MinimizerItemCatalog.h
+++ b/GUI/Model/MakeItem/MinimizerItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/MinimizerItemCatalog.h
+//! @file      GUI/Model/MakeItem/MinimizerItemCatalog.h
 //! @brief     Defines MinimizerItemCatalog class
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_MINIMIZERITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_FIT_MINIMIZERITEMCATALOG_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_MINIMIZERITEMCATALOG_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_MINIMIZERITEMCATALOG_H
 
 #include "GUI/Util/ComboProperty.h"
 
@@ -31,4 +31,4 @@ private:
     static QStringList algorithmDescriptions(const QString& minimizerType);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_MINIMIZERITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_MINIMIZERITEMCATALOG_H
diff --git a/GUI/Model/Sample/RotationItemCatalog.cpp b/GUI/Model/MakeItem/RotationItemCatalog.cpp
similarity index 93%
rename from GUI/Model/Sample/RotationItemCatalog.cpp
rename to GUI/Model/MakeItem/RotationItemCatalog.cpp
index 72daf41bf4ed1905bb40844b0fcafb9c0cbead70..ba2f24a173a431b04799b18b8f323b2b53a5ce88 100644
--- a/GUI/Model/Sample/RotationItemCatalog.cpp
+++ b/GUI/Model/MakeItem/RotationItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/RotationItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/RotationItemCatalog.cpp
 //! @brief     Implements class RotationItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/RotationItemCatalog.h"
+#include "GUI/Model/MakeItem/RotationItemCatalog.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Sample/RotationItems.h"
+#include "GUI/Model/Item/RotationItems.h"
 
 RotationItem* RotationItemCatalog::create(Type type)
 {
diff --git a/GUI/Model/Sample/RotationItemCatalog.h b/GUI/Model/MakeItem/RotationItemCatalog.h
similarity index 86%
rename from GUI/Model/Sample/RotationItemCatalog.h
rename to GUI/Model/MakeItem/RotationItemCatalog.h
index 973b280dd090776116f91937a3cb440f0327ff30..d151ec8e721604381cc19616456a06cfff917eef 100644
--- a/GUI/Model/Sample/RotationItemCatalog.h
+++ b/GUI/Model/MakeItem/RotationItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/RotationItemCatalog.h
+//! @file      GUI/Model/MakeItem/RotationItemCatalog.h
 //! @brief     Defines class RotationItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_ROTATIONITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_ROTATIONITEMCATALOG_H
+#ifndef BORNAGAIN_GUI_MODEL_MAKEITEM_ROTATIONITEMCATALOG_H
+#define BORNAGAIN_GUI_MODEL_MAKEITEM_ROTATIONITEMCATALOG_H
 
 #include <QString>
 #include <QVector>
@@ -58,4 +58,4 @@ public:
     static Type type(const RotationItem* item);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_ROTATIONITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_ROTATIONITEMCATALOG_H
diff --git a/GUI/Model/Project/ApplicationModels.cpp b/GUI/Model/Model/ApplicationModels.cpp
similarity index 93%
rename from GUI/Model/Project/ApplicationModels.cpp
rename to GUI/Model/Model/ApplicationModels.cpp
index 46150d68785e8c9898650b11b7e29f5c4c67b82c..5077e34a98dfe7ea69e832f7f27d8e144a5c1d77 100644
--- a/GUI/Model/Project/ApplicationModels.cpp
+++ b/GUI/Model/Model/ApplicationModels.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/ApplicationModels.cpp
+//! @file      GUI/Model/Model/ApplicationModels.cpp
 //! @brief     Defines class holding all application models
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Project/ApplicationModels.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Project/JobModel.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Model/ApplicationModels.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/RealDataModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Support/Data/SimulationOptionsItem.h"
 #include "GUI/Util/DeserializationException.h"
 #include <QXmlStreamWriter>
diff --git a/GUI/Model/Project/ApplicationModels.h b/GUI/Model/Model/ApplicationModels.h
similarity index 87%
rename from GUI/Model/Project/ApplicationModels.h
rename to GUI/Model/Model/ApplicationModels.h
index abae4bfb21135acd4652a9bdadfb304fc8350783..f7811935bb27e5f0265f5b1fcc28c6aed8a99bdb 100644
--- a/GUI/Model/Project/ApplicationModels.h
+++ b/GUI/Model/Model/ApplicationModels.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/ApplicationModels.h
+//! @file      GUI/Model/Model/ApplicationModels.h
 //! @brief     Defines class holding all application models
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PROJECT_APPLICATIONMODELS_H
-#define BORNAGAIN_GUI_MODEL_PROJECT_APPLICATIONMODELS_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_APPLICATIONMODELS_H
+#define BORNAGAIN_GUI_MODEL_MODEL_APPLICATIONMODELS_H
 
 #include <QObject>
 
@@ -57,4 +57,4 @@ private:
     JobModel* m_jobModel;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_PROJECT_APPLICATIONMODELS_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_APPLICATIONMODELS_H
diff --git a/GUI/Model/Fit/FitParameterHelper.cpp b/GUI/Model/Model/FitParameterHelper.cpp
similarity index 75%
rename from GUI/Model/Fit/FitParameterHelper.cpp
rename to GUI/Model/Model/FitParameterHelper.cpp
index 921a147d4b366b6d99762eb08645e98fb4d54ad5..8e5ad18ed72a5e3d7b5dd67c85535d7821d16515 100644
--- a/GUI/Model/Fit/FitParameterHelper.cpp
+++ b/GUI/Model/Model/FitParameterHelper.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterHelper.cpp
+//! @file      GUI/Model/Model/FitParameterHelper.cpp
 //! @brief     Implements namespace FitModelHelper
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,12 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/FitParameterHelper.h"
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
-#include "GUI/Model/Fit/FitParameterItem.h"
-#include "GUI/Model/Fit/FitParameterLinkItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Project/JobModel.h"
-
+#include "GUI/Model/Model/FitParameterHelper.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
+#include "GUI/Model/Item/FitParameterItem.h"
+#include "GUI/Model/Item/FitParameterLinkItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
 
 ParameterItem* FitParameterHelper::getParameterItem(FitParameterContainerItem* container,
                                                     const QString& link)
diff --git a/GUI/Model/Fit/FitParameterHelper.h b/GUI/Model/Model/FitParameterHelper.h
similarity index 82%
rename from GUI/Model/Fit/FitParameterHelper.h
rename to GUI/Model/Model/FitParameterHelper.h
index 98404ad9e09447a7fe44e0cf18a1fd732e0cbc55..d90ebffdb97abbcf93256304145ad7e88ecf1ffc 100644
--- a/GUI/Model/Fit/FitParameterHelper.h
+++ b/GUI/Model/Model/FitParameterHelper.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterHelper.h
+//! @file      GUI/Model/Model/FitParameterHelper.h
 //! @brief     Defines namespace FitParameterHelper
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERHELPER_H
-#define BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERHELPER_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_FITPARAMETERHELPER_H
+#define BORNAGAIN_GUI_MODEL_MODEL_FITPARAMETERHELPER_H
 
 #include <QStringList>
 
@@ -32,4 +32,4 @@ ParameterItem* getParameterItem(FitParameterContainerItem* container, const QStr
 
 } // namespace FitParameterHelper
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERHELPER_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_FITPARAMETERHELPER_H
diff --git a/GUI/Model/Fit/FitParameterModel.cpp b/GUI/Model/Model/FitParameterModel.cpp
similarity index 97%
rename from GUI/Model/Fit/FitParameterModel.cpp
rename to GUI/Model/Model/FitParameterModel.cpp
index 4107cc32f0c4db3f0bc5f0425edb4930c0d5af8d..5230a803f31ac76f5e97cc912a1ca02bda1fb889 100644
--- a/GUI/Model/Fit/FitParameterModel.cpp
+++ b/GUI/Model/Model/FitParameterModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterModel.cpp
+//! @file      GUI/Model/Model/FitParameterModel.cpp
 //! @brief     Implements class FitParameterAbsModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,14 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/FitParameterModel.h"
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
-#include "GUI/Model/Fit/FitParameterHelper.h"
-#include "GUI/Model/Fit/FitParameterItem.h"
-#include "GUI/Model/Fit/FitParameterLinkItem.h"
-#include "GUI/Model/Project/JobModel.h"
-#include "GUI/Model/Session/ModelPath.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/FitParameterModel.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
+#include "GUI/Model/Item/FitParameterItem.h"
+#include "GUI/Model/Item/FitParameterLinkItem.h"
+#include "GUI/Model/Model/FitParameterHelper.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/ModelPath.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Util/Error.h"
 #include <QColor>
 #include <QMimeData>
diff --git a/GUI/Model/Fit/FitParameterModel.h b/GUI/Model/Model/FitParameterModel.h
similarity index 93%
rename from GUI/Model/Fit/FitParameterModel.h
rename to GUI/Model/Model/FitParameterModel.h
index f4061e34a6c77df588a0f8f4cb45561140f4451a..fcfb7285142f7ba17effae58f6415f9f9f62ba7e 100644
--- a/GUI/Model/Fit/FitParameterModel.h
+++ b/GUI/Model/Model/FitParameterModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/FitParameterModel.h
+//! @file      GUI/Model/Model/FitParameterModel.h
 //! @brief     Defines class FitParameterModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERMODEL_H
-#define BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERMODEL_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_FITPARAMETERMODEL_H
+#define BORNAGAIN_GUI_MODEL_MODEL_FITPARAMETERMODEL_H
 
 #include <QAbstractItemModel>
 #include <QStringList>
@@ -85,4 +85,4 @@ inline Qt::DropActions FitParameterModel::supportedDropActions() const
     return Qt::MoveAction | Qt::CopyAction;
 }
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_FITPARAMETERMODEL_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_FITPARAMETERMODEL_H
diff --git a/GUI/Model/Instrument/InstrumentModel.cpp b/GUI/Model/Model/InstrumentModel.cpp
similarity index 95%
rename from GUI/Model/Instrument/InstrumentModel.cpp
rename to GUI/Model/Model/InstrumentModel.cpp
index a4d0128584f923214db3eaaf5d03054e2d8af6de..8f2f47a70d51643b11ce76db4c857d0649a86508 100644
--- a/GUI/Model/Instrument/InstrumentModel.cpp
+++ b/GUI/Model/Model/InstrumentModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/InstrumentModel.cpp
+//! @file      GUI/Model/Model/InstrumentModel.cpp
 //! @brief     Implements class InstrumentModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Util/String.h"
 
 InstrumentModel::InstrumentModel(QObject* parent)
diff --git a/GUI/Model/Instrument/InstrumentModel.h b/GUI/Model/Model/InstrumentModel.h
similarity index 88%
rename from GUI/Model/Instrument/InstrumentModel.h
rename to GUI/Model/Model/InstrumentModel.h
index 7dd9a8cdd80212a31389d55044ed51d3268e96f6..dd628993d4754795f204ca2f96246ba39bd6cbd7 100644
--- a/GUI/Model/Instrument/InstrumentModel.h
+++ b/GUI/Model/Model/InstrumentModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/InstrumentModel.h
+//! @file      GUI/Model/Model/InstrumentModel.h
 //! @brief     Defines class InstrumentModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTMODEL_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTMODEL_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_INSTRUMENTMODEL_H
+#define BORNAGAIN_GUI_MODEL_MODEL_INSTRUMENTMODEL_H
 
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include <functional>
 
 class InstrumentItem;
@@ -63,4 +63,4 @@ private:
     void onInstrumentPropertyChange(const InstrumentItem* instrument, const QString& propertyName);
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTMODEL_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_INSTRUMENTMODEL_H
diff --git a/GUI/Model/Project/JobModel.cpp b/GUI/Model/Model/JobModel.cpp
similarity index 90%
rename from GUI/Model/Project/JobModel.cpp
rename to GUI/Model/Model/JobModel.cpp
index 5a4c34400fe96556c6731d2f3ab4f548e7286365..f11c9ac34e4f58ff100c2c3b35e5b459c91a2cdb 100644
--- a/GUI/Model/Project/JobModel.cpp
+++ b/GUI/Model/Model/JobModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/JobModel.cpp
+//! @file      GUI/Model/Model/JobModel.cpp
 //! @brief     Implements class JobModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,18 +12,18 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Project/JobModel.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Project/JobModelFunctions.h"
-#include "GUI/Model/Project/JobQueueData.h"
-#include "GUI/Model/Project/ParameterTreeUtils.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Item/JobFunctions.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/JobQueueData.h"
+#include "GUI/Model/Model/SessionXML.h"
+#include "GUI/Model/OfItem/ParameterTreeUtils.h"
 
 JobModel::JobModel(QObject* parent)
     : SessionModel(GUI::Session::XML::JobModelTag, parent)
diff --git a/GUI/Model/Project/JobModel.h b/GUI/Model/Model/JobModel.h
similarity index 88%
rename from GUI/Model/Project/JobModel.h
rename to GUI/Model/Model/JobModel.h
index edede5667dedcaef90ef1681e4d57e672757aeca..5985312ded43b3d6a302f6b0b3f76daec396985a 100644
--- a/GUI/Model/Project/JobModel.h
+++ b/GUI/Model/Model/JobModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/JobModel.h
+//! @file      GUI/Model/Model/JobModel.h
 //! @brief     Defines class JobModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PROJECT_JOBMODEL_H
-#define BORNAGAIN_GUI_MODEL_PROJECT_JOBMODEL_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_JOBMODEL_H
+#define BORNAGAIN_GUI_MODEL_MODEL_JOBMODEL_H
 
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/SessionModel.h"
 
 class InstrumentItem;
 class JobItem;
@@ -60,4 +60,4 @@ private:
     JobQueueData* m_queue_data;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_PROJECT_JOBMODEL_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_JOBMODEL_H
diff --git a/GUI/Model/Project/JobQueueData.cpp b/GUI/Model/Model/JobQueueData.cpp
similarity index 97%
rename from GUI/Model/Project/JobQueueData.cpp
rename to GUI/Model/Model/JobQueueData.cpp
index 8987cdae5498e24076827a448787ba4bd75f2c60..dcbf51fa95e6ee309be56c476a59a133afe8b0f2 100644
--- a/GUI/Model/Project/JobQueueData.cpp
+++ b/GUI/Model/Model/JobQueueData.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/JobQueueData.cpp
+//! @file      GUI/Model/Model/JobQueueData.cpp
 //! @brief     Implements class JobQueueData
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Project/JobQueueData.h"
+#include "GUI/Model/Model/JobQueueData.h"
 #include "Core/Simulation/ISimulation.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/Model/To/DomainSimulationBuilder.h"
 #include "GUI/Support/Data/JobWorker.h"
 #include "GUI/Util/Error.h"
diff --git a/GUI/Model/Project/JobQueueData.h b/GUI/Model/Model/JobQueueData.h
similarity index 90%
rename from GUI/Model/Project/JobQueueData.h
rename to GUI/Model/Model/JobQueueData.h
index 0c47f74461023b5c281ee6b74f278084eb33ea4e..c7db48e4cb187f583e3d6b72db5771daefc4825d 100644
--- a/GUI/Model/Project/JobQueueData.h
+++ b/GUI/Model/Model/JobQueueData.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/JobQueueData.h
+//! @file      GUI/Model/Model/JobQueueData.h
 //! @brief     Defines class JobQueueData
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PROJECT_JOBQUEUEDATA_H
-#define BORNAGAIN_GUI_MODEL_PROJECT_JOBQUEUEDATA_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_JOBQUEUEDATA_H
+#define BORNAGAIN_GUI_MODEL_MODEL_JOBQUEUEDATA_H
 
 #include <QMap>
 #include <QObject>
@@ -67,4 +67,4 @@ private:
     JobModel* m_jobModel;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_PROJECT_JOBQUEUEDATA_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_JOBQUEUEDATA_H
diff --git a/GUI/Model/Material/MaterialModel.cpp b/GUI/Model/Model/MaterialModel.cpp
similarity index 97%
rename from GUI/Model/Material/MaterialModel.cpp
rename to GUI/Model/Model/MaterialModel.cpp
index d23071c416f5a4446082383e0162d355dabd4d58..e1297626aee177e832d5dd493d38dd680b521f56 100644
--- a/GUI/Model/Material/MaterialModel.cpp
+++ b/GUI/Model/Model/MaterialModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Material/MaterialModel.cpp
+//! @file      GUI/Model/Model/MaterialModel.cpp
 //! @brief     Implements class MaterialModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Material/MaterialModel.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Material/MaterialItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
 #include "GUI/Support/Data/XML.h"
 #include "GUI/Util/DeserializationException.h"
 #include <QColor>
diff --git a/GUI/Model/Material/MaterialModel.h b/GUI/Model/Model/MaterialModel.h
similarity index 92%
rename from GUI/Model/Material/MaterialModel.h
rename to GUI/Model/Model/MaterialModel.h
index 96ff5b68f7214ef40b3364750463dab798b2a696..491efd791f556ec00285dacf8148f3eedc61178c 100644
--- a/GUI/Model/Material/MaterialModel.h
+++ b/GUI/Model/Model/MaterialModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Material/MaterialModel.h
+//! @file      GUI/Model/Model/MaterialModel.h
 //! @brief     Defines class MaterialModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_MATERIAL_MATERIALMODEL_H
-#define BORNAGAIN_GUI_MODEL_MATERIAL_MATERIALMODEL_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_MATERIALMODEL_H
+#define BORNAGAIN_GUI_MODEL_MODEL_MATERIALMODEL_H
 
 #include <QObject>
 #include <QVector>
@@ -79,4 +79,4 @@ private:
     QVector<MaterialItem*> m_materialItems; //!< all materials (owned by this class)
 };
 
-#endif // BORNAGAIN_GUI_MODEL_MATERIAL_MATERIALMODEL_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_MATERIALMODEL_H
diff --git a/GUI/Model/Session/ModelPath.cpp b/GUI/Model/Model/ModelPath.cpp
similarity index 90%
rename from GUI/Model/Session/ModelPath.cpp
rename to GUI/Model/Model/ModelPath.cpp
index aa09e9895a4ffb133ef94fef1f3e57455671f14a..c47099203a54378bfc243c22086405c74c15e0de 100644
--- a/GUI/Model/Session/ModelPath.cpp
+++ b/GUI/Model/Model/ModelPath.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/ModelPath.cpp
+//! @file      GUI/Model/Model/ModelPath.cpp
 //! @brief     Implements class ModelPath
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Session/ModelPath.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/ModelPath.h"
+#include "GUI/Model/Model/SessionModel.h"
 
 //! Iterates through all the model and returns true if item is found. This is to
 
diff --git a/GUI/Model/Session/ModelPath.h b/GUI/Model/Model/ModelPath.h
similarity index 84%
rename from GUI/Model/Session/ModelPath.h
rename to GUI/Model/Model/ModelPath.h
index 121df21c34a034edcd28624b610e9f6b85ac46cd..50d2fa454e01ebc5657951177dc3252130aa9761 100644
--- a/GUI/Model/Session/ModelPath.h
+++ b/GUI/Model/Model/ModelPath.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/ModelPath.h
+//! @file      GUI/Model/Model/ModelPath.h
 //! @brief     Defines namespace GUI::Model::Path
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SESSION_MODELPATH_H
-#define BORNAGAIN_GUI_MODEL_SESSION_MODELPATH_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_MODELPATH_H
+#define BORNAGAIN_GUI_MODEL_MODEL_MODELPATH_H
 
 #include <QString>
 #include <memory>
@@ -34,4 +34,4 @@ SessionItem* ancestor(SessionItem* item, const QString& requiredModelType);
 
 } // namespace GUI::Model::Path
 
-#endif // BORNAGAIN_GUI_MODEL_SESSION_MODELPATH_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_MODELPATH_H
diff --git a/GUI/Model/Fit/ParameterTuningModel.cpp b/GUI/Model/Model/ParameterTuningModel.cpp
similarity index 94%
rename from GUI/Model/Fit/ParameterTuningModel.cpp
rename to GUI/Model/Model/ParameterTuningModel.cpp
index e26f7be1a4b09b646db33a47f04f5a66731f2979..388cb1e7382d02fa81ccedcc394c9731d3b4893e 100644
--- a/GUI/Model/Fit/ParameterTuningModel.cpp
+++ b/GUI/Model/Model/ParameterTuningModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/ParameterTuningModel.cpp
+//! @file      GUI/Model/Model/ParameterTuningModel.cpp
 //! @brief     Implements class ParameterTuningModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Fit/ParameterTuningModel.h"
-#include "GUI/Model/Fit/FitParameterHelper.h"
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/ParameterTuningModel.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Model/FitParameterHelper.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include <QMimeData>
 
 ParameterTuningModel::ParameterTuningModel(QObject* rootObject, QObject* parent)
diff --git a/GUI/Model/Fit/ParameterTuningModel.h b/GUI/Model/Model/ParameterTuningModel.h
similarity index 90%
rename from GUI/Model/Fit/ParameterTuningModel.h
rename to GUI/Model/Model/ParameterTuningModel.h
index 048f9bbdfaf5e00c422006e509f0e21077e07ae0..dda681b88c28d90b79edcded562258cfcec3dd71 100644
--- a/GUI/Model/Fit/ParameterTuningModel.h
+++ b/GUI/Model/Model/ParameterTuningModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Fit/ParameterTuningModel.h
+//! @file      GUI/Model/Model/ParameterTuningModel.h
 //! @brief     Defines class ParameterTuningModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_FIT_PARAMETERTUNINGMODEL_H
-#define BORNAGAIN_GUI_MODEL_FIT_PARAMETERTUNINGMODEL_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_PARAMETERTUNINGMODEL_H
+#define BORNAGAIN_GUI_MODEL_MODEL_PARAMETERTUNINGMODEL_H
 
 class ParameterItem;
 class ParameterLabelItem;
@@ -57,4 +57,4 @@ private:
     QObject* m_rootObject;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_FIT_PARAMETERTUNINGMODEL_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_PARAMETERTUNINGMODEL_H
diff --git a/GUI/Model/Data/RealDataModel.cpp b/GUI/Model/Model/RealDataModel.cpp
similarity index 94%
rename from GUI/Model/Data/RealDataModel.cpp
rename to GUI/Model/Model/RealDataModel.cpp
index e560e6e3a59992a2b09cd87261ba4ac90d9980a5..3eba4339c61b10febc9b8d04c083980f6b3d817c 100644
--- a/GUI/Model/Data/RealDataModel.cpp
+++ b/GUI/Model/Model/RealDataModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Data/RealDataModel.cpp
+//! @file      GUI/Model/Model/RealDataModel.cpp
 //! @brief     Implements class RealDataModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Session/DataItem.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/RealDataModel.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/SessionXML.h"
 
 RealDataModel::RealDataModel(QObject* parent)
     : SessionModel(GUI::Session::XML::RealDataModelTag, parent)
diff --git a/GUI/Model/Data/RealDataModel.h b/GUI/Model/Model/RealDataModel.h
similarity index 87%
rename from GUI/Model/Data/RealDataModel.h
rename to GUI/Model/Model/RealDataModel.h
index c8df8eaa248b4472b895b026d73994df59485c35..7c965ceb7bbcf68267bb13b8d27eedb2c3785497 100644
--- a/GUI/Model/Data/RealDataModel.h
+++ b/GUI/Model/Model/RealDataModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Data/RealDataModel.h
+//! @file      GUI/Model/Model/RealDataModel.h
 //! @brief     Defines class RealDataModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_DATA_REALDATAMODEL_H
-#define BORNAGAIN_GUI_MODEL_DATA_REALDATAMODEL_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_REALDATAMODEL_H
+#define BORNAGAIN_GUI_MODEL_MODEL_REALDATAMODEL_H
 
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/SessionModel.h"
 
 class RealDataItem;
 
@@ -53,4 +53,4 @@ private:
     using SessionModel::removeRows;   //< hiding this from usage - deprecated!
 };
 
-#endif // BORNAGAIN_GUI_MODEL_DATA_REALDATAMODEL_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_REALDATAMODEL_H
diff --git a/GUI/Model/Sample/SampleModel.cpp b/GUI/Model/Model/SampleModel.cpp
similarity index 89%
rename from GUI/Model/Sample/SampleModel.cpp
rename to GUI/Model/Model/SampleModel.cpp
index 9761cc1b5e0aa965523b2992d9dbf2886d9bb62d..f4c8700d0a9842f8ded50170494ed2da47226a13 100644
--- a/GUI/Model/Sample/SampleModel.cpp
+++ b/GUI/Model/Model/SampleModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/SampleModel.cpp
+//! @file      GUI/Model/Model/SampleModel.cpp
 //! @brief     Implements class SampleModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/SampleModel.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
+#include "GUI/Model/Model/SampleModel.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Model/XML/Serializer.h"
 #include <QApplication>
 
diff --git a/GUI/Model/Sample/SampleModel.h b/GUI/Model/Model/SampleModel.h
similarity index 86%
rename from GUI/Model/Sample/SampleModel.h
rename to GUI/Model/Model/SampleModel.h
index 0eb16794310c34805231a162e211c5c1bf9b7290..ddb4cc45709c7bb9bd5681322c478e2872163b51 100644
--- a/GUI/Model/Sample/SampleModel.h
+++ b/GUI/Model/Model/SampleModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/SampleModel.h
+//! @file      GUI/Model/Model/SampleModel.h
 //! @brief     Defines class SampleModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_SAMPLEMODEL_H
-#define BORNAGAIN_GUI_MODEL_SAMPLE_SAMPLEMODEL_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_SAMPLEMODEL_H
+#define BORNAGAIN_GUI_MODEL_MODEL_SAMPLEMODEL_H
 
 #include <QVector>
 
@@ -46,4 +46,4 @@ private:
     QVector<MultiLayerItem*> m_multiLayers;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_SAMPLE_SAMPLEMODEL_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_SAMPLEMODEL_H
diff --git a/GUI/Model/Session/SessionModel.cpp b/GUI/Model/Model/SessionModel.cpp
similarity index 98%
rename from GUI/Model/Session/SessionModel.cpp
rename to GUI/Model/Model/SessionModel.cpp
index c0539e9c7d03d5ddc36b48b41851f18847ebaf7e..8011e772f198b955b973e9651f9c7323ce2607c0 100644
--- a/GUI/Model/Session/SessionModel.cpp
+++ b/GUI/Model/Model/SessionModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/SessionModel.cpp
+//! @file      GUI/Model/Model/SessionModel.cpp
 //! @brief     Implements class SessionModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Session/SessionModel.h"
-#include "GUI/Model/Catalog/ItemFactory.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Session/SessionItem.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionModel.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/MakeItem/ItemFactory.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Support/Data/SessionFlags.h"
 #include "GUI/Support/Data/SessionItemTags.h"
 #include "GUI/Util/Error.h"
diff --git a/GUI/Model/Session/SessionModel.h b/GUI/Model/Model/SessionModel.h
similarity index 97%
rename from GUI/Model/Session/SessionModel.h
rename to GUI/Model/Model/SessionModel.h
index abe8d5cc39fc73201149bb9b8eb115f14faa3095..63dfa2642f889bc5694be0c6d64175aea3f1da1c 100644
--- a/GUI/Model/Session/SessionModel.h
+++ b/GUI/Model/Model/SessionModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Session/SessionModel.h
+//! @file      GUI/Model/Model/SessionModel.h
 //! @brief     Defines class SessionModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_SESSION_SESSIONMODEL_H
-#define BORNAGAIN_GUI_MODEL_SESSION_SESSIONMODEL_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_SESSIONMODEL_H
+#define BORNAGAIN_GUI_MODEL_MODEL_SESSIONMODEL_H
 
 #include "GUI/Model/Group/SelectionProperty.h"
 #include <QStringList>
@@ -201,4 +201,4 @@ inline void SessionModel::setDraggedItemType(const QString& type)
     m_dragged_item_type = type;
 }
 
-#endif // BORNAGAIN_GUI_MODEL_SESSION_SESSIONMODEL_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_SESSIONMODEL_H
diff --git a/GUI/Model/XML/SessionXML.cpp b/GUI/Model/Model/SessionXML.cpp
similarity index 90%
rename from GUI/Model/XML/SessionXML.cpp
rename to GUI/Model/Model/SessionXML.cpp
index 0c90fa9700a1a34867c6a66655c9e8e23c550424..82aa7a8f2e7490a96ba43912d39f178f866dff80 100644
--- a/GUI/Model/XML/SessionXML.cpp
+++ b/GUI/Model/Model/SessionXML.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/XML/SessionXML.cpp
+//! @file      GUI/Model/Model/SessionXML.cpp
 //! @brief     Implements reader and writer classes for SessionModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/XML/SessionXML.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/SessionXML.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Support/Data/SessionFlags.h"
 #include "GUI/Support/Data/SessionItemTags.h"
 #include "GUI/Support/Data/XML.h"
@@ -29,26 +29,6 @@
 
 namespace {
 
-void assertCurrentTag(QXmlStreamReader* reader, const QString& expectedTag)
-{
-    ASSERT(reader);
-
-    if (reader->name() != expectedTag) {
-#ifdef _DEBUG
-        // to simplify debugging: what is the current tag
-        QString foundTag = reader->name().toString();
-        Q_UNUSED(foundTag);
-#endif
-        throw DeserializationException::streamError();
-    }
-}
-
-void assertCurrentToken(QXmlStreamReader* reader, QXmlStreamReader::TokenType token)
-{
-    if (reader->tokenType() != token)
-        throw DeserializationException::streamError();
-}
-
 void report_error(MessageService* messageService, SessionModel* model, const QString& message)
 {
     if (!messageService)
@@ -76,21 +56,6 @@ SessionItem* createItem(SessionItem* parent, const QString& modelType, const QSt
 } // namespace
 
 
-void GUI::Session::XML::gotoEndElementOfTag(QXmlStreamReader* reader, const QString& tag)
-{
-    if (reader->name() != tag) {
-        if (!reader->isEndElement())
-            reader->skipCurrentElement();
-        reader->skipCurrentElement();
-    }
-    assertCurrentTag(reader, tag);
-    if (!reader->isEndElement())
-        reader->skipCurrentElement();
-
-    assertCurrentToken(reader, QXmlStreamReader::EndElement);
-    assertCurrentTag(reader, tag);
-}
-
 void GUI::Session::XML::writeModel(QXmlStreamWriter* writer, SessionItem* modelRootItem)
 {
     ASSERT(writer);
diff --git a/GUI/Model/XML/SessionXML.h b/GUI/Model/Model/SessionXML.h
similarity index 85%
rename from GUI/Model/XML/SessionXML.h
rename to GUI/Model/Model/SessionXML.h
index 2b744615091a972c2c764983edb2da7627e4bc29..e782582d5a2b030c8fc1e5da050c946b7729b40b 100644
--- a/GUI/Model/XML/SessionXML.h
+++ b/GUI/Model/Model/SessionXML.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/XML/SessionXML.h
+//! @file      GUI/Model/Model/SessionXML.h
 //! @brief     Defines reader and writer classes for SessionModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_XML_SESSIONXML_H
-#define BORNAGAIN_GUI_MODEL_XML_SESSIONXML_H
+#ifndef BORNAGAIN_GUI_MODEL_MODEL_SESSIONXML_H
+#define BORNAGAIN_GUI_MODEL_MODEL_SESSIONXML_H
 
 #include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
 #include <QVariant>
 #include <QXmlStreamWriter> // used in every including file
 #include <heinz/Complex.h>
@@ -38,8 +37,6 @@ constexpr auto ItemTag("Item");
 constexpr auto ModelTypeAttribute("ModelType");
 constexpr auto ParameterTag("Parameter");
 
-void gotoEndElementOfTag(QXmlStreamReader* reader, const QString& tag);
-
 void writeModel(QXmlStreamWriter* writer, SessionItem* modelRootItem);
 void writeItemAndChildItems(QXmlStreamWriter* writer, const SessionItem* item);
 
@@ -49,4 +46,4 @@ QString readProperty(QXmlStreamReader* reader, SessionItem* item);
 
 } // namespace GUI::Session::XML
 
-#endif // BORNAGAIN_GUI_MODEL_XML_SESSIONXML_H
+#endif // BORNAGAIN_GUI_MODEL_MODEL_SESSIONXML_H
diff --git a/GUI/Model/Project/ParameterTreeUtils.cpp b/GUI/Model/OfItem/ParameterTreeUtils.cpp
similarity index 92%
rename from GUI/Model/Project/ParameterTreeUtils.cpp
rename to GUI/Model/OfItem/ParameterTreeUtils.cpp
index 06f12eff790d43230019c3b0724b8674e3676c95..c9f03a59b36de0cbab7b88027d4a732445a4c627 100644
--- a/GUI/Model/Project/ParameterTreeUtils.cpp
+++ b/GUI/Model/OfItem/ParameterTreeUtils.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/ParameterTreeUtils.cpp
+//! @file      GUI/Model/OfItem/ParameterTreeUtils.cpp
 //! @brief     Implements ParameterTreeUtils namespace
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,27 +12,27 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Project/ParameterTreeUtils.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Sample/FTDecayFunctionItemCatalogs.h"
-#include "GUI/Model/Sample/FTDistributionItemCatalogs.h"
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
-#include "GUI/Model/Sample/InterferenceItemCatalog.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
-#include "GUI/Model/Sample/Lattice2DItemCatalog.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Sample/RotationItemCatalog.h"
-#include "GUI/Model/Session/PropertyItem.h"
+#include "GUI/Model/OfItem/ParameterTreeUtils.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FTDistributionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/InterferenceItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/Lattice2DItemCatalog.h"
+#include "GUI/Model/MakeItem/RotationItemCatalog.h"
 
 namespace {
 
diff --git a/GUI/Model/Project/ParameterTreeUtils.h b/GUI/Model/OfItem/ParameterTreeUtils.h
similarity index 90%
rename from GUI/Model/Project/ParameterTreeUtils.h
rename to GUI/Model/OfItem/ParameterTreeUtils.h
index 36084e07fe0b0ad87141476df8fab8f59b0a6557..b9377b9de8bde7e7f3636e611e5eaef65509c3b0 100644
--- a/GUI/Model/Project/ParameterTreeUtils.h
+++ b/GUI/Model/OfItem/ParameterTreeUtils.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Project/ParameterTreeUtils.h
+//! @file      GUI/Model/OfItem/ParameterTreeUtils.h
 //! @brief     Defines namespace GUI::Model::ParameterTreeUtils
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_PROJECT_PARAMETERTREEUTILS_H
-#define BORNAGAIN_GUI_MODEL_PROJECT_PARAMETERTREEUTILS_H
+#ifndef BORNAGAIN_GUI_MODEL_OFITEM_PARAMETERTREEUTILS_H
+#define BORNAGAIN_GUI_MODEL_OFITEM_PARAMETERTREEUTILS_H
 
 #include <QPair>
 #include <QString>
@@ -63,4 +63,4 @@ private:
     bool m_recreateBackupValues;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_PROJECT_PARAMETERTREEUTILS_H
+#endif // BORNAGAIN_GUI_MODEL_OFITEM_PARAMETERTREEUTILS_H
diff --git a/GUI/Model/Project/LinkInstrumentManager.cpp b/GUI/Model/Project/LinkInstrumentManager.cpp
index 3204bc66dcade11d6994ac03400430432da0069c..66b9b83c2d6992948bf99b98a439b7ff0739cc82 100644
--- a/GUI/Model/Project/LinkInstrumentManager.cpp
+++ b/GUI/Model/Project/LinkInstrumentManager.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Project/LinkInstrumentManager.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include <QMessageBox>
 #include <QPushButton>
 
diff --git a/GUI/Model/Project/OutputDataIOService.cpp b/GUI/Model/Project/OutputDataIOService.cpp
index 911ae3acadb18750c56753f72b78df1deb00175e..7b529779dee96a0bea3da14da2e747c6d69f2fe0 100644
--- a/GUI/Model/Project/OutputDataIOService.cpp
+++ b/GUI/Model/Project/OutputDataIOService.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Project/OutputDataIOService.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Project/ApplicationModels.h"
-#include "GUI/Model/Session/ModelPath.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Model/ApplicationModels.h"
+#include "GUI/Model/Model/ModelPath.h"
 #include "GUI/Support/IO/ProjectUtils.h"
 #include "GUI/Support/IO/SaveLoadInterface.h"
 #include "GUI/Util/MessageService.h"
diff --git a/GUI/Model/Project/ProjectDocument.cpp b/GUI/Model/Project/ProjectDocument.cpp
index 6e8dae97ef302c35c59ef4e9b7dee8b036e473e1..3177a4a08a47bfa2ca461cf677fcf75b1c58e7fe 100644
--- a/GUI/Model/Project/ProjectDocument.cpp
+++ b/GUI/Model/Project/ProjectDocument.cpp
@@ -13,14 +13,14 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/MaterialModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Model/Project/LinkInstrumentManager.h"
 #include "GUI/Model/Project/OutputDataIOService.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "GUI/Support/Data/SimulationOptionsItem.h"
 #include "GUI/Support/Data/XML.h"
diff --git a/GUI/Model/Project/ProjectDocument.h b/GUI/Model/Project/ProjectDocument.h
index c18d9b663dcd63b8e5ad65d82b396b0eb26c0d69..a67ae373ae8ab80acf6e746558046ae79f87104c 100644
--- a/GUI/Model/Project/ProjectDocument.h
+++ b/GUI/Model/Project/ProjectDocument.h
@@ -15,9 +15,9 @@
 #ifndef BORNAGAIN_GUI_MODEL_PROJECT_PROJECTDOCUMENT_H
 #define BORNAGAIN_GUI_MODEL_PROJECT_PROJECTDOCUMENT_H
 
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Project/ApplicationModels.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Model/ApplicationModels.h"
+#include "GUI/Model/Model/MaterialModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Support/Data/SimulationOptionsItem.h"
 #include <QObject>
 #include <QVariant>
diff --git a/GUI/Model/Sample/SampleValidator.cpp b/GUI/Model/Sample/SampleValidator.cpp
index 8a34447945e4216f0f371fd4dce3209cb3693a9d..03127f38c10d3c829c0c1bc29b751e4cf311e02d 100644
--- a/GUI/Model/Sample/SampleValidator.cpp
+++ b/GUI/Model/Sample/SampleValidator.cpp
@@ -13,12 +13,12 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Sample/SampleValidator.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
 
 
 void SampleValidator::validateItem(const ItemWithParticles* item)
diff --git a/GUI/Model/Instrument/InstrumentLibrary.cpp b/GUI/Model/State/InstrumentLibrary.cpp
similarity index 95%
rename from GUI/Model/Instrument/InstrumentLibrary.cpp
rename to GUI/Model/State/InstrumentLibrary.cpp
index 5d52bdfff4b01a610937e20341dae54997e48f07..a415e09355a9dd5d36b6f02ba78aaaadbdda371f 100644
--- a/GUI/Model/Instrument/InstrumentLibrary.cpp
+++ b/GUI/Model/State/InstrumentLibrary.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/InstrumentLibrary.cpp
+//! @file      GUI/Model/State/InstrumentLibrary.cpp
 //! @brief     Implements class InstrumentLibrary
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Instrument/InstrumentLibrary.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/State/InstrumentLibrary.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/Util/Path.h"
 #include <QFile>
 #include <QXmlStreamWriter>
diff --git a/GUI/Model/Instrument/InstrumentLibrary.h b/GUI/Model/State/InstrumentLibrary.h
similarity index 77%
rename from GUI/Model/Instrument/InstrumentLibrary.h
rename to GUI/Model/State/InstrumentLibrary.h
index d20bb567b7d131e1cdff1a38d523bd8f05ade170..ba2cb81afb5368e5a4b63e6dc070f5d8abe8ccaa 100644
--- a/GUI/Model/Instrument/InstrumentLibrary.h
+++ b/GUI/Model/State/InstrumentLibrary.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Instrument/InstrumentLibrary.h
+//! @file      GUI/Model/State/InstrumentLibrary.h
 //! @brief     Defines class InstrumentLibrary
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTLIBRARY_H
-#define BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTLIBRARY_H
+#ifndef BORNAGAIN_GUI_MODEL_STATE_INSTRUMENTLIBRARY_H
+#define BORNAGAIN_GUI_MODEL_STATE_INSTRUMENTLIBRARY_H
 
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 
 class InstrumentLibrary {
 public:
@@ -38,4 +38,4 @@ private:
     bool m_modified;
 };
 
-#endif // BORNAGAIN_GUI_MODEL_INSTRUMENT_INSTRUMENTLIBRARY_H
+#endif // BORNAGAIN_GUI_MODEL_STATE_INSTRUMENTLIBRARY_H
diff --git a/GUI/Model/State/SessionData.h b/GUI/Model/State/SessionData.h
index 7ee81d4658ee81ebfc8312991e55a89bf8dccf66..4d95ec9946432529724f9a9cd1c87a654a4aff17 100644
--- a/GUI/Model/State/SessionData.h
+++ b/GUI/Model/State/SessionData.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_STATE_SESSIONDATA_H
 #define BORNAGAIN_GUI_MODEL_STATE_SESSIONDATA_H
 
-#include "GUI/Model/Instrument/InstrumentLibrary.h"
+#include "GUI/Model/State/InstrumentLibrary.h"
 
 class ProjectDocument;
 
diff --git a/GUI/Model/To/DomainSimulationBuilder.cpp b/GUI/Model/To/DomainSimulationBuilder.cpp
index 5bef307413ff4ebb5211a52de405402393ecca30..6fd5f604e292bbb91ef91cab8c85e10fd289b9a9 100644
--- a/GUI/Model/To/DomainSimulationBuilder.cpp
+++ b/GUI/Model/To/DomainSimulationBuilder.cpp
@@ -21,13 +21,13 @@
 #include "Core/Simulation/includeSimulations.h"
 #include "Device/Beam/Beam.h"
 #include "Device/Beam/IFootprintFactor.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Instrument/BackgroundItems.h"
-#include "GUI/Model/Instrument/BeamAngleItems.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
-#include "GUI/Model/Instrument/FootprintItems.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/BackgroundItems.h"
+#include "GUI/Model/Item/BeamAngleItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
+#include "GUI/Model/Item/FootprintItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Model/To/ToDomain.h"
 #include "GUI/Support/Data/SimulationOptionsItem.h"
 #include "GUI/Util/Error.h"
diff --git a/GUI/Model/To/ToDomain.cpp b/GUI/Model/To/ToDomain.cpp
index a8b04dcc0f168aecd960fa6ff97d5e4dcc2dc76a..29c08dbad62d80442ac90347a0a254e76842874a 100644
--- a/GUI/Model/To/ToDomain.cpp
+++ b/GUI/Model/To/ToDomain.cpp
@@ -13,16 +13,16 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/To/ToDomain.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/LayerRoughnessItems.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/LayerRoughnessItems.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#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/Util/Error.h"
diff --git a/GUI/Model/Types/DoubleDescriptor.cpp b/GUI/Model/Types/DoubleDescriptor.cpp
index 8e9e4a29c95754af27d9aa24ce041d87f2201e5e..4f74c19b9db9cead2e2a8fd25485d14f7cdf3b01 100644
--- a/GUI/Model/Types/DoubleDescriptor.cpp
+++ b/GUI/Model/Types/DoubleDescriptor.cpp
@@ -13,35 +13,11 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Session/SessionItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/Path.h"
 #include <utility>
 
-DoubleDescriptor::DoubleDescriptor(const QString& label, SessionItem* item,
-                                   const variant<QString, Unit>& unit)
-    : DoubleDescriptor(
-        label, item->toolTip(), item->decimals(), item->limits(),
-        [=](double d) { item->setValue(d); }, [=]() { return item->value().toDouble(); }, unit)
-{
-    path = [=] {
-        ASSERT(item->model()); // if assert, item is not completely initialized
-        return GUI::Util::Path::getPathFromIndex(item->model()->indexOfItem(item));
-    };
-}
-
-DoubleDescriptor::DoubleDescriptor(SessionItem* item, const variant<QString, Unit>& unit)
-    : DoubleDescriptor(item->displayName(), item, unit)
-{
-}
-
-DoubleDescriptor::DoubleDescriptor(const QString& label, const QString& tooltip,
-                                   function<void(double)> setter, function<double()> getter,
-                                   const variant<QString, Unit>& unit)
-    : DoubleDescriptor(label, tooltip, 3, RealLimits::nonnegative(), setter, getter, unit)
-{
-}
-
 DoubleDescriptor::DoubleDescriptor(QString label_, QString tooltip_, int decimals_,
                                    const RealLimits& limits_, function<void(double)> setter,
                                    function<double()> getter, const variant<QString, Unit>& unit_)
@@ -58,6 +34,13 @@ DoubleDescriptor::DoubleDescriptor(QString label_, QString tooltip_, int decimal
     path = [] { return QString(); };
 }
 
+DoubleDescriptor::DoubleDescriptor(const QString& label, const QString& tooltip,
+                                   function<void(double)> setter, function<double()> getter,
+                                   const variant<QString, Unit>& unit)
+    : DoubleDescriptor(label, tooltip, 3, RealLimits::nonnegative(), setter, getter, unit)
+{
+}
+
 DoubleDescriptor::DoubleDescriptor(const QString& label, const QString& tooltip, double* var,
                                    const variant<QString, Unit>& unit)
     : DoubleDescriptor(label, tooltip, 3, RealLimits::nonnegative(), var, unit)
@@ -81,6 +64,23 @@ DoubleDescriptor::DoubleDescriptor(const QString& label, const double* var,
 {
 }
 
+DoubleDescriptor::DoubleDescriptor(const QString& label, SessionItem* item,
+                                   const variant<QString, Unit>& unit)
+    : DoubleDescriptor(
+        label, item->toolTip(), item->decimals(), item->limits(),
+        [=](double d) { item->setValue(d); }, [=]() { return item->value().toDouble(); }, unit)
+{
+    path = [=] {
+        ASSERT(item->model()); // if assert, item is not completely initialized
+        return GUI::Util::Path::getPathFromIndex(item->model()->indexOfItem(item));
+    };
+}
+
+DoubleDescriptor::DoubleDescriptor(SessionItem* item, const variant<QString, Unit>& unit)
+    : DoubleDescriptor(item->displayName(), item, unit)
+{
+}
+
 DoubleDescriptor::operator double() const
 {
     return get();
diff --git a/GUI/Model/Types/DoubleDescriptor.h b/GUI/Model/Types/DoubleDescriptor.h
index 36236317ad4f3da3628a0d69aca41d9eeb5e38f7..6e179e3a6bc55253fb413842d2a578ddd00a10c7 100644
--- a/GUI/Model/Types/DoubleDescriptor.h
+++ b/GUI/Model/Types/DoubleDescriptor.h
@@ -34,43 +34,43 @@ using std::variant;
 //! eases SessionItem migration. The underlying implementation can be a SessionItem, a simple double
 //! member, or any other construction to hold a double value.
 class DoubleDescriptor {
-public:
-    DoubleDescriptor(const DoubleDescriptor& other) = default;
+private: // private as long as path initialization is not included in params (to be done after
+         // SessionItem migration)
+    //! Operates on a double value (e.g a member variable).
+    DoubleDescriptor(const QString& label, const QString& tooltip, int decimals,
+                     const RealLimits& limits, double* var, const variant<QString, Unit>& unit);
 
-    //! Operates on a session item. The settings (like decimals, limits) are taken from the session
-    //! item.
-    //! Only for easier migration. Should be removed after SessionItem refactoring.
-    DoubleDescriptor(SessionItem* item, const variant<QString, Unit>& unit);
+    //! Operates on a double value (e.g a member variable).
+    //! Decimals is set to 3, limits is set to nonnegative
+    DoubleDescriptor(const QString& label, const QString& tooltip, double* var,
+                     const variant<QString, Unit>& unit);
 
+public:
     //! Operates on any kind of storage (e.g. session items), by using setter/getter methods
     //! decimals is set to 3, limits is set to nonnegative
     DoubleDescriptor(const QString& label, const QString& tooltip, function<void(double)> setter,
                      function<double()> getter, const variant<QString, Unit>& unit);
 
+    //! Operates on any kind of storage (e.g. session items), by using setter/getter methods
+    DoubleDescriptor(QString label, QString tooltip, int decimals, const RealLimits& limits,
+                     function<void(double)> setter, function<double()> getter,
+                     const variant<QString, Unit>& unit);
+
+    DoubleDescriptor(const QString& label, const double* var, const variant<QString, Unit>& unit);
+
     //! Operates on a session item. The settings (like decimals, limits) are taken from the session
     //! item.
     //! Only for easier migration. Should be removed after SessionItem refactoring.
     DoubleDescriptor(const QString& label, SessionItem* item, const variant<QString, Unit>& unit);
 
-    DoubleDescriptor(const QString& label, const double* var, const variant<QString, Unit>& unit);
-
-    //! Operates on any kind of storage (e.g. session items), by using setter/getter methods
-    DoubleDescriptor(QString label, QString tooltip, int decimals, const RealLimits& limits,
-                     function<void(double)> setter, function<double()> getter,
-                     const variant<QString, Unit>& unit);
+    //! Operates on a session item. The settings (like decimals, limits) are taken from the session
+    //! item.
+    //! Only for easier migration. Should be removed after SessionItem refactoring.
+    DoubleDescriptor(SessionItem* item, const variant<QString, Unit>& unit);
 
     DoubleDescriptor() = default;
 
-private: // private as long as path initialization is not included in params (to be done after
-         // SessionItem migration)
-    //! Operates on a double value (e.g a member variable).
-    DoubleDescriptor(const QString& label, const QString& tooltip, int decimals,
-                     const RealLimits& limits, double* var, const variant<QString, Unit>& unit);
-
-    //! Operates on a double value (e.g a member variable).
-    //! Decimals is set to 3, limits is set to nonnegative
-    DoubleDescriptor(const QString& label, const QString& tooltip, double* var,
-                     const variant<QString, Unit>& unit);
+    DoubleDescriptor(const DoubleDescriptor& other) = default;
 
 public:
     //! Return the current value of the handled parameter.
diff --git a/GUI/Model/Types/UIntDescriptor.cpp b/GUI/Model/Types/UIntDescriptor.cpp
index 8d010555bd816ea35089329e3bd27bbd161518d0..92f0ef583f0b2b45cfd446bd3e02984874690331 100644
--- a/GUI/Model/Types/UIntDescriptor.cpp
+++ b/GUI/Model/Types/UIntDescriptor.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/Model/Types/UIntDescriptor.h"
 
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <utility>
 
 UIntDescriptor::UIntDescriptor(const QString& label, SessionItem* item,
diff --git a/GUI/Model/Types/VectorDescriptor.h b/GUI/Model/Types/VectorDescriptor.h
index 7ae43e95fc1a50688751a94598b7a92376c7fae5..d458d66db5095059efe38d02d82e88589150f26a 100644
--- a/GUI/Model/Types/VectorDescriptor.h
+++ b/GUI/Model/Types/VectorDescriptor.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_TYPES_VECTORDESCRIPTOR_H
 
 #include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include <heinz/Vectors3D.h>
 
 //! Describes properties of a 3D vector, consisting of three double values.
 //!
@@ -27,19 +27,6 @@ class VectorDescriptor {
 public:
     VectorDescriptor() = default;
 
-    //! Operates on a VectorItem.
-    //!
-    //! The settings (like decimals, limits) are taken from the item.
-    //! Only for easier migration. Should be removed after SessionItem refactoring.
-    VectorDescriptor(VectorItem* item, const variant<QString, Unit>& unit)
-        : label(item->displayName())
-        , tooltip(item->toolTip())
-        , x(item->xItem(), unit)
-        , y(item->yItem(), unit)
-        , z(item->zItem(), unit)
-    {
-    }
-
     VectorDescriptor(const QString& label, const QString& tooltip, double* xVar, double* yVar,
                      double* zVar, const variant<QString, Unit>& unit)
         : label(label)
diff --git a/GUI/Model/XML/Serializer.cpp b/GUI/Model/XML/Serializer.cpp
index ab0d511549de7020c0b935caa0ef66af4e5651ec..d69c0e5ab4ca077afbe4242bcb1394069dcd7cbc 100644
--- a/GUI/Model/XML/Serializer.cpp
+++ b/GUI/Model/XML/Serializer.cpp
@@ -16,7 +16,6 @@
 #include "GUI/Model/Types/DoubleProperty.h"
 #include "GUI/Model/Types/UIntProperty.h"
 #include "GUI/Model/Types/VectorProperty.h"
-#include "GUI/Model/XML/SessionXML.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 79adf72f4e8ad2238bc2e634bd30927e894e7f38..e62d1d5f456e2e2d35c5a3f267b2f509bf24a018 100644
--- a/GUI/Model/XML/Serializer.h
+++ b/GUI/Model/XML/Serializer.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_XML_SERIALIZER_H
 
 #include "GUI/Model/Group/SelectionProperty.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
+#include "GUI/Model/Types/DoubleProperty.h"
 #include <QXmlStreamWriter> // used in every including file
 
 class DoubleProperty;
@@ -45,7 +45,6 @@ public:
     void rw(VectorProperty& d);
     void rw(UIntProperty& d);
 
-
     //! serialize a list with a known and fixed type which is not a base class, but the real class
     template <typename T> void rw(const QString& tag, QVector<T>& vec)
     {
diff --git a/GUI/Support/Data/XML.cpp b/GUI/Support/Data/XML.cpp
index 393694de2fd2211f62f25b42d5cea870dea31848..5cf92825dd92b31e94b39c3391b56f634950e55d 100644
--- a/GUI/Support/Data/XML.cpp
+++ b/GUI/Support/Data/XML.cpp
@@ -22,6 +22,46 @@
 #include <QUuid>
 #include <QXmlStreamWriter>
 
+namespace {
+
+void assertCurrentTag(QXmlStreamReader* reader, const QString& expectedTag)
+{
+
+    if (reader->name() != expectedTag) {
+#ifdef _DEBUG
+        // to simplify debugging: what is the current tag
+        QString foundTag = reader->name().toString();
+        Q_UNUSED(foundTag);
+#endif
+        throw DeserializationException::streamError();
+    }
+}
+
+void assertCurrentToken(QXmlStreamReader* reader, QXmlStreamReader::TokenType token)
+{
+    if (reader->tokenType() != token)
+        throw DeserializationException::streamError();
+}
+
+} // namespace
+
+
+void GUI::Session::XML::gotoEndElementOfTag(QXmlStreamReader* reader, const QString& tag)
+{
+    ASSERT(reader);
+    if (reader->name() != tag) {
+        if (!reader->isEndElement())
+            reader->skipCurrentElement();
+        reader->skipCurrentElement();
+    }
+    assertCurrentTag(reader, tag);
+    if (!reader->isEndElement())
+        reader->skipCurrentElement();
+
+    assertCurrentToken(reader, QXmlStreamReader::EndElement);
+    assertCurrentTag(reader, tag);
+}
+
 void GUI::Session::XML::writeAttribute(QXmlStreamWriter* writer, const QString& attributeName,
                                        const QVariant& variant)
 {
diff --git a/GUI/Support/Data/XML.h b/GUI/Support/Data/XML.h
index c4abfb2181b750fcbe382f88855f089d5d980a54..79d06470043827478d3924a6b2d37e0bdf4895f6 100644
--- a/GUI/Support/Data/XML.h
+++ b/GUI/Support/Data/XML.h
@@ -46,6 +46,8 @@ constexpr auto ExternalPropertyIdentifierAtt("Identifier");
 
 constexpr auto Version("Version");
 
+void gotoEndElementOfTag(QXmlStreamReader* reader, const QString& tag);
+
 //! Write the variant as a complete tag, including the given role
 void writeVariant(QXmlStreamWriter* writer, QVariant variant, int role);
 
diff --git a/GUI/View/Common/ItemStackWidget.cpp b/GUI/View/Common/ItemStackWidget.cpp
index a5e28497728f310a6efffe7b164462888af6e1e6..ea37e4aeea0117ed70d8fa042a04fa8c8eb859c1 100644
--- a/GUI/View/Common/ItemStackWidget.cpp
+++ b/GUI/View/Common/ItemStackWidget.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Common/ItemStackWidget.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/Error.h"
 #include <QStackedWidget>
 #include <QVBoxLayout>
diff --git a/GUI/View/Common/SessionItemController.cpp b/GUI/View/Common/SessionItemController.cpp
index 93af52512fcff4c0317b52b1681c3d96f4909e43..c5025ea4928004193942a4b6b952e2b50170bc6c 100644
--- a/GUI/View/Common/SessionItemController.cpp
+++ b/GUI/View/Common/SessionItemController.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Common/SessionItemController.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 SessionItemController::SessionItemController(QObject* prt)
     : QObject(prt)
diff --git a/GUI/View/Fit/FilterPropertyProxy.cpp b/GUI/View/Fit/FilterPropertyProxy.cpp
index bf8c3f3d3972d49cb860532c713a6bc245267838..601059be375f407153e7a50e425cb1dd5a282a8c 100644
--- a/GUI/View/Fit/FilterPropertyProxy.cpp
+++ b/GUI/View/Fit/FilterPropertyProxy.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/FilterPropertyProxy.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Session/PropertyItem.h"
-#include "GUI/Model/Session/SessionModel.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Item/VectorItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Support/Data/SessionFlags.h"
 
 int FilterPropertyProxy::columnCount(const QModelIndex& parent) const
diff --git a/GUI/View/Fit/FitActivityPanel.cpp b/GUI/View/Fit/FitActivityPanel.cpp
index c5718d1c9d2d374f9dcfcb42f5be8f4bfa531dc2..6af57e4502bad2e6ecd1936058ca6bb44e4465c3 100644
--- a/GUI/View/Fit/FitActivityPanel.cpp
+++ b/GUI/View/Fit/FitActivityPanel.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/FitActivityPanel.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/View/Fit/FitSessionController.h"
 #include "GUI/View/Fit/FitSessionManager.h"
 #include "GUI/View/Fit/FitSessionWidget.h"
diff --git a/GUI/View/Fit/FitObjectiveBuilder.cpp b/GUI/View/Fit/FitObjectiveBuilder.cpp
index f3564a844fbdc5c67a3cdc0d77924898088c0036..3ec9e32d3de5cb9a9b48d30fc842ff00ea70b553 100644
--- a/GUI/View/Fit/FitObjectiveBuilder.cpp
+++ b/GUI/View/Fit/FitObjectiveBuilder.cpp
@@ -18,12 +18,12 @@
 #include "Core/Simulation/ISimulation.h"
 #include "Fit/Kernel/Minimizer.h"
 #include "Fit/Minimizer/IMinimizer.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Fit/MinimizerItem.h"
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/MinimizerItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
 #include "GUI/Model/To/DomainSimulationBuilder.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/Fit/GUIFitObserver.h"
diff --git a/GUI/View/Fit/FitParameterDelegate.cpp b/GUI/View/Fit/FitParameterDelegate.cpp
index 5d79c7e42e5cba3e8b3d5d8442c94a46c5c4bffc..9a8adf7c05db6730aefc119bec20a92519b96aac 100644
--- a/GUI/View/Fit/FitParameterDelegate.cpp
+++ b/GUI/View/Fit/FitParameterDelegate.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/FitParameterDelegate.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/View/PropertyEditor/CustomEditors.h"
 #include "GUI/View/PropertyEditor/CustomEventFilters.h"
 #include "GUI/View/PropertyEditor/PropertyEditorFactory.h"
diff --git a/GUI/View/Fit/FitParameterWidget.cpp b/GUI/View/Fit/FitParameterWidget.cpp
index dc7c7ded87fda4bd023657fe9d8af039f56bdd9c..4bca75a1c5701c30e2e0e0c52995ca0f0ff7f4ef 100644
--- a/GUI/View/Fit/FitParameterWidget.cpp
+++ b/GUI/View/Fit/FitParameterWidget.cpp
@@ -13,15 +13,15 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/FitParameterWidget.h"
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
-#include "GUI/Model/Fit/FitParameterHelper.h"
-#include "GUI/Model/Fit/FitParameterItem.h"
-#include "GUI/Model/Fit/FitParameterLinkItem.h"
-#include "GUI/Model/Fit/FitParameterModel.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
+#include "GUI/Model/Item/FitParameterItem.h"
+#include "GUI/Model/Item/FitParameterLinkItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Model/FitParameterHelper.h"
+#include "GUI/Model/Model/FitParameterModel.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/View/Fit/FilterPropertyProxy.h"
 #include "GUI/View/Fit/FitParameterDelegate.h"
 #include "GUI/View/Fit/ParameterTuningWidget.h"
diff --git a/GUI/View/Fit/FitSessionController.cpp b/GUI/View/Fit/FitSessionController.cpp
index de805f8bde8466e9bbbdc8c45cba72d18d52142e..a7fb2dc49bc9290937db203f06011d7b174486a4 100644
--- a/GUI/View/Fit/FitSessionController.cpp
+++ b/GUI/View/Fit/FitSessionController.cpp
@@ -13,11 +13,11 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/FitSessionController.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
-#include "GUI/Model/Fit/FitParameterItem.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
+#include "GUI/Model/Item/FitParameterItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/Util/Error.h"
 #include "GUI/Util/Path.h"
 #include "GUI/View/Fit/FitLog.h"
diff --git a/GUI/View/Fit/FitSessionManager.cpp b/GUI/View/Fit/FitSessionManager.cpp
index 1787f8e2a31c91ca0bcd6c6632d2419eac03071b..e559911ae576b622977585cbdd595d93b68e9f6c 100644
--- a/GUI/View/Fit/FitSessionManager.cpp
+++ b/GUI/View/Fit/FitSessionManager.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/FitSessionManager.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/Fit/FitLog.h"
 #include "GUI/View/Fit/FitSessionController.h"
diff --git a/GUI/View/Fit/FitSessionWidget.cpp b/GUI/View/Fit/FitSessionWidget.cpp
index dccfb9a6e1ef70d51c1accec2d2fd883f2e47701..c801db45ebdeeceed8060bed8281a79a94e3d019 100644
--- a/GUI/View/Fit/FitSessionWidget.cpp
+++ b/GUI/View/Fit/FitSessionWidget.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/FitSessionWidget.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/View/Fit/FitParameterWidget.h"
 #include "GUI/View/Fit/FitSessionController.h"
 #include "GUI/View/Fit/MinimizerSettingsWidget.h"
diff --git a/GUI/View/Fit/JobRealTimeWidget.cpp b/GUI/View/Fit/JobRealTimeWidget.cpp
index e81da33e7d3857eb8ef8bbab6a0ab4696ea34e43..b04ddc9afbd7004b435bd9cbba502330e4be798e 100644
--- a/GUI/View/Fit/JobRealTimeWidget.cpp
+++ b/GUI/View/Fit/JobRealTimeWidget.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/JobRealTimeWidget.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/View/Fit/ParameterTuningWidget.h"
 #include "GUI/View/Tool/mainwindow_constants.h"
 #include <QVBoxLayout>
diff --git a/GUI/View/Fit/MinimizerSettingsWidget.cpp b/GUI/View/Fit/MinimizerSettingsWidget.cpp
index 3eea207d3d362948fd6b21a2499a1aa1a3a30de8..c8aefce7f2e34fc5e9b162eefddc31f0a3a64baf 100644
--- a/GUI/View/Fit/MinimizerSettingsWidget.cpp
+++ b/GUI/View/Fit/MinimizerSettingsWidget.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/MinimizerSettingsWidget.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Fit/MinimizerItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/MinimizerItem.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/Tool/LayoutUtils.h"
 #include <QComboBox>
diff --git a/GUI/View/Fit/ParameterTuningDelegate.cpp b/GUI/View/Fit/ParameterTuningDelegate.cpp
index caaf47b6c2c3fba2cd5f7944753160cef318925e..4ae85c7359d62b0cdc2a051a06a74e4c09f96056 100644
--- a/GUI/View/Fit/ParameterTuningDelegate.cpp
+++ b/GUI/View/Fit/ParameterTuningDelegate.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/ParameterTuningDelegate.h"
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Fit/ParameterTuningModel.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Model/ParameterTuningModel.h"
 #include "GUI/View/PropertyEditor/ScientificSpinBox.h"
 #include <QAbstractItemModel>
 #include <QApplication>
diff --git a/GUI/View/Fit/ParameterTuningWidget.cpp b/GUI/View/Fit/ParameterTuningWidget.cpp
index aaf991a76bb9f2642229fdf79f78b776cbbb5e6e..7182c583e085360032ca36f5ce6685d62bf04a84 100644
--- a/GUI/View/Fit/ParameterTuningWidget.cpp
+++ b/GUI/View/Fit/ParameterTuningWidget.cpp
@@ -13,11 +13,11 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/ParameterTuningWidget.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Fit/ParameterTreeItems.h"
-#include "GUI/Model/Fit/ParameterTuningModel.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/ParameterTreeItems.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/ParameterTuningModel.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/Common/StyledToolBar.h"
 #include "GUI/View/Fit/ParameterTuningDelegate.h"
diff --git a/GUI/View/Fit/RunFitControlWidget.cpp b/GUI/View/Fit/RunFitControlWidget.cpp
index 01010ecc19171edfd97732a4f0ee5c4d2cfbea3e..4cd608b862a386ed5ab87cbcc3ad8b7a31b35d9a 100644
--- a/GUI/View/Fit/RunFitControlWidget.cpp
+++ b/GUI/View/Fit/RunFitControlWidget.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/RunFitControlWidget.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/View/Info/CautionSign.h"
 #include "GUI/View/Tool/DesignerHelper.h"
 #include "GUI/View/Tool/mainwindow_constants.h"
diff --git a/GUI/View/FromDomain/FromDomain.cpp b/GUI/View/FromDomain/FromDomain.cpp
index 6d36b4892b17743c7893cbeb4c6d8094531801bb..15eb5b693901a29dbd517e101a3435f237e64184 100644
--- a/GUI/View/FromDomain/FromDomain.cpp
+++ b/GUI/View/FromDomain/FromDomain.cpp
@@ -32,19 +32,19 @@
 #include "Device/Mask/Rectangle.h"
 #include "Device/Resolution/ConvolutionDetectorResolution.h"
 #include "Device/Resolution/ResolutionFunction2DGaussian.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Instrument/BackgroundItems.h"
-#include "GUI/Model/Instrument/BeamAngleItems.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
-#include "GUI/Model/Instrument/ResolutionFunctionItems.h"
-#include "GUI/Model/Instrument/SphericalDetectorItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/BackgroundItems.h"
+#include "GUI/Model/Item/BeamAngleItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
+#include "GUI/Model/Item/ResolutionFunctionItems.h"
+#include "GUI/Model/Item/SphericalDetectorItem.h"
 #include "GUI/Util/Error.h"
 #include "Param/Distrib/Distributions.h"
 #include "Param/Distrib/RangedDistributions.h"
diff --git a/GUI/View/FromDomain/GUIObjectBuilder.cpp b/GUI/View/FromDomain/GUIObjectBuilder.cpp
index 7c6eb916e2f30dd4694732b6c9702c6e7f57869c..357ebed11d083a9ec8b1486bdf8fd47dd49a6919 100644
--- a/GUI/View/FromDomain/GUIObjectBuilder.cpp
+++ b/GUI/View/FromDomain/GUIObjectBuilder.cpp
@@ -16,8 +16,8 @@
 #include "Base/Const/Units.h"
 #include "Base/Util/Assert.h"
 #include "Core/Simulation/includeSimulations.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 #include "GUI/Support/Data/SimulationOptionsItem.h"
 #include "GUI/View/FromDomain/FromDomain.h"
 #include "GUI/View/FromDomain/GUISampleBuilder.h"
diff --git a/GUI/View/FromDomain/GUISampleBuilder.cpp b/GUI/View/FromDomain/GUISampleBuilder.cpp
index 76a5a94e046a1bf87c2cc7a3d3c0500bce1094d6..171f90512be27f225d8cb245dd063e729d932a03 100644
--- a/GUI/View/FromDomain/GUISampleBuilder.cpp
+++ b/GUI/View/FromDomain/GUISampleBuilder.cpp
@@ -13,15 +13,15 @@
 //  ************************************************************************************************
 
 #include "GUI/View/FromDomain/GUISampleBuilder.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/View/FromDomain/FromDomain.h"
 #include "Sample/Aggregate/ParticleLayout.h"
diff --git a/GUI/View/Import/ImportDataUtils.cpp b/GUI/View/Import/ImportDataUtils.cpp
index 0e640739cf421c7c48aee66c87d2607eaf2d6289..3c907e81ec9d7e83633474c93ca718a09055e97d 100644
--- a/GUI/View/Import/ImportDataUtils.cpp
+++ b/GUI/View/Import/ImportDataUtils.cpp
@@ -15,7 +15,7 @@
 #include "GUI/View/Import/ImportDataUtils.h"
 #include "Device/Data/OutputData.h"
 #include "Device/InputOutput/DataFormatUtils.h"
-#include "GUI/Model/Data/RealDataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
 #include "GUI/Support/IO/ImportDataInfo.h"
 #include "GUI/Support/IO/OutputDataUtils.h"
 #include "GUI/View/Loaders/QREDataLoader.h"
diff --git a/GUI/View/Import/ImportDataView.cpp b/GUI/View/Import/ImportDataView.cpp
index 628b9af847e17bb38362ed1cbf585fba6def2f72..8da8d6ca5871f09d63d4e1d6be602ccf80b3e105 100644
--- a/GUI/View/Import/ImportDataView.cpp
+++ b/GUI/View/Import/ImportDataView.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Import/ImportDataView.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/View/Import/RealDataSelectorWidget.h"
 #include "GUI/View/Tool/mainwindow_constants.h"
diff --git a/GUI/View/Import/RealDataMaskWidget.cpp b/GUI/View/Import/RealDataMaskWidget.cpp
index 74ce96d0ea4a11a42f25187d71a338f76569d4d4..6bbdf39057dde197a7daefff26f2a69a40636fbc 100644
--- a/GUI/View/Import/RealDataMaskWidget.cpp
+++ b/GUI/View/Import/RealDataMaskWidget.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Import/RealDataMaskWidget.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/RealDataItem.h"
 #include "GUI/View/Mask/MaskEditor.h"
 #include <QAction>
 #include <QBoxLayout>
diff --git a/GUI/View/Import/RealDataPresenter.cpp b/GUI/View/Import/RealDataPresenter.cpp
index fde8fd89739fe4de1f8f2611f2bf9bcd89d2565a..028a2eb120f444cf19fd4b1716ebe716a302e8d6 100644
--- a/GUI/View/Import/RealDataPresenter.cpp
+++ b/GUI/View/Import/RealDataPresenter.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Import/RealDataPresenter.h"
-#include "GUI/Model/Data/RealDataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/Import/RealDataMaskWidget.h"
 #include "GUI/View/Import/SpecularDataImportWidget.h"
diff --git a/GUI/View/Import/RealDataPropertiesWidget.cpp b/GUI/View/Import/RealDataPropertiesWidget.cpp
index 82462a81b42cffc753e1832ece3985e59f9f7ee5..4087f201f541dd8eb412eb42aaedea74d7688e58 100644
--- a/GUI/View/Import/RealDataPropertiesWidget.cpp
+++ b/GUI/View/Import/RealDataPropertiesWidget.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Import/RealDataPropertiesWidget.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 #include "GUI/Model/Project/LinkInstrumentManager.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/View/Global/Globals.h"
diff --git a/GUI/View/Import/RealDataSelectorWidget.cpp b/GUI/View/Import/RealDataSelectorWidget.cpp
index 88404e3a74218a8def793fb31493dcadafdb22a9..0f36dd620f80f6f2de111248f06e85a68a183228 100644
--- a/GUI/View/Import/RealDataSelectorWidget.cpp
+++ b/GUI/View/Import/RealDataSelectorWidget.cpp
@@ -15,8 +15,8 @@
 #include "GUI/View/Import/RealDataSelectorWidget.h"
 #include "Device/Data/DataUtils.h"
 #include "GUI/Application/ApplicationSettings.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include "GUI/Support/IO/AbstractDataLoader1D.h"
 #include "GUI/Support/IO/DataLoaders1D.h"
 #include "GUI/Util/Error.h"
diff --git a/GUI/View/Import/RealDataTreeModel.cpp b/GUI/View/Import/RealDataTreeModel.cpp
index 638f1c734bf2a107b9c591bb7f2833f007b4019e..07efec268c1650fad21209e1dd9219b15f4e9b7b 100644
--- a/GUI/View/Import/RealDataTreeModel.cpp
+++ b/GUI/View/Import/RealDataTreeModel.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/View/Import/RealDataTreeModel.h"
 #include "GUI/Application/ApplicationSettings.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include <QApplication>
 #include <QtCore>
 #include <QtGui>
diff --git a/GUI/View/Import/SpecularDataImportWidget.cpp b/GUI/View/Import/SpecularDataImportWidget.cpp
index e7e014b0029f6995e656f76360403691f28dbfbc..9a668ef5c39b12bf1e8b98bee640fff3f762a68a 100644
--- a/GUI/View/Import/SpecularDataImportWidget.cpp
+++ b/GUI/View/Import/SpecularDataImportWidget.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Import/SpecularDataImportWidget.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Support/IO/AbstractDataLoaderResultModel.h"
 #include "GUI/Support/IO/DataLoaders1D.h"
 #include "GUI/View/Global/Globals.h"
diff --git a/GUI/View/Instrument/DepthProbeInstrumentEditor.cpp b/GUI/View/Instrument/DepthProbeInstrumentEditor.cpp
index de8b252945412f5742e05a7500b42ce9f7e420e5..573e897aef104d616b0a8ddff462ccd3197b42eb 100644
--- a/GUI/View/Instrument/DepthProbeInstrumentEditor.cpp
+++ b/GUI/View/Instrument/DepthProbeInstrumentEditor.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/DepthProbeInstrumentEditor.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/View/Instrument/Detail/CreateDetails.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include "GUI/View/Instrument/InclinationAnglesEditor.h"
diff --git a/GUI/View/Instrument/DetectorAlignmentEditor.cpp b/GUI/View/Instrument/DetectorAlignmentEditor.cpp
index 2114aae174995154fb9372058bd1a7b22dfe1963..867cd428934a41bfb863b1568a3451b00633d97e 100644
--- a/GUI/View/Instrument/DetectorAlignmentEditor.cpp
+++ b/GUI/View/Instrument/DetectorAlignmentEditor.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/DetectorAlignmentEditor.h"
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/View/Instrument/VectorEditor.h"
 
diff --git a/GUI/View/Instrument/DetectorEditor.cpp b/GUI/View/Instrument/DetectorEditor.cpp
index 7efa9401ef5fbc4aa59173fb54c4d6f9756c7868..b00aa9bd85415f4d1c7f1a3073cbd0c954fcc5e3 100644
--- a/GUI/View/Instrument/DetectorEditor.cpp
+++ b/GUI/View/Instrument/DetectorEditor.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/DetectorEditor.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
-#include "GUI/Model/Instrument/SphericalDetectorItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
+#include "GUI/Model/Item/SphericalDetectorItem.h"
 #include "GUI/View/Instrument/RectangularDetectorEditor.h"
 #include "GUI/View/Instrument/SphericalDetectorEditor.h"
 
diff --git a/GUI/View/Instrument/DistributionEditor.cpp b/GUI/View/Instrument/DistributionEditor.cpp
index 81ef659cffbdbe0995499d57e06553a09136c4b8..a00534f92676bda3d674cd7fea55308bde1a9227 100644
--- a/GUI/View/Instrument/DistributionEditor.cpp
+++ b/GUI/View/Instrument/DistributionEditor.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/DistributionEditor.h"
-#include "GUI/Model/Instrument/ItemWithDistribution.h"
-#include "GUI/Model/Instrument/ResolutionItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/ItemWithDistribution.h"
+#include "GUI/Model/Item/ResolutionItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/View/Instrument/DistributionForms.h"
 #include "GUI/View/Instrument/EditDistributionDialog.h"
 #include "GUI/View/PropertyEditor/GroupInfoBox.h"
diff --git a/GUI/View/Instrument/DistributionForms.cpp b/GUI/View/Instrument/DistributionForms.cpp
index 7121c25f4eafd3bc263ef060733cba5fbdb376cd..967d66f1f2c4ac6ee6734f56b365b72ae699f42c 100644
--- a/GUI/View/Instrument/DistributionForms.cpp
+++ b/GUI/View/Instrument/DistributionForms.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/DistributionForms.h"
-#include "GUI/Model/Instrument/ItemWithDistribution.h"
-#include "GUI/Model/Instrument/ResolutionItems.h"
+#include "GUI/Model/Item/ItemWithDistribution.h"
+#include "GUI/Model/Item/ResolutionItems.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include "GUI/View/PropertyEditor/ScientificSpinBox.h"
 
diff --git a/GUI/View/Instrument/DistributionPlot.cpp b/GUI/View/Instrument/DistributionPlot.cpp
index 1664e2f9cbef2ce6d2f132b954b5d9ef7d7051d3..4be24a6ce6d0e871757ebcae2927e77cb11c738e 100644
--- a/GUI/View/Instrument/DistributionPlot.cpp
+++ b/GUI/View/Instrument/DistributionPlot.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/DistributionPlot.h"
-#include "GUI/Model/Instrument/ResolutionItems.h"
-#include "GUI/Model/Session/RealLimitsItems.h"
+#include "GUI/Model/Item/RealLimitsItems.h"
+#include "GUI/Model/Item/ResolutionItems.h"
 #include "GUI/View/Info/CautionSign.h"
 #include "Param/Distrib/Distributions.h"
 #include <QLabel>
diff --git a/GUI/View/Instrument/EditDistributionDialog.cpp b/GUI/View/Instrument/EditDistributionDialog.cpp
index 48badfea5f6d96ea2a7119ca6d8a8644f8e57b5d..cf293ddc878573a27b05ac0b617bea4dbed550c2 100644
--- a/GUI/View/Instrument/EditDistributionDialog.cpp
+++ b/GUI/View/Instrument/EditDistributionDialog.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/EditDistributionDialog.h"
-#include "GUI/Model/Instrument/ItemWithDistribution.h"
+#include "GUI/Model/Item/ItemWithDistribution.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include "GUI/View/Instrument/DistributionPlot.h"
 
diff --git a/GUI/View/Instrument/EnvironmentEditor.cpp b/GUI/View/Instrument/EnvironmentEditor.cpp
index 5df2ddec5440e136f45e9d6579242eb838e49362..51716b80fc0c8a200961f4970a15a52286f20522 100644
--- a/GUI/View/Instrument/EnvironmentEditor.cpp
+++ b/GUI/View/Instrument/EnvironmentEditor.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/EnvironmentEditor.h"
-#include "GUI/Model/Instrument/BackgroundItems.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/BackgroundItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 
 #include <QComboBox>
 #include <QDoubleSpinBox>
diff --git a/GUI/View/Instrument/FootprintCorrectionEditor.cpp b/GUI/View/Instrument/FootprintCorrectionEditor.cpp
index 2f163f9865f57c43bfd503376ecf5280f5e4e54b..cd5338490c7c9c7e004bd2f93a11c44c542c633f 100644
--- a/GUI/View/Instrument/FootprintCorrectionEditor.cpp
+++ b/GUI/View/Instrument/FootprintCorrectionEditor.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/FootprintCorrectionEditor.h"
-#include "GUI/Model/Instrument/FootprintItems.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/FootprintItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 
 #include <QComboBox>
 #include <QDoubleSpinBox>
diff --git a/GUI/View/Instrument/GISASBeamEditor.cpp b/GUI/View/Instrument/GISASBeamEditor.cpp
index 65f521b8a219918b359301e2cd4f56bbdd47cc41..da18e602654faeb7ebdb5b78d35b4ebc36697d32 100644
--- a/GUI/View/Instrument/GISASBeamEditor.cpp
+++ b/GUI/View/Instrument/GISASBeamEditor.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/GISASBeamEditor.h"
-#include "GUI/Model/Instrument/BeamAngleItems.h"
-#include "GUI/Model/Instrument/BeamItems.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
+#include "GUI/Model/Item/BeamAngleItems.h"
+#include "GUI/Model/Item/BeamItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 
 #include <QDoubleValidator>
diff --git a/GUI/View/Instrument/GISASInstrumentEditor.cpp b/GUI/View/Instrument/GISASInstrumentEditor.cpp
index e78a5df0531caf5e7b39d7b66e3fba83cdec54ca..dca6e2280f65b13557b0316aad934f91d4651e5a 100644
--- a/GUI/View/Instrument/GISASInstrumentEditor.cpp
+++ b/GUI/View/Instrument/GISASInstrumentEditor.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/GISASInstrumentEditor.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/View/Instrument/Detail/CreateDetails.h"
 #include "GUI/View/Instrument/DetectorEditor.h"
 #include "GUI/View/Instrument/EnvironmentEditor.h"
diff --git a/GUI/View/Instrument/InclinationAnglesEditor.cpp b/GUI/View/Instrument/InclinationAnglesEditor.cpp
index 59ad6e359fce9b681963ee5db101400ce5800620..ca7d5ad1c05935ce69ce3dbeb1a13c653e2e7169 100644
--- a/GUI/View/Instrument/InclinationAnglesEditor.cpp
+++ b/GUI/View/Instrument/InclinationAnglesEditor.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/InclinationAnglesEditor.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Instrument/SpecularBeamInclinationItem.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
+#include "GUI/Model/Item/SpecularBeamInclinationItem.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include "GUI/View/Instrument/SphericalAxisEditor.h"
 #include "GUI/View/PropertyEditor/GroupInfoBox.h"
diff --git a/GUI/View/Instrument/InstrumentEditor.cpp b/GUI/View/Instrument/InstrumentEditor.cpp
index 61aaa73b3714906fca5aaf67de36d4ee809978d9..c6bb31dd5b9e0307c2d309cd64811d500d7be1d3 100644
--- a/GUI/View/Instrument/InstrumentEditor.cpp
+++ b/GUI/View/Instrument/InstrumentEditor.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/Instrument/InstrumentEditor.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/View/Instrument/DepthProbeInstrumentEditor.h"
 #include "GUI/View/Instrument/GISASInstrumentEditor.h"
 #include "GUI/View/Instrument/OffSpecularInstrumentEditor.h"
diff --git a/GUI/View/Instrument/InstrumentLibraryEditor.cpp b/GUI/View/Instrument/InstrumentLibraryEditor.cpp
index 96d2ea6b9bee2fee09f1cb99042d176b92d3195e..b83a192bdb5362268ae0dfca22e62594496b5a60 100644
--- a/GUI/View/Instrument/InstrumentLibraryEditor.cpp
+++ b/GUI/View/Instrument/InstrumentLibraryEditor.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/Instrument/InstrumentLibraryEditor.h"
 #include "GUI/Application/ApplicationSettings.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/Model/State/SessionData.h"
 #include "GUI/View/Common/ItemViewOverlayButtons.h"
 #include "GUI/View/Instrument/Detail/CreateDetails.h"
diff --git a/GUI/View/Instrument/InstrumentListModel.cpp b/GUI/View/Instrument/InstrumentListModel.cpp
index 068b2975a56c02d0004a57e810c6837e53e3dabc..d2ac52e52b0d251ce249b49e32d8c689a784c9ea 100644
--- a/GUI/View/Instrument/InstrumentListModel.cpp
+++ b/GUI/View/Instrument/InstrumentListModel.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/InstrumentListModel.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 
 namespace {
 
diff --git a/GUI/View/Instrument/InstrumentListView.cpp b/GUI/View/Instrument/InstrumentListView.cpp
index 686160b28a9f3c343da3c789ac340d0417e65fd4..13a6852154efda932214c0d5104e6c142aaf5fb7 100644
--- a/GUI/View/Instrument/InstrumentListView.cpp
+++ b/GUI/View/Instrument/InstrumentListView.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/InstrumentListView.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Model/State/SessionData.h"
 #include "GUI/View/Global/Globals.h"
diff --git a/GUI/View/Instrument/InstrumentView.cpp b/GUI/View/Instrument/InstrumentView.cpp
index 7d4910d6c139046b6f49c36e6ba8195a9fc45d34..ac4d4f5a80c7e546a4e29f3a49d2c953f346049a 100644
--- a/GUI/View/Instrument/InstrumentView.cpp
+++ b/GUI/View/Instrument/InstrumentView.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/InstrumentView.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/View/Common/StyledToolBar.h"
 #include "GUI/View/Instrument/InstrumentEditor.h"
diff --git a/GUI/View/Instrument/InstrumentsTreeModel.cpp b/GUI/View/Instrument/InstrumentsTreeModel.cpp
index fc5b9e75349314ffbdf8f15a9a98fe4e156a392a..1dab566d4fff264bc4868abc8ea9e2f0111fe361 100644
--- a/GUI/View/Instrument/InstrumentsTreeModel.cpp
+++ b/GUI/View/Instrument/InstrumentsTreeModel.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/View/Instrument/InstrumentsTreeModel.h"
 #include "GUI/Application/ApplicationSettings.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 #include <QApplication>
 #include <QtCore>
 #include <QtGui>
diff --git a/GUI/View/Instrument/OffSpecularBeamEditor.cpp b/GUI/View/Instrument/OffSpecularBeamEditor.cpp
index e556a86350e0cd41f1a393265c31289edc6061e5..4c3dfa803400ab87914447334ff188bf638778aa 100644
--- a/GUI/View/Instrument/OffSpecularBeamEditor.cpp
+++ b/GUI/View/Instrument/OffSpecularBeamEditor.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/OffSpecularBeamEditor.h"
-#include "GUI/Model/Instrument/BeamAngleItems.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/BeamAngleItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
 #include "GUI/View/Instrument/SphericalAxisEditor.h"
 
diff --git a/GUI/View/Instrument/OffSpecularInstrumentEditor.cpp b/GUI/View/Instrument/OffSpecularInstrumentEditor.cpp
index 55917bcfe867fe8957039679f36d7be6a5c03d47..6f0b08ae55214fb01fc6172a3005286f02691e3b 100644
--- a/GUI/View/Instrument/OffSpecularInstrumentEditor.cpp
+++ b/GUI/View/Instrument/OffSpecularInstrumentEditor.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/OffSpecularInstrumentEditor.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/View/Instrument/Detail/CreateDetails.h"
 #include "GUI/View/Instrument/DetectorEditor.h"
 #include "GUI/View/Instrument/OffSpecularBeamEditor.h"
diff --git a/GUI/View/Instrument/PolarizationAnalysisEditor.cpp b/GUI/View/Instrument/PolarizationAnalysisEditor.cpp
index 65a24db91c997d254ba558020c019fa635dd578f..2e07cd2cd134e02f0c86a22cf31bf3721208b6fe 100644
--- a/GUI/View/Instrument/PolarizationAnalysisEditor.cpp
+++ b/GUI/View/Instrument/PolarizationAnalysisEditor.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/PolarizationAnalysisEditor.h"
-#include "GUI/Model/Instrument/DetectorItems.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Item/DetectorItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/VectorItem.h"
 #include "GUI/View/Instrument/VectorEditor.h"
 
 #include <QCheckBox>
diff --git a/GUI/View/Instrument/RectangularDetectorEditor.cpp b/GUI/View/Instrument/RectangularDetectorEditor.cpp
index 4d81f4c1f7a9a7ee0a171b483afb590233d90ef2..426a3ea25653caa5a175d350903f025b7ef0ea1e 100644
--- a/GUI/View/Instrument/RectangularDetectorEditor.cpp
+++ b/GUI/View/Instrument/RectangularDetectorEditor.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/RectangularDetectorEditor.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
+#include "GUI/Model/Item/VectorItem.h"
 #include "GUI/View/Instrument/DetectorAlignmentEditor.h"
 #include "GUI/View/Instrument/ResolutionFunctionEditor.h"
 
diff --git a/GUI/View/Instrument/ResolutionFunctionEditor.cpp b/GUI/View/Instrument/ResolutionFunctionEditor.cpp
index 4e5a99abbad39bf3ba293178935381c95b079a03..6c2266a47af99bdb5e9c1d0ddc96c80ecef6650b 100644
--- a/GUI/View/Instrument/ResolutionFunctionEditor.cpp
+++ b/GUI/View/Instrument/ResolutionFunctionEditor.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/ResolutionFunctionEditor.h"
-#include "GUI/Model/Instrument/DetectorItems.h"
-#include "GUI/Model/Instrument/ResolutionFunctionItems.h"
+#include "GUI/Model/Item/DetectorItems.h"
+#include "GUI/Model/Item/ResolutionFunctionItems.h"
 
 #include <QComboBox>
 #include <QDoubleSpinBox>
diff --git a/GUI/View/Instrument/SpecularBeamEditor.cpp b/GUI/View/Instrument/SpecularBeamEditor.cpp
index 9b5f005e5a3b0d74830d3278e573896fcff96811..6ef9100765c631e12ecb7595e1f9a53130691090 100644
--- a/GUI/View/Instrument/SpecularBeamEditor.cpp
+++ b/GUI/View/Instrument/SpecularBeamEditor.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/SpecularBeamEditor.h"
-#include "GUI/Model/Instrument/BeamItems.h"
-#include "GUI/Model/Instrument/BeamWavelengthItem.h"
+#include "GUI/Model/Item/BeamItems.h"
+#include "GUI/Model/Item/BeamWavelengthItem.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/SpecularInstrumentEditor.cpp b/GUI/View/Instrument/SpecularInstrumentEditor.cpp
index 52f9030953c7d6b6d8513d862d1dfad9a88100fc..7bd656e207e622bb5500394fe1e8f5fb51503436 100644
--- a/GUI/View/Instrument/SpecularInstrumentEditor.cpp
+++ b/GUI/View/Instrument/SpecularInstrumentEditor.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/SpecularInstrumentEditor.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/View/Instrument/Detail/CreateDetails.h"
 #include "GUI/View/Instrument/EnvironmentEditor.h"
 #include "GUI/View/Instrument/PolarizationAnalysisEditor.h"
diff --git a/GUI/View/Instrument/SphericalAxisEditor.cpp b/GUI/View/Instrument/SphericalAxisEditor.cpp
index f52689ee17e247e6ea8991872cf6681adf0f5297..9abba38e391394f08c194c8fa040c580c6c58eb7 100644
--- a/GUI/View/Instrument/SphericalAxisEditor.cpp
+++ b/GUI/View/Instrument/SphericalAxisEditor.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/SphericalAxisEditor.h"
-#include "GUI/Model/Ax/AxesItems.h"
+#include "GUI/Model/Item/AxesItems.h"
 
 #include <QDoubleSpinBox>
 #include <QFormLayout>
diff --git a/GUI/View/Instrument/SphericalDetectorEditor.cpp b/GUI/View/Instrument/SphericalDetectorEditor.cpp
index 29b0d261c815aebd3301f448476a93c474a90e3c..006363c1d8d02439f65181ed2fd7f7159cb70c7c 100644
--- a/GUI/View/Instrument/SphericalDetectorEditor.cpp
+++ b/GUI/View/Instrument/SphericalDetectorEditor.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/SphericalDetectorEditor.h"
-#include "GUI/Model/Instrument/SphericalDetectorItem.h"
+#include "GUI/Model/Item/SphericalDetectorItem.h"
 #include "GUI/View/Instrument/ResolutionFunctionEditor.h"
 #include "GUI/View/Instrument/SphericalAxisEditor.h"
 
diff --git a/GUI/View/Instrument/VectorEditor.cpp b/GUI/View/Instrument/VectorEditor.cpp
index 362718c68316f4adbb9d83684423addd1627a4e6..012ba43fd8ed0ef63c0dc76302cde6768dd7cf42 100644
--- a/GUI/View/Instrument/VectorEditor.cpp
+++ b/GUI/View/Instrument/VectorEditor.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Instrument/VectorEditor.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Item/VectorItem.h"
 
 #include <QDoubleSpinBox>
 #include <QFormLayout>
diff --git a/GUI/View/Job/JobListModel.cpp b/GUI/View/Job/JobListModel.cpp
index 9d7e1d3f24cfb8d2fe232f305916be08a6ab4509..bdd5838026e704d8e2aaea90ee9152d07ea86bc1 100644
--- a/GUI/View/Job/JobListModel.cpp
+++ b/GUI/View/Job/JobListModel.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobListModel.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Model/JobModel.h"
 
 //==================================================================================================
 // JobListModel
diff --git a/GUI/View/Job/JobListView.cpp b/GUI/View/Job/JobListView.cpp
index 8a220445043ca539a9c89b9cf4db1c94684952af..dd09a20745e31ce61c516c87e206c8ee6ab83d6f 100644
--- a/GUI/View/Job/JobListView.cpp
+++ b/GUI/View/Job/JobListView.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobListView.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/View/Common/StyledToolBar.h"
 #include "GUI/View/Job/JobListModel.h"
 #include "GUI/View/Job/JobListViewDelegate.h"
diff --git a/GUI/View/Job/JobListViewDelegate.cpp b/GUI/View/Job/JobListViewDelegate.cpp
index 5e8c373aef9e60e961160a192ffd0009daf00daf..5254735e3bffc495513cb92aaa64493eecec5709 100644
--- a/GUI/View/Job/JobListViewDelegate.cpp
+++ b/GUI/View/Job/JobListViewDelegate.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobListViewDelegate.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/View/Job/JobListModel.h"
 #include <QApplication>
 #include <QMouseEvent>
diff --git a/GUI/View/Job/JobProgressAssistant.cpp b/GUI/View/Job/JobProgressAssistant.cpp
index 1d5f62e430e634a444f1d81f793f2eb85172234f..48c1d88cf3b82b1ae53a19a48770a0b44c62d7b7 100644
--- a/GUI/View/Job/JobProgressAssistant.cpp
+++ b/GUI/View/Job/JobProgressAssistant.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobProgressAssistant.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/View/Main/MainWindow.h"
 #include <QProgressBar>
 
diff --git a/GUI/View/Job/JobPropertiesTableModel.cpp b/GUI/View/Job/JobPropertiesTableModel.cpp
index 408b1e3c54645eacef2bc7f852e4f0647943755b..78523d95a4db3afdf21f5a265968908e8cc7ff08 100644
--- a/GUI/View/Job/JobPropertiesTableModel.cpp
+++ b/GUI/View/Job/JobPropertiesTableModel.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobPropertiesTableModel.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include <QLocale>
 
 namespace {
diff --git a/GUI/View/Job/JobPropertiesWidget.cpp b/GUI/View/Job/JobPropertiesWidget.cpp
index 09df26e60e7075f5d4249635ff9141e9ab3ff712..be1b507c4ebae364157d35c8513f51171e99bca0 100644
--- a/GUI/View/Job/JobPropertiesWidget.cpp
+++ b/GUI/View/Job/JobPropertiesWidget.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobPropertiesWidget.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/View/Job/JobPropertiesTableModel.h"
 #include "GUI/View/Tool/StyleUtils.h"
 #include "GUI/View/Tool/mainwindow_constants.h"
diff --git a/GUI/View/Job/JobResultsPresenter.cpp b/GUI/View/Job/JobResultsPresenter.cpp
index 0ddb2e9b567a52e73f6f6c09ab51718cf3c781d6..2010f9eadba7679a9704852dc572729d412703eb 100644
--- a/GUI/View/Job/JobResultsPresenter.cpp
+++ b/GUI/View/Job/JobResultsPresenter.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobResultsPresenter.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/View/Job/JobViewActivities.h"
 #include "GUI/View/Plot2D/IntensityDataWidget.h"
 #include "GUI/View/PlotComparison/FitComparisonWidget.h"
diff --git a/GUI/View/Job/JobSelectorWidget.cpp b/GUI/View/Job/JobSelectorWidget.cpp
index 260b5e19788a82a9f3940de56ebe4ec0711eee34..848a4ce328d31197cc9f383bf7ee82e5b730fbe6 100644
--- a/GUI/View/Job/JobSelectorWidget.cpp
+++ b/GUI/View/Job/JobSelectorWidget.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/Job/JobSelectorWidget.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/JobItem.h"
 #include "GUI/View/Job/JobListView.h"
 #include "GUI/View/Job/JobPropertiesWidget.h"
 #include "GUI/View/Tool/mainwindow_constants.h"
diff --git a/GUI/View/Job/JobView.cpp b/GUI/View/Job/JobView.cpp
index da5d5d2c3f82758e35e4448eed5143585b390b14..c55da5fb206c248cf095143c0f37239080d53bc0 100644
--- a/GUI/View/Job/JobView.cpp
+++ b/GUI/View/Job/JobView.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobView.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/View/Common/DocksController.h"
 #include "GUI/View/Fit/FitActivityPanel.h"
 #include "GUI/View/Fit/JobMessagePanel.h"
diff --git a/GUI/View/Loaders/AutomaticDataLoader1D.cpp b/GUI/View/Loaders/AutomaticDataLoader1D.cpp
index 42588f00c800edd3a490ed264f146383b95da4ad..a9c96b856b73d4e756c928086d7ff51af975e1ce 100644
--- a/GUI/View/Loaders/AutomaticDataLoader1D.cpp
+++ b/GUI/View/Loaders/AutomaticDataLoader1D.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/View/Loaders/AutomaticDataLoader1D.h"
 #include "Device/InputOutput/OutputDataReadReflectometry.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Support/IO/ImportDataInfo.h"
 #include "GUI/Util/DeserializationException.h"
 #include "GUI/View/Loaders/AutomaticDataLoader1DResultModel.h"
diff --git a/GUI/View/Loaders/AutomaticDataLoader1DResultModel.cpp b/GUI/View/Loaders/AutomaticDataLoader1DResultModel.cpp
index 465df9c1eb631375c4905967b8176dd1ace0e0d3..8a98bb94052b6f82a5d36a6631c04ef27fe74075 100644
--- a/GUI/View/Loaders/AutomaticDataLoader1DResultModel.cpp
+++ b/GUI/View/Loaders/AutomaticDataLoader1DResultModel.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Loaders/AutomaticDataLoader1DResultModel.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 
 AutomaticDataLoader1DResultModel::AutomaticDataLoader1DResultModel(RealDataItem* item)
     : m_item(item)
diff --git a/GUI/View/Loaders/QREDataLoader.cpp b/GUI/View/Loaders/QREDataLoader.cpp
index 788d0c486391638deae897b3b7b33e79b270b55c..6de53630c7aa4c09303efd97c304c883455d58be 100644
--- a/GUI/View/Loaders/QREDataLoader.cpp
+++ b/GUI/View/Loaders/QREDataLoader.cpp
@@ -15,8 +15,8 @@
 #include "GUI/View/Loaders/QREDataLoader.h"
 #include "Base/Axis/PointwiseAxis.h"
 #include "Device/Coord/AxisNames.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Util/CoordName.h"
 #include "GUI/Util/DeserializationException.h"
 #include "GUI/View/Loaders/QREDataLoaderProperties.h"
diff --git a/GUI/View/Main/MainWindow.cpp b/GUI/View/Main/MainWindow.cpp
index 5b78a0fb43d6976dc3e1e518898915d23f37bf2b..98a1865134d73a31f30b5446444a537f93bbc27d 100644
--- a/GUI/View/Main/MainWindow.cpp
+++ b/GUI/View/Main/MainWindow.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/Main/MainWindow.h"
 #include "GUI/Application/ApplicationSettings.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/Model/State/SessionData.h"
 #include "GUI/Util/Path.h"
 #include "GUI/View/Import/ImportDataView.h"
diff --git a/GUI/View/Mask/EllipseView.cpp b/GUI/View/Mask/EllipseView.cpp
index 1bc5dab5fd4fe32ed71907d0ab1a7df6f4d6c026..befd1d7dd1235bef50f59c47ca9c92a5c5da5e8c 100644
--- a/GUI/View/Mask/EllipseView.cpp
+++ b/GUI/View/Mask/EllipseView.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/EllipseView.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QPainter>
 
diff --git a/GUI/View/Mask/IShape2DView.cpp b/GUI/View/Mask/IShape2DView.cpp
index eac8871c71f6cf194d6a5ca3005ba3e9913c9a2e..24c8fb001ed8690670058e33f69f4a0f4534e1f1 100644
--- a/GUI/View/Mask/IShape2DView.cpp
+++ b/GUI/View/Mask/IShape2DView.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/IShape2DView.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include "GUI/View/Mask/ISceneAdaptor.h"
 #include <QAction>
 #include <QGraphicsScene>
diff --git a/GUI/View/Mask/LineViews.cpp b/GUI/View/Mask/LineViews.cpp
index 7f8dd8825cb28e51d156937c201b113670928151..38b142bc03fb43030402331e68faaf8337210d87 100644
--- a/GUI/View/Mask/LineViews.cpp
+++ b/GUI/View/Mask/LineViews.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/LineViews.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include "GUI/View/Mask/ColorMapSceneAdaptor.h"
 #include <QCursor>
 #include <QPainter>
diff --git a/GUI/View/Mask/MaskAllView.cpp b/GUI/View/Mask/MaskAllView.cpp
index d7339f8387a87f12b77b162e18b4698ec572f1bb..b2a1d6a6b3bf420f333d9ac6b95c2a254e30c324 100644
--- a/GUI/View/Mask/MaskAllView.cpp
+++ b/GUI/View/Mask/MaskAllView.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskAllView.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include "GUI/View/Mask/ColorMapSceneAdaptor.h"
 #include <QBrush>
 #include <QPainter>
diff --git a/GUI/View/Mask/MaskContainerView.cpp b/GUI/View/Mask/MaskContainerView.cpp
index a7220062875b37eb973a5c3eb782316dce962d6e..0dc02a752bfb1c83a9aeddb77ccf9aa7c61e4a35 100644
--- a/GUI/View/Mask/MaskContainerView.cpp
+++ b/GUI/View/Mask/MaskContainerView.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskContainerView.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/ProjectionItems.h"
 #include "GUI/View/Mask/ISceneAdaptor.h"
 #include <QBrush>
 #include <QPainter>
diff --git a/GUI/View/Mask/MaskDrawingContext.cpp b/GUI/View/Mask/MaskDrawingContext.cpp
index 6bc4947480aeedbf17e1ccaefd7bcff4bac9e8a2..7eca5541cc3191e82a96e784bc08389d053e6c58 100644
--- a/GUI/View/Mask/MaskDrawingContext.cpp
+++ b/GUI/View/Mask/MaskDrawingContext.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskDrawingContext.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 
 MaskDrawingContext::MaskDrawingContext()
     : m_current_activity(MaskEditorFlags::PAN_ZOOM_MODE)
diff --git a/GUI/View/Mask/MaskEditor.cpp b/GUI/View/Mask/MaskEditor.cpp
index 146bf115882d711084293ec5b58d5c2ea0abf88d..04e2a92f9a39306aaa2a67b635f7f605eea38fd9 100644
--- a/GUI/View/Mask/MaskEditor.cpp
+++ b/GUI/View/Mask/MaskEditor.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskEditor.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/View/Mask/MaskEditorActions.h"
 #include "GUI/View/Mask/MaskEditorCanvas.h"
 #include "GUI/View/Mask/MaskEditorPropertyPanel.h"
diff --git a/GUI/View/Mask/MaskEditorActions.cpp b/GUI/View/Mask/MaskEditorActions.cpp
index b46f24d513a537677eb883859097e0d6b90239b3..3562c3157750652bd5cb9e46e4345cfd261de8a5 100644
--- a/GUI/View/Mask/MaskEditorActions.cpp
+++ b/GUI/View/Mask/MaskEditorActions.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskEditorActions.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/ActionFactory.h"
 #include <QAction>
 #include <QItemSelectionModel>
diff --git a/GUI/View/Mask/MaskEditorCanvas.cpp b/GUI/View/Mask/MaskEditorCanvas.cpp
index 194b888e6f246503ff8fda9b6f3c289446f38b5c..f0b4dfcc11fc6399c592125bd39c93ba493dd7ab 100644
--- a/GUI/View/Mask/MaskEditorCanvas.cpp
+++ b/GUI/View/Mask/MaskEditorCanvas.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskEditorCanvas.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Model/State/SessionData.h"
 #include "GUI/View/Mask/MaskGraphicsScene.h"
diff --git a/GUI/View/Mask/MaskEditorPropertyPanel.cpp b/GUI/View/Mask/MaskEditorPropertyPanel.cpp
index c6b8201ef9c1746e50c5c0c97272d59425a695b8..84bdb11b3430a4cbbe696624de7ba64db4f9813c 100644
--- a/GUI/View/Mask/MaskEditorPropertyPanel.cpp
+++ b/GUI/View/Mask/MaskEditorPropertyPanel.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskEditorPropertyPanel.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/PlotUtil/IntensityDataPropertyWidget.h"
 #include "GUI/View/Tool/GroupBoxCollapser.h"
diff --git a/GUI/View/Mask/MaskGraphicsProxy.cpp b/GUI/View/Mask/MaskGraphicsProxy.cpp
index 887cb4613dc21c843e8c9a335e609c6e65885785..03fb94b48262e0cef85e7701d4d49c5fdf3f639b 100644
--- a/GUI/View/Mask/MaskGraphicsProxy.cpp
+++ b/GUI/View/Mask/MaskGraphicsProxy.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskGraphicsProxy.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
 #include "GUI/View/Mask/ColorMapSceneAdaptor.h"
 #include "GUI/View/PlotUtil/ColorMap.h"
 #include <QGraphicsSceneMouseEvent>
diff --git a/GUI/View/Mask/MaskGraphicsScene.cpp b/GUI/View/Mask/MaskGraphicsScene.cpp
index 0e58cf0fdef78ca7bd130f02603ce6451b60002e..98c719c9b97469cdb57ae75f5f1696467e828c50 100644
--- a/GUI/View/Mask/MaskGraphicsScene.cpp
+++ b/GUI/View/Mask/MaskGraphicsScene.cpp
@@ -13,11 +13,11 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskGraphicsScene.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
-#include "GUI/Model/Session/PropertyItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/ProjectionItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/Mask/ColorMapSceneAdaptor.h"
 #include "GUI/View/Mask/MaskGraphicsProxy.h"
diff --git a/GUI/View/Mask/MaskResultsPresenter.cpp b/GUI/View/Mask/MaskResultsPresenter.cpp
index 66575419810fed348d074ffaa4dce263d77df7d3..195720d232b98cf172bdb1c47fdfba2138758962 100644
--- a/GUI/View/Mask/MaskResultsPresenter.cpp
+++ b/GUI/View/Mask/MaskResultsPresenter.cpp
@@ -14,9 +14,9 @@
 
 #include "GUI/View/Mask/MaskResultsPresenter.h"
 #include "Device/Mask/DetectorMask.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include <QVBoxLayout>
 
 MaskResultsPresenter::MaskResultsPresenter(QWidget* parent)
diff --git a/GUI/View/Mask/MaskViewFactory.cpp b/GUI/View/Mask/MaskViewFactory.cpp
index b31ed8463814f077df2fafcf0e678b25a5fd14f2..5e131598bd522e5132f8f85c037a9a1018111c3c 100644
--- a/GUI/View/Mask/MaskViewFactory.cpp
+++ b/GUI/View/Mask/MaskViewFactory.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/MaskViewFactory.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/ProjectionItems.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/Mask/EllipseView.h"
 #include "GUI/View/Mask/LineViews.h"
diff --git a/GUI/View/Mask/PolygonPointView.cpp b/GUI/View/Mask/PolygonPointView.cpp
index 02fe2abb1024cf2062c0b6b18f8ee737e19d7fd2..6e10881e34441a85142ee300bb60269ae82f9606 100644
--- a/GUI/View/Mask/PolygonPointView.cpp
+++ b/GUI/View/Mask/PolygonPointView.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/PolygonPointView.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QPainter>
 
diff --git a/GUI/View/Mask/PolygonView.cpp b/GUI/View/Mask/PolygonView.cpp
index 302ea963c5d287ceda53649816db50337708dfdc..f4a24024c0164a13d36be50c6a251849c6e1b323 100644
--- a/GUI/View/Mask/PolygonView.cpp
+++ b/GUI/View/Mask/PolygonView.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/PolygonView.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include "GUI/View/Mask/PolygonPointView.h"
 #include <QCursor>
 #include <QPainter>
diff --git a/GUI/View/Mask/RectangleView.cpp b/GUI/View/Mask/RectangleView.cpp
index dea290bcdcb4c5886041203913b802b57f4af83f..7cfd5f4b033903122678182fb4622fdf124f04c1 100644
--- a/GUI/View/Mask/RectangleView.cpp
+++ b/GUI/View/Mask/RectangleView.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/RectangleView.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QPainter>
 
diff --git a/GUI/View/Mask/RegionOfInterestView.cpp b/GUI/View/Mask/RegionOfInterestView.cpp
index 31940467b838f3e1b9d667d74ac5600b6fbd0d7d..9c6787faba445351f98165d4f4e219a8c0f344c7 100644
--- a/GUI/View/Mask/RegionOfInterestView.cpp
+++ b/GUI/View/Mask/RegionOfInterestView.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Mask/RegionOfInterestView.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include "GUI/View/Mask/ISceneAdaptor.h"
 #include <QPainter>
 
diff --git a/GUI/View/MaterialEditor/MaterialEditorDialog.cpp b/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
index 5a3418c2c48668bd5954cdb3b6e8f682c154bb7c..16c95abecff61c876b245cde70673e483acf7fec 100644
--- a/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
+++ b/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
@@ -14,13 +14,13 @@
 
 #include "GUI/View/MaterialEditor/MaterialEditorDialog.h"
 #include "GUI/Application/ApplicationSettings.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/VectorItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/Sample/SampleModel.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/VectorItem.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 57e1ef336b35cee1ad8d216a3ff2a4690abce6f6..780b6bf77e840186154f445de0ad05b3747f230b 100644
--- a/GUI/View/MaterialEditor/MaterialEditorModel.cpp
+++ b/GUI/View/MaterialEditor/MaterialEditorModel.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/MaterialEditor/MaterialEditorModel.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/VectorItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/VectorItem.h"
 #include <QApplication>
 #include <QFontMetrics>
 #include <QPixmap>
diff --git a/GUI/View/Plot2D/IntensityDataCanvas.cpp b/GUI/View/Plot2D/IntensityDataCanvas.cpp
index b32f288ff9d6722371db3da51fb6344a5012d83f..f3864074a26967b006d57d92412b773641557727 100644
--- a/GUI/View/Plot2D/IntensityDataCanvas.cpp
+++ b/GUI/View/Plot2D/IntensityDataCanvas.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Plot2D/IntensityDataCanvas.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Model/State/SessionData.h"
 #include "GUI/Util/ComboProperty.h"
diff --git a/GUI/View/Plot2D/IntensityDataFFTPresenter.cpp b/GUI/View/Plot2D/IntensityDataFFTPresenter.cpp
index 6fe6255d9e28488d7c5ef180ce0547766a05dac5..36ddc9af1eeac0069932fd8a29239ffb3e11ca76 100644
--- a/GUI/View/Plot2D/IntensityDataFFTPresenter.cpp
+++ b/GUI/View/Plot2D/IntensityDataFFTPresenter.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/View/Plot2D/IntensityDataFFTPresenter.h"
 #include "Device/Data/DataUtils.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/Error.h"
 #include <QAction>
 #include <QApplication>
diff --git a/GUI/View/Plot2D/IntensityDataWidget.cpp b/GUI/View/Plot2D/IntensityDataWidget.cpp
index 69e4dc86bbc1dddb7a48f2fee28d9e3e592f8c40..6f70bae100162f9ada190c454c5deec55dd776d1 100644
--- a/GUI/View/Plot2D/IntensityDataWidget.cpp
+++ b/GUI/View/Plot2D/IntensityDataWidget.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Plot2D/IntensityDataWidget.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/Plot2D/IntensityDataCanvas.h"
 #include "GUI/View/Plot2D/IntensityDataFFTPresenter.h"
diff --git a/GUI/View/PlotComparison/FitComparisonController.cpp b/GUI/View/PlotComparison/FitComparisonController.cpp
index f2dfa56bba8b8960d53351733223e9dacc28e6a1..ea39bb4974cc28c2dbf91ff5f3113846ae261f24 100644
--- a/GUI/View/PlotComparison/FitComparisonController.cpp
+++ b/GUI/View/PlotComparison/FitComparisonController.cpp
@@ -14,11 +14,11 @@
 
 #include "GUI/View/PlotComparison/FitComparisonController.h"
 #include "Device/Data/DataUtils.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/View/PlotComparison/PropertyRepeater.h"
 
 namespace {
diff --git a/GUI/View/PlotComparison/FitComparisonViewController.cpp b/GUI/View/PlotComparison/FitComparisonViewController.cpp
index 59faa2aaa066f68d473715ea345838222f4dc6c7..a3f86edf34cdc9b1d87f25ce34942d8abed10244 100644
--- a/GUI/View/PlotComparison/FitComparisonViewController.cpp
+++ b/GUI/View/PlotComparison/FitComparisonViewController.cpp
@@ -14,12 +14,12 @@
 
 #include "GUI/View/PlotComparison/FitComparisonViewController.h"
 #include "Device/Data/DataUtils.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Plot/Data1DViewItem.h"
-#include "GUI/Model/Plot/DataPropertyContainer.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/DataPropertyContainer.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/View/PlotComparison/PropertyRepeater.h"
 
diff --git a/GUI/View/PlotComparison/FitComparisonWidget.cpp b/GUI/View/PlotComparison/FitComparisonWidget.cpp
index b9df750fa93b21e6216cb643d853406beb0107bc..9fc3e9d6a2b77fb0154acf2e0fb092505504706c 100644
--- a/GUI/View/PlotComparison/FitComparisonWidget.cpp
+++ b/GUI/View/PlotComparison/FitComparisonWidget.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotComparison/FitComparisonWidget.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/PlotComparison/FitComparisonController.h"
 #include "GUI/View/PlotComparison/FitFlowWidget.h"
diff --git a/GUI/View/PlotComparison/FitComparisonWidget1D.cpp b/GUI/View/PlotComparison/FitComparisonWidget1D.cpp
index 2714eeab4bfb178acb44fb907d7c0a8a17878acb..700422b4c069d3c347e38fb6a5831ded0cdcc5ce 100644
--- a/GUI/View/PlotComparison/FitComparisonWidget1D.cpp
+++ b/GUI/View/PlotComparison/FitComparisonWidget1D.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotComparison/FitComparisonWidget1D.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Plot/Data1DViewItem.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/PlotComparison/FitComparisonViewController.h"
 #include "GUI/View/PlotComparison/FitFlowWidget.h"
diff --git a/GUI/View/PlotComparison/FitFlowWidget.cpp b/GUI/View/PlotComparison/FitFlowWidget.cpp
index 615a1bcc59ae705ece449b7554eee718034fd3f8..e74277f85727ddf73e7ae103f668908879731d24 100644
--- a/GUI/View/PlotComparison/FitFlowWidget.cpp
+++ b/GUI/View/PlotComparison/FitFlowWidget.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotComparison/FitFlowWidget.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
 #include "GUI/View/PlotComparison/HistogramPlot.h"
 #include <QVBoxLayout>
 
diff --git a/GUI/View/PlotComparison/Plot1D.cpp b/GUI/View/PlotComparison/Plot1D.cpp
index a9599449246418338e391214d24c2a96dfcce1c4..2fd278c5256089134137f51427f28dd66b539877 100644
--- a/GUI/View/PlotComparison/Plot1D.cpp
+++ b/GUI/View/PlotComparison/Plot1D.cpp
@@ -13,11 +13,11 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotComparison/Plot1D.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Plot/Data1DViewItem.h"
-#include "GUI/Model/Plot/DataProperties.h"
-#include "GUI/Model/Plot/DataPropertyContainer.h"
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/DataProperties.h"
+#include "GUI/Model/Item/DataPropertyContainer.h"
 #include "GUI/View/PlotUtil/PlotConstants.h"
 #include "GUI/View/PlotUtil/PlotEventInfo.h"
 #include "GUI/View/PlotUtil/RangeUtils.h"
diff --git a/GUI/View/PlotComparison/PropertyRepeater.cpp b/GUI/View/PlotComparison/PropertyRepeater.cpp
index dc6fb033138779b452242bc31f4289c94fb8b804..92514e75925450515d3655a34d030e227375373b 100644
--- a/GUI/View/PlotComparison/PropertyRepeater.cpp
+++ b/GUI/View/PlotComparison/PropertyRepeater.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotComparison/PropertyRepeater.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
 
 PropertyRepeater::PropertyRepeater(QObject* parent, bool repeat_child_properties)
     : QObject(parent)
diff --git a/GUI/View/PlotSpecular/SpecularDataCanvas.cpp b/GUI/View/PlotSpecular/SpecularDataCanvas.cpp
index 015b4ff5d5be04525a560b85f9dd05d1b32efa33..c58e109d3b0a22527dfbeeff9211f872996ba27b 100644
--- a/GUI/View/PlotSpecular/SpecularDataCanvas.cpp
+++ b/GUI/View/PlotSpecular/SpecularDataCanvas.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotSpecular/SpecularDataCanvas.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Model/State/SessionData.h"
 #include "GUI/View/PlotSpecular/SpecularPlotCanvas.h"
diff --git a/GUI/View/PlotSpecular/SpecularDataWidget.cpp b/GUI/View/PlotSpecular/SpecularDataWidget.cpp
index 793bfedec0b2c97cd0bf9ccf8864b749921ae736..502f15116ef526e218006b42e7d1fa48b0219419 100644
--- a/GUI/View/PlotSpecular/SpecularDataWidget.cpp
+++ b/GUI/View/PlotSpecular/SpecularDataWidget.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotSpecular/SpecularDataWidget.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/PlotSpecular/SpecularDataCanvas.h"
 #include "GUI/View/PropertyEditor/SpecularDataPropertyWidget.h"
diff --git a/GUI/View/PlotSpecular/SpecularPlot.cpp b/GUI/View/PlotSpecular/SpecularPlot.cpp
index 4020e11da29f0b3a4c0923b7493ca7d141955582..a7562c8f672e8be76eb7d475d5bc8e934faa7b77 100644
--- a/GUI/View/PlotSpecular/SpecularPlot.cpp
+++ b/GUI/View/PlotSpecular/SpecularPlot.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotSpecular/SpecularPlot.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/View/PlotUtil/PlotConstants.h"
 #include "GUI/View/PlotUtil/PlotEventInfo.h"
 #include "GUI/View/PlotUtil/RangeUtils.h"
diff --git a/GUI/View/PlotSpecular/SpecularPlotCanvas.cpp b/GUI/View/PlotSpecular/SpecularPlotCanvas.cpp
index 3f2a23843e9899adbe86522ae0df8607b17b5a33..fc107284e878890b7463897ca6540d7a86178a20 100644
--- a/GUI/View/PlotSpecular/SpecularPlotCanvas.cpp
+++ b/GUI/View/PlotSpecular/SpecularPlotCanvas.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotSpecular/SpecularPlotCanvas.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/View/PlotSpecular/SpecularPlot.h"
 #include "GUI/View/PlotUtil/FontScalingEvent.h"
 #include "GUI/View/PlotUtil/PlotStatusLabel.h"
diff --git a/GUI/View/PlotUtil/ColorMap.cpp b/GUI/View/PlotUtil/ColorMap.cpp
index 3166b44e610b7f625e0ac83befea207803d5e2c2..3aa38f13a4ae58d738bcf31e60c2c89a43b08d4a 100644
--- a/GUI/View/PlotUtil/ColorMap.cpp
+++ b/GUI/View/PlotUtil/ColorMap.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotUtil/ColorMap.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
 #include "GUI/View/PlotUtil/PlotConstants.h"
 #include "GUI/View/PlotUtil/PlotEventInfo.h"
 #include "GUI/View/PlotUtil/RangeUtils.h"
diff --git a/GUI/View/PlotUtil/ColorMapCanvas.cpp b/GUI/View/PlotUtil/ColorMapCanvas.cpp
index d3025fde2037fbd1ef8c56f1a3518b3c07f2671e..c5c639a5206dc54169c7a9173d7d0864be05a5a0 100644
--- a/GUI/View/PlotUtil/ColorMapCanvas.cpp
+++ b/GUI/View/PlotUtil/ColorMapCanvas.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotUtil/ColorMapCanvas.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
 #include "GUI/View/PlotUtil/ColorMap.h"
 #include "GUI/View/PlotUtil/FontScalingEvent.h"
 #include "GUI/View/PlotUtil/PlotStatusLabel.h"
diff --git a/GUI/View/PlotUtil/IntensityDataPropertyWidget.cpp b/GUI/View/PlotUtil/IntensityDataPropertyWidget.cpp
index a22e0529021d70d5351e032c447169459fa9422d..9b2322307677f3c0a1d08814c1cf8b92362b498c 100644
--- a/GUI/View/PlotUtil/IntensityDataPropertyWidget.cpp
+++ b/GUI/View/PlotUtil/IntensityDataPropertyWidget.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotUtil/IntensityDataPropertyWidget.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/Tool/LayoutUtils.h"
diff --git a/GUI/View/PlotUtil/RangeUtils.cpp b/GUI/View/PlotUtil/RangeUtils.cpp
index 1300e4d216d16493883e5bf6199c2948bc6b4bd7..7767f16f17cb0ad955a9072671e89cefb3d5b789 100644
--- a/GUI/View/PlotUtil/RangeUtils.cpp
+++ b/GUI/View/PlotUtil/RangeUtils.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PlotUtil/RangeUtils.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/Tool/StyleUtils.h"
 
diff --git a/GUI/View/Projection/IntensityDataProjectionsWidget.cpp b/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
index 1c48c9ade2ac1ba439a541845da6506b809a2d5f..f74b5e11f1993878182fd0ae284f7d13af0ed523 100644
--- a/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
+++ b/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Projection/IntensityDataProjectionsWidget.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/ProjectionItems.h"
 #include "GUI/View/Projection/ProjectionsEditor.h"
 #include "GUI/View/Tool/DataItemUtils.h"
 #include <QVBoxLayout>
diff --git a/GUI/View/Projection/ProjectionsEditor.cpp b/GUI/View/Projection/ProjectionsEditor.cpp
index e71d120ec120b9d1820f7335e519c60744a08eb8..c72d92d6d1eaedafbd54a619524ceac387836a4d 100644
--- a/GUI/View/Projection/ProjectionsEditor.cpp
+++ b/GUI/View/Projection/ProjectionsEditor.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Projection/ProjectionsEditor.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/View/PlotUtil/IntensityDataPropertyWidget.h"
 #include "GUI/View/Projection/ProjectionsEditorActions.h"
 #include "GUI/View/Projection/ProjectionsEditorCanvas.h"
diff --git a/GUI/View/Projection/ProjectionsEditorActions.cpp b/GUI/View/Projection/ProjectionsEditorActions.cpp
index a4951de1d5362c31fb8b416cfd000842bf68e6e5..5527f738c5ccc943800e691a0ab04c8b0218beff 100644
--- a/GUI/View/Projection/ProjectionsEditorActions.cpp
+++ b/GUI/View/Projection/ProjectionsEditorActions.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Projection/ProjectionsEditorActions.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/View/Projection/SaveProjectionsAssistant.h"
 #include <QAction>
 #include <QItemSelectionModel>
diff --git a/GUI/View/Projection/ProjectionsEditorCanvas.cpp b/GUI/View/Projection/ProjectionsEditorCanvas.cpp
index f1ac31ce41bf67f657b90c719b91eb3485a78731..34786445ccfa2dac7596be0ab75e88a67e9787ab 100644
--- a/GUI/View/Projection/ProjectionsEditorCanvas.cpp
+++ b/GUI/View/Projection/ProjectionsEditorCanvas.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Projection/ProjectionsEditorCanvas.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/View/Mask/MaskGraphicsScene.h"
 #include "GUI/View/Mask/MaskGraphicsView.h"
 #include "GUI/View/PlotUtil/ColorMap.h"
diff --git a/GUI/View/Projection/ProjectionsPlot.cpp b/GUI/View/Projection/ProjectionsPlot.cpp
index 8f87149d3a9212116e6f98468db4a790b881009d..2be3840bb27b076cafc625516354b3fe8af8a9dd 100644
--- a/GUI/View/Projection/ProjectionsPlot.cpp
+++ b/GUI/View/Projection/ProjectionsPlot.cpp
@@ -15,10 +15,10 @@
 #include "GUI/View/Projection/ProjectionsPlot.h"
 #include "Device/Histo/Histogram1D.h"
 #include "Device/Histo/Histogram2D.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/ProjectionItems.h"
 #include "GUI/View/PlotUtil/PlotConstants.h"
 #include "GUI/View/PlotUtil/RangeUtils.h"
 #include <qcustomplot.h>
diff --git a/GUI/View/Projection/ProjectionsWidget.cpp b/GUI/View/Projection/ProjectionsWidget.cpp
index 90249aac9ae4d39f45d0b4616efb43d345262cdb..7ad38ac518ecff6a5639c51fb2a5c6e3da760c80 100644
--- a/GUI/View/Projection/ProjectionsWidget.cpp
+++ b/GUI/View/Projection/ProjectionsWidget.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Projection/ProjectionsWidget.h"
-#include "GUI/Model/Mask/MaskItems.h"
+#include "GUI/Model/Item/MaskItems.h"
 #include "GUI/View/Projection/ProjectionsPlot.h"
 #include <QTabWidget>
 #include <QVBoxLayout>
diff --git a/GUI/View/Projection/SaveProjectionsAssistant.cpp b/GUI/View/Projection/SaveProjectionsAssistant.cpp
index ac6e03fc9e21e63eeea90394baf14ecf49b4b485..729fc5c46464dd25947e1a1f605b7935dc0c9b3f 100644
--- a/GUI/View/Projection/SaveProjectionsAssistant.cpp
+++ b/GUI/View/Projection/SaveProjectionsAssistant.cpp
@@ -17,9 +17,9 @@
 #include "Device/Histo/Histogram1D.h"
 #include "Device/Histo/Histogram2D.h"
 #include "GUI/Application/ApplicationSettings.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/ProjectionItems.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Model/State/SessionData.h"
 #include "GUI/Util/Error.h"
diff --git a/GUI/View/PropertyEditor/PropertyEditorFactory.cpp b/GUI/View/PropertyEditor/PropertyEditorFactory.cpp
index 212991f64846859f3c443315db3690886cad1034..67a54dd13c1acea8f99527e3ce5820a50251d427 100644
--- a/GUI/View/PropertyEditor/PropertyEditorFactory.cpp
+++ b/GUI/View/PropertyEditor/PropertyEditorFactory.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PropertyEditor/PropertyEditorFactory.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/View/PropertyEditor/CustomEditors.h"
 #include "GUI/View/PropertyEditor/ScientificSpinBox.h"
diff --git a/GUI/View/PropertyEditor/SpecularDataPropertyWidget.cpp b/GUI/View/PropertyEditor/SpecularDataPropertyWidget.cpp
index 1e05d408f2acec3d653d19388c61fcee53820672..01f274097b4a0a764978cb44b0a4f01543f3e70b 100644
--- a/GUI/View/PropertyEditor/SpecularDataPropertyWidget.cpp
+++ b/GUI/View/PropertyEditor/SpecularDataPropertyWidget.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PropertyEditor/SpecularDataPropertyWidget.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Plot/Data1DViewItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/Data1DViewItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/Tool/LayoutUtils.h"
diff --git a/GUI/View/Realspace/RealSpaceBuilder.cpp b/GUI/View/Realspace/RealSpaceBuilder.cpp
index 6746d8c37673ba861182d013e73b441564f91f46..090a446dd6b2c7e111be5fae5ff90f34697241d0 100644
--- a/GUI/View/Realspace/RealSpaceBuilder.cpp
+++ b/GUI/View/Realspace/RealSpaceBuilder.cpp
@@ -13,14 +13,14 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Realspace/RealSpaceBuilder.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#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/View/Realspace/IPositionBuilder.h"
 #include "GUI/View/Realspace/Particle3DContainer.h"
diff --git a/GUI/View/Realspace/RealSpaceBuilder.h b/GUI/View/Realspace/RealSpaceBuilder.h
index c6a3d4ddad1caa4d6011ef027f23d6bbecb896c5..e3e74cd376648ea2eb22ad54b77e90a039a6fba4 100644
--- a/GUI/View/Realspace/RealSpaceBuilder.h
+++ b/GUI/View/Realspace/RealSpaceBuilder.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_REALSPACE_REALSPACEBUILDER_H
 #define BORNAGAIN_GUI_VIEW_REALSPACE_REALSPACEBUILDER_H
 
-#include "GUI/Model/Sample/SampleItem.h"
+#include "GUI/Model/Item/SampleItem.h"
 #include "GUI/View/Realspace/RealSpaceBuilderUtils.h"
 #include "GUI/ba3d/view/camera.h"
 #include <QVector3D>
diff --git a/GUI/View/Realspace/RealSpaceBuilderUtils.cpp b/GUI/View/Realspace/RealSpaceBuilderUtils.cpp
index 184c71fc8d3d10085f2169b3eca5a4c5eee98435..2ea80bf6019692e90de23a1b7eb2dd78337e10dd 100644
--- a/GUI/View/Realspace/RealSpaceBuilderUtils.cpp
+++ b/GUI/View/Realspace/RealSpaceBuilderUtils.cpp
@@ -15,13 +15,13 @@
 #include "GUI/View/Realspace/RealSpaceBuilderUtils.h"
 #include "Base/Const/Units.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/View/Realspace/Particle3DContainer.h"
 #include "GUI/View/Realspace/RealSpaceBuilder.h"
diff --git a/GUI/View/Realspace/RealSpaceMesoCrystalUtils.cpp b/GUI/View/Realspace/RealSpaceMesoCrystalUtils.cpp
index 662de6b135bec78245e544ecf1527a1604ebc771..b5084dd5fc05fecccec0a89bb18905af02b8c7eb 100644
--- a/GUI/View/Realspace/RealSpaceMesoCrystalUtils.cpp
+++ b/GUI/View/Realspace/RealSpaceMesoCrystalUtils.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/View/Realspace/RealSpaceMesoCrystalUtils.h"
 #include "Base/Const/Units.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
 #include "GUI/View/Realspace/Particle3DContainer.h"
 #include "GUI/View/Realspace/RealSpaceBuilderUtils.h"
 #include "GUI/View/Realspace/TransformTo3D.h"
diff --git a/GUI/View/Realspace/TransformTo3D.cpp b/GUI/View/Realspace/TransformTo3D.cpp
index 8c05d21ab27a1746a778da14ca43b70c7af6e34c..836c8784fbc4e07467903255d4b8491bedba9783 100644
--- a/GUI/View/Realspace/TransformTo3D.cpp
+++ b/GUI/View/Realspace/TransformTo3D.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Realspace/TransformTo3D.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/View/Realspace/RealSpaceCanvas.h"
 #include "Sample/HardParticle/HardParticles.h"
 
diff --git a/GUI/View/SampleDesigner/InterferenceForm.cpp b/GUI/View/SampleDesigner/InterferenceForm.cpp
index 303c1480a34fe8a8a891c3a436c3b69c2af32dad..09bf9fe670cfbea2895c8ef9677aa3054d80c556 100644
--- a/GUI/View/SampleDesigner/InterferenceForm.cpp
+++ b/GUI/View/SampleDesigner/InterferenceForm.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/InterferenceForm.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/Lattice2DItems.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#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/View/PropertyEditor/CustomEventFilters.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
diff --git a/GUI/View/SampleDesigner/LatticeTypeSelectionForm.cpp b/GUI/View/SampleDesigner/LatticeTypeSelectionForm.cpp
index 940c7bc4ba2ce3897db4cadae810dcae86b6d0b6..fe187692771fc86ba4c3fcbcb9c660006731d8f2 100644
--- a/GUI/View/SampleDesigner/LatticeTypeSelectionForm.cpp
+++ b/GUI/View/SampleDesigner/LatticeTypeSelectionForm.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/LatticeTypeSelectionForm.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/Lattice2DItems.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/Lattice2DItems.h"
 #include <QCheckBox>
 #include <QLabel>
 
diff --git a/GUI/View/SampleDesigner/LatticeTypeSelectionForm.h b/GUI/View/SampleDesigner/LatticeTypeSelectionForm.h
index 8bfb7b1bf64e3906cd356134867cae7fb7a637f7..7f50641854c16fd1476a4d455510a128f8b6912d 100644
--- a/GUI/View/SampleDesigner/LatticeTypeSelectionForm.h
+++ b/GUI/View/SampleDesigner/LatticeTypeSelectionForm.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LATTICETYPESELECTIONFORM_H
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LATTICETYPESELECTIONFORM_H
 
-#include "GUI/Model/Sample/InterferenceItems.h"
+#include "GUI/Model/Item/InterferenceItems.h"
 #include "GUI/View/SampleDesigner/SelectionContainerForm.h"
 
 class SampleEditorController;
diff --git a/GUI/View/SampleDesigner/LayerEditorUtils.cpp b/GUI/View/SampleDesigner/LayerEditorUtils.cpp
index 0c7496f49b0b34bde0e2c07270e2936c14d193e9..1783186ad988841d06f62c6dc0bd8739a437f3f0 100644
--- a/GUI/View/SampleDesigner/LayerEditorUtils.cpp
+++ b/GUI/View/SampleDesigner/LayerEditorUtils.cpp
@@ -13,14 +13,14 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/LayerEditorUtils.h"
-#include "GUI/Model/Sample/FTDecayFunctionItems.h"
-#include "GUI/Model/Sample/FTDistributionItems.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/LayerRoughnessItems.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#include "GUI/Model/Item/FTDecayFunctionItems.h"
+#include "GUI/Model/Item/FTDistributionItems.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/LayerRoughnessItems.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#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/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
diff --git a/GUI/View/SampleDesigner/LayerEditorUtils.h b/GUI/View/SampleDesigner/LayerEditorUtils.h
index d0cd570803ff9d357dac5336226ba755ffdf9716..fd24a86586e3b26e6f6e1095b3ba5c92fbe0a4db 100644
--- a/GUI/View/SampleDesigner/LayerEditorUtils.h
+++ b/GUI/View/SampleDesigner/LayerEditorUtils.h
@@ -17,8 +17,8 @@
 
 #include "GUI/Model/Types/DoubleDescriptor.h"
 
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
-#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
 #include <QColor>
 #include <QList>
 #include <functional>
diff --git a/GUI/View/SampleDesigner/LayerForm.cpp b/GUI/View/SampleDesigner/LayerForm.cpp
index 4d2af0e9fe6df635a51d0ad97ac3c53696afea91..ba606e6885e240b5d99e9344566b36ac0e4a9052 100644
--- a/GUI/View/SampleDesigner/LayerForm.cpp
+++ b/GUI/View/SampleDesigner/LayerForm.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/LayerForm.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/MaterialInplaceForm.h"
 #include "GUI/View/SampleDesigner/ParticleLayoutForm.h"
diff --git a/GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp b/GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp
index b01290d49293891c5a6bed0cddea53b025721682..903173d840abde8ea99d558e87c7d67ab760f19a 100644
--- a/GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp
+++ b/GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp
@@ -14,9 +14,9 @@
 
 #include "GUI/View/SampleDesigner/LayerOrientedSampleEditor.h"
 #include "GUI/Application/ApplicationSettings.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
 #include "GUI/View/Common/StyledToolBar.h"
 #include "GUI/View/SampleDesigner/LayerEditorUtils.h"
 #include "GUI/View/SampleDesigner/MultiLayerForm.h"
diff --git a/GUI/View/SampleDesigner/LayerOrientedSampleEditor.h b/GUI/View/SampleDesigner/LayerOrientedSampleEditor.h
index 154ece95e52722582299ac200f6f9a7f8ebd1a69..a1f7e403a68baa9327f6e5a2ec26274344047a37 100644
--- a/GUI/View/SampleDesigner/LayerOrientedSampleEditor.h
+++ b/GUI/View/SampleDesigner/LayerOrientedSampleEditor.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LAYERORIENTEDSAMPLEEDITOR_H
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LAYERORIENTEDSAMPLEEDITOR_H
 
-#include "GUI/Model/Sample/SampleItem.h"
+#include "GUI/Model/Item/SampleItem.h"
 #include <QMap>
 #include <QWidget>
 
diff --git a/GUI/View/SampleDesigner/MaterialInplaceForm.cpp b/GUI/View/SampleDesigner/MaterialInplaceForm.cpp
index fa296beeef13ecb1af1707bcb569db04a7555251..bee4f43434be61618a004b23ca98f900b8213b25 100644
--- a/GUI/View/SampleDesigner/MaterialInplaceForm.cpp
+++ b/GUI/View/SampleDesigner/MaterialInplaceForm.cpp
@@ -13,9 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/MaterialInplaceForm.h"
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
+#include "Base/Util/Assert.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/Model/Types/VectorDescriptor.h"
 #include "GUI/View/Edit/DoubleLineEdit.h"
diff --git a/GUI/View/SampleDesigner/MesoCrystalForm.cpp b/GUI/View/SampleDesigner/MesoCrystalForm.cpp
index ad70c868175820f8fa5d1aaa98fcdcd54cd76587..3424c4c1ab38e6546045b54f51936db2e84f76bf 100644
--- a/GUI/View/SampleDesigner/MesoCrystalForm.cpp
+++ b/GUI/View/SampleDesigner/MesoCrystalForm.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/MesoCrystalForm.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#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/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
diff --git a/GUI/View/SampleDesigner/MultiLayerForm.cpp b/GUI/View/SampleDesigner/MultiLayerForm.cpp
index 1bce00f803666f926cce05d855305daf51fe71a4..1646364696303541d9a05ac9728524a99c89120b 100644
--- a/GUI/View/SampleDesigner/MultiLayerForm.cpp
+++ b/GUI/View/SampleDesigner/MultiLayerForm.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/MultiLayerForm.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/SampleDesigner/LayerForm.h"
diff --git a/GUI/View/SampleDesigner/ParticleCompositionForm.cpp b/GUI/View/SampleDesigner/ParticleCompositionForm.cpp
index fd20da2e45d1c9f2a96c7b43e3650a2658d2b846..a9d135a24521f9a6e86bf8dd5da542d4a597932a 100644
--- a/GUI/View/SampleDesigner/ParticleCompositionForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleCompositionForm.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/ParticleCompositionForm.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
 #include "GUI/Model/Types/VectorDescriptor.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
diff --git a/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp b/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
index 9ed74d29c84ee37d5fe46d235f3e2e49353d35e1..aac2456127854a712b6e7e9224e93436bf6498b6 100644
--- a/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/ParticleCoreShellForm.h"
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#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/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
diff --git a/GUI/View/SampleDesigner/ParticleForm.cpp b/GUI/View/SampleDesigner/ParticleForm.cpp
index 7cae7198a8ae9a0dbab152e4619de3a89f87c9cf..dd4989cf1b775025683c45eba6e74cea4e04972b 100644
--- a/GUI/View/SampleDesigner/ParticleForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleForm.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/ParticleForm.h"
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#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/Util/ActionFactory.h"
 #include "GUI/View/SampleDesigner/FormLayouter.h"
diff --git a/GUI/View/SampleDesigner/ParticleLayoutForm.cpp b/GUI/View/SampleDesigner/ParticleLayoutForm.cpp
index be83d503c255b24fae1bee817f2c49e2b0558991..59a89137d8df3abfb7fea2b6412531c11650cac7 100644
--- a/GUI/View/SampleDesigner/ParticleLayoutForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleLayoutForm.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/ParticleLayoutForm.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/ItemWithParticles.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/ItemWithParticles.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
 #include "GUI/Util/ActionFactory.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/SampleDesigner/InterferenceForm.h"
diff --git a/GUI/View/SampleDesigner/SampleEditorCommands.cpp b/GUI/View/SampleDesigner/SampleEditorCommands.cpp
index d1633edb4bc2dd5f0da8884217b8848068c217bc..e457a8d293f7cccba0c244d1ea246e32c548335f 100644
--- a/GUI/View/SampleDesigner/SampleEditorCommands.cpp
+++ b/GUI/View/SampleDesigner/SampleEditorCommands.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/View/SampleDesigner/SampleEditorCommands.h"
 
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Model/XML/Serializer.h"
 #include "GUI/View/SampleDesigner/MultiLayerForm.h"
 #include "GUI/View/SampleDesigner/SampleEditorController.h"
diff --git a/GUI/View/SampleDesigner/SampleEditorController.cpp b/GUI/View/SampleDesigner/SampleEditorController.cpp
index c61e9f981c92773053df3b51c5d22e80350f19ee..b10490892346c93719e59b98f2f6da87326083d2 100644
--- a/GUI/View/SampleDesigner/SampleEditorController.cpp
+++ b/GUI/View/SampleDesigner/SampleEditorController.cpp
@@ -13,17 +13,17 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/SampleEditorController.h"
-#include "GUI/Model/Material/MaterialModel.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MesoCrystalItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleCompositionItem.h"
+#include "GUI/Model/Item/ParticleCoreShellItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MesoCrystalItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleCompositionItem.h"
-#include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
 #include "GUI/Model/Types/UIntDescriptor.h"
 #include "GUI/View/Edit/DoubleSpinBox.h"
 #include "GUI/View/SampleDesigner/InterferenceForm.h"
diff --git a/GUI/View/SampleDesigner/SampleEditorController.h b/GUI/View/SampleDesigner/SampleEditorController.h
index 0deccdf4e15db1264a8cb551a6a240433038bf22..84d63ba7b98078ab5151bdf18e92ad54ea62498e 100644
--- a/GUI/View/SampleDesigner/SampleEditorController.h
+++ b/GUI/View/SampleDesigner/SampleEditorController.h
@@ -15,9 +15,9 @@
 #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_SAMPLEEDITORCONTROLLER_H
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_SAMPLEEDITORCONTROLLER_H
 
-#include "GUI/Model/Sample/FormFactorItemCatalog.h"
-#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
-#include "GUI/Model/Sample/SampleItem.h"
+#include "GUI/Model/Item/SampleItem.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
 #include <QUndoStack>
 
 class MultiLayerItem;
diff --git a/GUI/View/SampleDesigner/SampleListModel.cpp b/GUI/View/SampleDesigner/SampleListModel.cpp
index 2305fbd35d666d965223bd096bad898516530ba0..ae243dcc24f1d0120e58fdf7b8ef213124d6b832 100644
--- a/GUI/View/SampleDesigner/SampleListModel.cpp
+++ b/GUI/View/SampleDesigner/SampleListModel.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/View/SampleDesigner/SampleListModel.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Util/String.h"
 #include "GUI/View/FromDomain/GUIExamplesFactory.h"
 #include "GUI/View/FromDomain/GUISampleBuilder.h"
diff --git a/GUI/View/SampleDesigner/SampleListView.cpp b/GUI/View/SampleDesigner/SampleListView.cpp
index f74f0ce24ab3917c78344c69e0ebce7870500900..529db44a365683b5656e6fcf02e2768c4191a29e 100644
--- a/GUI/View/SampleDesigner/SampleListView.cpp
+++ b/GUI/View/SampleDesigner/SampleListView.cpp
@@ -15,8 +15,8 @@
 #include "GUI/View/SampleDesigner/SampleListView.h"
 #include "Base/Util/SysUtils.h"
 #include "GUI/Application/ApplicationSettings.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
 #include "GUI/View/Common/ItemViewOverlayButtons.h"
 #include "GUI/View/FromDomain/GUIExamplesFactory.h"
 #include "GUI/View/SampleDesigner/SampleListModel.h"
diff --git a/GUI/View/SampleDesigner/SampleView.cpp b/GUI/View/SampleDesigner/SampleView.cpp
index 76b1008d635cf6f6a88f04a85c87be1fdda86d9d..8b5f459cba9ade3a5d360e9ff4172f6b8a75be67 100644
--- a/GUI/View/SampleDesigner/SampleView.cpp
+++ b/GUI/View/SampleDesigner/SampleView.cpp
@@ -13,12 +13,12 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/SampleView.h"
+#include "GUI/Model/Item/ItemWithParticles.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Sample/ItemWithParticles.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
 #include "GUI/View/Common/DocksController.h"
 #include "GUI/View/Common/StyledToolBar.h"
 #include "GUI/View/Realspace/RealSpaceCanvas.h"
diff --git a/GUI/View/SampleDesigner/SampleView.h b/GUI/View/SampleDesigner/SampleView.h
index 3eb7426e2923d7d639c07d4cacfbf5cdf6c890be..6dd4a8519bf7f28eb24612505fc984407291d4c3 100644
--- a/GUI/View/SampleDesigner/SampleView.h
+++ b/GUI/View/SampleDesigner/SampleView.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_SAMPLEVIEW_H
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_SAMPLEVIEW_H
 
-#include "GUI/Model/Sample/SampleItem.h"
+#include "GUI/Model/Item/SampleItem.h"
 #include <QMainWindow>
 
 class DocksController;
diff --git a/GUI/View/SampleDesigner/ScriptPanel.cpp b/GUI/View/SampleDesigner/ScriptPanel.cpp
index 357185c1905c0e754c78d5ad4a9e3232e7bff006..5eda1982bcbee86842b366fa1329a85e6a2b7355 100644
--- a/GUI/View/SampleDesigner/ScriptPanel.cpp
+++ b/GUI/View/SampleDesigner/ScriptPanel.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/SampleDesigner/ScriptPanel.h"
 #include "Core/Export/ExportToPython.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Model/To/ToDomain.h"
 #include "GUI/View/Info/CautionSign.h"
 #include "GUI/View/Info/PythonSyntaxHighlighter.h"
diff --git a/GUI/View/Tool/DataItemUtils.cpp b/GUI/View/Tool/DataItemUtils.cpp
index 3f9a9c58ced78b25bc7ff7a023be1204878488f2..d20447d37c59f056c0d9ff005bb65e5548f8dbd7 100644
--- a/GUI/View/Tool/DataItemUtils.cpp
+++ b/GUI/View/Tool/DataItemUtils.cpp
@@ -13,10 +13,10 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Tool/DataItemUtils.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Fit/JobItem.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
 
 namespace {
 
diff --git a/GUI/View/Toplevel/ProjectSettingsView.cpp b/GUI/View/Toplevel/ProjectSettingsView.cpp
index bad9edd47e67be67e92d62ab39883c2883c42c74..326664402b902e185a763355f6e053ae190daaa3 100644
--- a/GUI/View/Toplevel/ProjectSettingsView.cpp
+++ b/GUI/View/Toplevel/ProjectSettingsView.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/View/Toplevel/ProjectSettingsView.h"
 #include "GUI/Application/ApplicationSettings.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Util/Path.h"
 #include "GUI/View/Tool/GroupBoxCollapser.h"
 #include "ui_ProjectSettingsView.h"
diff --git a/GUI/View/Toplevel/SessionDecorationModel.cpp b/GUI/View/Toplevel/SessionDecorationModel.cpp
index cbbd76c99de9188cfc63f837868e1fd672c44462..564f568dce13cf19f58fc5512447ea05f18114cd 100644
--- a/GUI/View/Toplevel/SessionDecorationModel.cpp
+++ b/GUI/View/Toplevel/SessionDecorationModel.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Toplevel/SessionDecorationModel.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include <QColor>
 #include <QIcon>
 #include <QPixmap>
diff --git a/GUI/View/Toplevel/SessionModelView.cpp b/GUI/View/Toplevel/SessionModelView.cpp
index 2d621ab2f49e40fe16be46ce4c0d7c988391c0a9..ed5b8c86cc32ef8c394b31cfe6b226ab0d512660 100644
--- a/GUI/View/Toplevel/SessionModelView.cpp
+++ b/GUI/View/Toplevel/SessionModelView.cpp
@@ -13,12 +13,12 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Toplevel/SessionModelView.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Project/JobModel.h"
-#include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Item/ItemWithMaterial.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/MaterialModel.h"
+#include "GUI/Model/Model/RealDataModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/View/Project/ProjectManager.h"
 #include "GUI/View/Tool/StyleUtils.h"
diff --git a/GUI/View/Toplevel/SimulationView.cpp b/GUI/View/Toplevel/SimulationView.cpp
index 38fb8f33c64239a0e7d1c9c7b36cb1b2cdf1ad40..e916298befe976120fb533c4a13eadebbab581f6 100644
--- a/GUI/View/Toplevel/SimulationView.cpp
+++ b/GUI/View/Toplevel/SimulationView.cpp
@@ -13,15 +13,15 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Toplevel/SimulationView.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/RealDataModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
 #include "GUI/Model/Sample/SampleValidator.h"
 #include "GUI/Support/Data/SimulationOptionsItem.h"
 #include "GUI/View/Global/Globals.h"
diff --git a/Sample/Correlations/FTDecay1D.cpp b/Sample/Correlations/FTDecay1D.cpp
index c61a5b7c2f0be119c5ef7ff34d2c8f26ddd34358..0b942329c230402358e70851906458d198681e9a 100644
--- a/Sample/Correlations/FTDecay1D.cpp
+++ b/Sample/Correlations/FTDecay1D.cpp
@@ -14,8 +14,8 @@
 
 #include "Sample/Correlations/FTDecay1D.h"
 #include "Base/Math/Functions.h"
-#include "Base/Util/Assert.h"
 #include "Base/Py/PyFmt.h"
+#include "Base/Util/Assert.h"
 #include <algorithm>
 
 //  ************************************************************************************************
diff --git a/Sample/Correlations/FTDecay2D.cpp b/Sample/Correlations/FTDecay2D.cpp
index 3c0504da85bc91375b1dea4fb39c421d3499405a..896669ef4ef832295143f62c071549633fd509c7 100644
--- a/Sample/Correlations/FTDecay2D.cpp
+++ b/Sample/Correlations/FTDecay2D.cpp
@@ -14,8 +14,8 @@
 
 #include "Sample/Correlations/FTDecay2D.h"
 #include "Base/Math/Functions.h"
-#include "Base/Util/Assert.h"
 #include "Base/Py/PyFmt.h"
+#include "Base/Util/Assert.h"
 #include <algorithm>
 
 //  ************************************************************************************************
diff --git a/Sample/Correlations/FTDistributions1D.cpp b/Sample/Correlations/FTDistributions1D.cpp
index 3ba3987b085cb17f2366fb605cc396baa5d6ebd7..b5825f9e9937ed57222f110339a27740aa97ad9c 100644
--- a/Sample/Correlations/FTDistributions1D.cpp
+++ b/Sample/Correlations/FTDistributions1D.cpp
@@ -15,8 +15,8 @@
 #include "Sample/Correlations/FTDistributions1D.h"
 #include "Base/Math/Constants.h"
 #include "Base/Math/Functions.h"
-#include "Base/Util/Assert.h"
 #include "Base/Py/PyFmt.h"
+#include "Base/Util/Assert.h"
 #include <limits>
 
 namespace {
diff --git a/Sample/Correlations/FTDistributions2D.cpp b/Sample/Correlations/FTDistributions2D.cpp
index c66c553fbc4c52e55936375bbd4f14544f7f1cdc..acb41867785696f38852c89f27d854de68333f60 100644
--- a/Sample/Correlations/FTDistributions2D.cpp
+++ b/Sample/Correlations/FTDistributions2D.cpp
@@ -15,8 +15,8 @@
 #include "Sample/Correlations/FTDistributions2D.h"
 #include "Base/Math/Bessel.h"
 #include "Base/Math/IntegratorGK.h"
-#include "Base/Util/Assert.h"
 #include "Base/Py/PyFmt.h"
+#include "Base/Util/Assert.h"
 #include <limits>
 
 //  ************************************************************************************************
diff --git a/Tests/Functional/GUI/Check.cpp b/Tests/Functional/GUI/Check.cpp
index 39c0ccd934e402830f5867da3acdb73be8d276cc..3078c9c60bb28978f6415d50299d41737085789d 100644
--- a/Tests/Functional/GUI/Check.cpp
+++ b/Tests/Functional/GUI/Check.cpp
@@ -19,11 +19,11 @@
 #include "Device/Histo/HistoUtils.h"
 #include "Device/Histo/IntensityDataIOFactory.h"
 #include "Device/Histo/SimulationResult.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/MaterialModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Model/To/DomainSimulationBuilder.h"
 #include "GUI/Support/Data/SimulationOptionsItem.h"
 #include "GUI/View/FromDomain/GUIObjectBuilder.h"
diff --git a/Tests/Functional/PyEmbedded/Tests.cpp b/Tests/Functional/PyEmbedded/Tests.cpp
index 8cffa32c68c3137790ca4271df8ef0085f0c314a..d3f1a87c7ec213f9c00e1b7cf0ff2b0c9ca7021c 100644
--- a/Tests/Functional/PyEmbedded/Tests.cpp
+++ b/Tests/Functional/PyEmbedded/Tests.cpp
@@ -14,8 +14,8 @@
 #include "BABuild.h"
 #include "BAVersion.h"
 #include "Base/Py/PyCore.h"
-#include "Base/Py/PyUtils.h"
 #include "Base/Py/PyFmt.h"
+#include "Base/Py/PyUtils.h"
 #include "Base/Util/SysUtils.h"
 #include "Core/Export/ExportToPython.h"
 #include "Sample/Multilayer/MultiLayer.h"
diff --git a/Tests/Unit/GUI/TestAxesItems.cpp b/Tests/Unit/GUI/TestAxesItems.cpp
index de7cf44d06cef2c7427e9ef116240c578756c43c..622d93e48082f707425a304fe0db6479ca00b636 100644
--- a/Tests/Unit/GUI/TestAxesItems.cpp
+++ b/Tests/Unit/GUI/TestAxesItems.cpp
@@ -1,8 +1,8 @@
 #include "Base/Axis/FixedBinAxis.h"
 #include "Base/Axis/VariableBinAxis.h"
 #include "Base/Const/Units.h"
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Session/PropertyItem.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Item/AxesItems.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/FromDomain/FromDomain.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/GUI/TestDataItemViews.cpp b/Tests/Unit/GUI/TestDataItemViews.cpp
index 2e5ab7c689cc7b7109dc7e140b53f92223cb0037..5207ca829ffc9b849bd7f91c75fa033ef01a7c1b 100644
--- a/Tests/Unit/GUI/TestDataItemViews.cpp
+++ b/Tests/Unit/GUI/TestDataItemViews.cpp
@@ -1,7 +1,7 @@
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Plot/DataProperties.h"
-#include "GUI/Model/Plot/DataPropertyContainer.h"
+#include "GUI/Model/Item/DataProperties.h"
+#include "GUI/Model/Item/DataPropertyContainer.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Util/ComboProperty.h"
 #include "GUI/Util/Error.h"
diff --git a/Tests/Unit/GUI/TestDataItems.cpp b/Tests/Unit/GUI/TestDataItems.cpp
index c8789ad66199b9dcd08cecc53b34bf8e2156d0e8..c3f554c5384e103f2f41fc886de21e25e14c8dd3 100644
--- a/Tests/Unit/GUI/TestDataItems.cpp
+++ b/Tests/Unit/GUI/TestDataItems.cpp
@@ -1,6 +1,6 @@
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/SpecularDataItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <QTest>
 
diff --git a/Tests/Unit/GUI/TestDetectorItems.cpp b/Tests/Unit/GUI/TestDetectorItems.cpp
index e94311b52de88f650ca7dedfbdd8e2878cdb4848..895abfe4e3bee2ef1d17add4005c21f81c231039 100644
--- a/Tests/Unit/GUI/TestDetectorItems.cpp
+++ b/Tests/Unit/GUI/TestDetectorItems.cpp
@@ -2,11 +2,11 @@
 #include "Device/Detector/IDetector2D.h"
 #include "Device/Resolution/ConvolutionDetectorResolution.h"
 #include "Device/Resolution/ResolutionFunction2DGaussian.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
-#include "GUI/Model/Instrument/ResolutionFunctionItems.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
+#include "GUI/Model/Item/ResolutionFunctionItems.h"
+#include "GUI/Model/Item/VectorItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 #include "GUI/Util/ComboProperty.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/Unit/GUI/TestFTDistributionItems.cpp b/Tests/Unit/GUI/TestFTDistributionItems.cpp
index a709bef35a1fb3be9792e27c709240b5da1e7d58..e2ce187993e6c3de4a5d05ddd27292089491eb42 100644
--- a/Tests/Unit/GUI/TestFTDistributionItems.cpp
+++ b/Tests/Unit/GUI/TestFTDistributionItems.cpp
@@ -1,4 +1,4 @@
-#include "GUI/Model/Sample/FTDistributionItems.h"
+#include "GUI/Model/Item/FTDistributionItems.h"
 #include "Tests/GTestWrapper/google_test.h"
 
 class TestFTDistributionItems : public ::testing::Test {
diff --git a/Tests/Unit/GUI/TestFitParameterModel.cpp b/Tests/Unit/GUI/TestFitParameterModel.cpp
index b5de2cbf96724856aa0a436347ebbc3e0391e066..2e2cf5a3b3bc5948c66abd43d9ef094e6a37685e 100644
--- a/Tests/Unit/GUI/TestFitParameterModel.cpp
+++ b/Tests/Unit/GUI/TestFitParameterModel.cpp
@@ -1,9 +1,9 @@
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
-#include "GUI/Model/Fit/FitParameterItem.h"
-#include "GUI/Model/Fit/FitParameterLinkItem.h"
-#include "GUI/Model/Fit/FitParameterModel.h"
-#include "GUI/Model/Fit/FitSuiteItem.h"
-#include "GUI/Model/Project/JobModel.h"
+#include "GUI/Model/Item/FitParameterContainerItem.h"
+#include "GUI/Model/Item/FitParameterItem.h"
+#include "GUI/Model/Item/FitParameterLinkItem.h"
+#include "GUI/Model/Item/FitSuiteItem.h"
+#include "GUI/Model/Model/FitParameterModel.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "Tests/GTestWrapper/google_test.h"
 
 class TestFitParameterModel : public ::testing::Test {
diff --git a/Tests/Unit/GUI/TestFormFactorItems.cpp b/Tests/Unit/GUI/TestFormFactorItems.cpp
index 7360d42583e133bffe531ea81938de54e3fe3fe2..e598c7db69aac4418b7cfdc43d0a326540262469 100644
--- a/Tests/Unit/GUI/TestFormFactorItems.cpp
+++ b/Tests/Unit/GUI/TestFormFactorItems.cpp
@@ -1,6 +1,6 @@
 #include "Base/Const/Units.h"
 #include "Base/Util/Algorithms.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Item/FormFactorItems.h"
 #include "Sample/HardParticle/FormFactorPyramid2.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/Unit/GUI/TestGroupItem.cpp b/Tests/Unit/GUI/TestGroupItem.cpp
index 1a5366f56bf16b239c15e805718d57723f56e5dd..224b9f6b32b86b839a0f3ae9774d5a36a2c4fe63 100644
--- a/Tests/Unit/GUI/TestGroupItem.cpp
+++ b/Tests/Unit/GUI/TestGroupItem.cpp
@@ -1,7 +1,7 @@
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Instrument/ResolutionItems.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/ResolutionItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Support/Type/VariantUtil.h"
 #include "GUI/Util/ComboProperty.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/GUI/TestInstrumentModel.cpp b/Tests/Unit/GUI/TestInstrumentModel.cpp
index d4f6b4cce07d2157120398ae8adfe47c9b7dab64..7c35d03cc7bc7fc26c49906b5e9d9541ca7d85e1 100644
--- a/Tests/Unit/GUI/TestInstrumentModel.cpp
+++ b/Tests/Unit/GUI/TestInstrumentModel.cpp
@@ -1,5 +1,5 @@
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Model/InstrumentModel.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <QSignalSpy>
 
diff --git a/Tests/Unit/GUI/TestLayerRoughnessItems.cpp b/Tests/Unit/GUI/TestLayerRoughnessItems.cpp
index 141b460c3da65b94947218c0f805eadac0e2228f..19320aa34b65445a9de57aaa8884d05c36e0ba6b 100644
--- a/Tests/Unit/GUI/TestLayerRoughnessItems.cpp
+++ b/Tests/Unit/GUI/TestLayerRoughnessItems.cpp
@@ -1,4 +1,4 @@
-#include "GUI/Model/Sample/LayerRoughnessItems.h"
+#include "GUI/Model/Item/LayerRoughnessItems.h"
 #include "GUI/Model/To/ToDomain.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/View/FromDomain/FromDomain.h"
diff --git a/Tests/Unit/GUI/TestLinkInstrument.cpp b/Tests/Unit/GUI/TestLinkInstrument.cpp
index 7c6c2d86b893a4cb139b7c14a48b12ac96fa27d8..8a01eac87c97557316cd26620282b9b61e228fed 100644
--- a/Tests/Unit/GUI/TestLinkInstrument.cpp
+++ b/Tests/Unit/GUI/TestLinkInstrument.cpp
@@ -1,10 +1,10 @@
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
-#include "GUI/Model/Instrument/RectangularDetectorItem.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/JobItemUtils.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Item/RectangularDetectorItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include "GUI/Model/Project/LinkInstrumentManager.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/GUI/TestMapperForItem.cpp b/Tests/Unit/GUI/TestMapperForItem.cpp
index c3d17096b2ef7026ea6617241ffaae203f5a994d..472fa8bc1f1c63287c675d4d0ce01cde25ffd446 100644
--- a/Tests/Unit/GUI/TestMapperForItem.cpp
+++ b/Tests/Unit/GUI/TestMapperForItem.cpp
@@ -1,6 +1,6 @@
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Mask/ProjectionItems.h"
-#include "GUI/Model/Project/JobModel.h"
+#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 "Tests/GTestWrapper/google_test.h"
 #include <memory>
diff --git a/Tests/Unit/GUI/TestMaterialModel.cpp b/Tests/Unit/GUI/TestMaterialModel.cpp
index 28c755a7e975e25e58dcc3cf1762f053273a27fb..5c884bbaba86c1e978bb5623d04a9b7fc7385354 100644
--- a/Tests/Unit/GUI/TestMaterialModel.cpp
+++ b/Tests/Unit/GUI/TestMaterialModel.cpp
@@ -1,5 +1,5 @@
-#include "GUI/Model/Material/MaterialItem.h"
-#include "GUI/Model/Material/MaterialModel.h"
+#include "GUI/Model/Item/MaterialItem.h"
+#include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <memory>
diff --git a/Tests/Unit/GUI/TestOutputDataIOService.cpp b/Tests/Unit/GUI/TestOutputDataIOService.cpp
index c88121b6ec33e5d79ad0b8f11677a53eca426e88..7df1fc522953072b8e5ef8c26e650e4b4bef7bf9 100644
--- a/Tests/Unit/GUI/TestOutputDataIOService.cpp
+++ b/Tests/Unit/GUI/TestOutputDataIOService.cpp
@@ -1,12 +1,12 @@
 #include "Device/Histo/IntensityDataIOFactory.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
-#include "GUI/Model/Project/ApplicationModels.h"
-#include "GUI/Model/Project/JobModel.h"
-#include "GUI/Model/Project/JobModelFunctions.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobFunctions.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/JobItemUtils.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/ApplicationModels.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include "GUI/Model/Project/OutputDataIOService.h"
 #include "GUI/Support/IO/ImportDataInfo.h"
 #include "GUI/Support/IO/ProjectUtils.h"
diff --git a/Tests/Unit/GUI/TestParaCrystalItems.cpp b/Tests/Unit/GUI/TestParaCrystalItems.cpp
index 32285bb53a0c57506c05795451b9f2aadd05f540..0fbf15566f3aafe33b6ed5e8d6a533aba52d244a 100644
--- a/Tests/Unit/GUI/TestParaCrystalItems.cpp
+++ b/Tests/Unit/GUI/TestParaCrystalItems.cpp
@@ -1,11 +1,11 @@
 #include "Base/Const/Units.h"
-#include "GUI/Model/Sample/FTDistributionItems.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/Lattice2DItems.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Item/FTDistributionItems.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/Lattice2DItems.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/View/FromDomain/FromDomain.h"
 #include "Sample/Aggregate/Interference2DParaCrystal.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/GUI/TestParticleLayoutItem.h b/Tests/Unit/GUI/TestParticleLayoutItem.h
index 0040c3cd8c5f7b41e63ed220095031b5f2ca300a..ed61ec3db578d66ae6bf1b7550cb2bf9c80c1bc9 100644
--- a/Tests/Unit/GUI/TestParticleLayoutItem.h
+++ b/Tests/Unit/GUI/TestParticleLayoutItem.h
@@ -2,10 +2,10 @@
 #define BORNAGAIN_TESTS_UNIT_GUI_TESTPARTICLELAYOUTITEM_H
 
 #include "Base/Math/Constants.h"
-#include "GUI/Model/Sample/InterferenceItems.h"
-#include "GUI/Model/Sample/Lattice2DItems.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Item/InterferenceItems.h"
+#include "GUI/Model/Item/Lattice2DItems.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "Tests/Unit/utilities/google_test.h"
 
 class TestParticleLayoutItem : public ::testing::Test {
diff --git a/Tests/Unit/GUI/TestProjectDocument.cpp b/Tests/Unit/GUI/TestProjectDocument.cpp
index 9e65924502ef8757a2611f55ed4a2a576f789ef8..770ba369b16f1474a279fdc30e4250c6919efefc 100644
--- a/Tests/Unit/GUI/TestProjectDocument.cpp
+++ b/Tests/Unit/GUI/TestProjectDocument.cpp
@@ -1,9 +1,9 @@
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItemUtils.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Support/IO/ProjectUtils.h"
 #include "GUI/Util/Path.h"
diff --git a/Tests/Unit/GUI/TestPropertyRepeater.cpp b/Tests/Unit/GUI/TestPropertyRepeater.cpp
index 3e6e5e1dcbac1300b8734ddfe1584b5ca6b992f7..f250857110b2e6f2ddef1fb823c6e2b961be5a1a 100644
--- a/Tests/Unit/GUI/TestPropertyRepeater.cpp
+++ b/Tests/Unit/GUI/TestPropertyRepeater.cpp
@@ -1,6 +1,6 @@
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/View/PlotComparison/PropertyRepeater.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/Unit/GUI/TestRealDataModel.cpp b/Tests/Unit/GUI/TestRealDataModel.cpp
index 3bc7ea840f03a277ec6da530770063588068fc83..b1dbe5f2c221737b9c02384a05ad40d2bc82d83c 100644
--- a/Tests/Unit/GUI/TestRealDataModel.cpp
+++ b/Tests/Unit/GUI/TestRealDataModel.cpp
@@ -1,7 +1,7 @@
 #include "Base/Axis/PointwiseAxis.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Session/DataItem.h"
+#include "GUI/Model/Item/DataItem.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <QSignalSpy>
 
diff --git a/Tests/Unit/GUI/TestRealSpaceBuilderUtils.cpp b/Tests/Unit/GUI/TestRealSpaceBuilderUtils.cpp
index cabb85bc7c1b879386b0dfa23ffeef4acdbf4927..0b8c202be6f56fdbf3b852846c00bf777b4f7b23 100644
--- a/Tests/Unit/GUI/TestRealSpaceBuilderUtils.cpp
+++ b/Tests/Unit/GUI/TestRealSpaceBuilderUtils.cpp
@@ -1,9 +1,9 @@
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Project/ApplicationModels.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Model/ApplicationModels.h"
+#include "GUI/Model/Model/MaterialModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/View/Realspace/Particle3DContainer.h"
 #include "GUI/View/Realspace/RealSpaceBuilder.h"
 #include "GUI/View/Realspace/RealSpaceBuilderUtils.h"
diff --git a/Tests/Unit/GUI/TestSaveService.cpp b/Tests/Unit/GUI/TestSaveService.cpp
index 6b6834bb5e05ee077823dca6a57d9ae02459c611..4c2d2bd345c3de6d78595e5d9b595e811ad9939a 100644
--- a/Tests/Unit/GUI/TestSaveService.cpp
+++ b/Tests/Unit/GUI/TestSaveService.cpp
@@ -1,9 +1,9 @@
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Data/RealDataModel.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Instrument/JobItemUtils.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobItemUtils.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/RealDataModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Support/IO/ProjectUtils.h"
 #include "GUI/Util/Error.h"
diff --git a/Tests/Unit/GUI/TestSavingSpecularData.cpp b/Tests/Unit/GUI/TestSavingSpecularData.cpp
index 67330ef65cb13368d87e181bfadc69cce0a91265..03a2829c42c05f68c59f92485d2c900a848276b9 100644
--- a/Tests/Unit/GUI/TestSavingSpecularData.cpp
+++ b/Tests/Unit/GUI/TestSavingSpecularData.cpp
@@ -1,14 +1,14 @@
 #include "Base/Axis/PointwiseAxis.h"
 #include "Device/Histo/IntensityDataIOFactory.h"
-#include "GUI/Model/Ax/PointwiseAxisItem.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Group/GroupItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Project/ApplicationModels.h"
-#include "GUI/Model/Project/JobModel.h"
-#include "GUI/Model/Project/JobModelFunctions.h"
+#include "GUI/Model/BaseItem/GroupItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/IntensityDataItem.h"
+#include "GUI/Model/Item/JobFunctions.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/PointwiseAxisItem.h"
+#include "GUI/Model/Model/ApplicationModels.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/JobModel.h"
 #include "GUI/Model/Project/OutputDataIOService.h"
 #include "GUI/Support/IO/ItemFileNameUtils.h"
 #include "GUI/Support/IO/ProjectUtils.h"
diff --git a/Tests/Unit/GUI/TestSessionItem.cpp b/Tests/Unit/GUI/TestSessionItem.cpp
index 4f742207015c0d91f8162a1a754bfb5898b876b2..b87199705baa7684e5f9bb9de815c9001b5177db 100644
--- a/Tests/Unit/GUI/TestSessionItem.cpp
+++ b/Tests/Unit/GUI/TestSessionItem.cpp
@@ -1,4 +1,4 @@
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Support/Data/SessionFlags.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/Unit/GUI/TestSessionItemController.cpp b/Tests/Unit/GUI/TestSessionItemController.cpp
index 0e67c20ad730c7a16c1024b7b5de10755d8e0be6..503e09d5bcfb3fb3d5ef45a1f8de51b276cd8099 100644
--- a/Tests/Unit/GUI/TestSessionItemController.cpp
+++ b/Tests/Unit/GUI/TestSessionItemController.cpp
@@ -1,5 +1,5 @@
-#include "GUI/Model/Ax/AxesItems.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/AxesItems.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/View/Common/SessionItemController.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include "Tests/Unit/GUI/TestSessionItemControllerHelper.h"
diff --git a/Tests/Unit/GUI/TestSessionItemControllerHelper.cpp b/Tests/Unit/GUI/TestSessionItemControllerHelper.cpp
index 84e6ea3a1384ec19639f447d79a32c3c7b995284..4b04fa1b728237c831a19bc2e38ed4ea1e4091ee 100644
--- a/Tests/Unit/GUI/TestSessionItemControllerHelper.cpp
+++ b/Tests/Unit/GUI/TestSessionItemControllerHelper.cpp
@@ -1,5 +1,5 @@
 #include "Tests/Unit/GUI/TestSessionItemControllerHelper.h"
-#include "GUI/Model/Session/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/View/Common/SessionItemController.h"
 
 TestListener::TestListener()
diff --git a/Tests/Unit/GUI/TestSessionItemTags.cpp b/Tests/Unit/GUI/TestSessionItemTags.cpp
index 639f2db8d8be1dd877df0c60526b639c9338e51f..a760797e31534726b6a504c24e8a8820651ba298 100644
--- a/Tests/Unit/GUI/TestSessionItemTags.cpp
+++ b/Tests/Unit/GUI/TestSessionItemTags.cpp
@@ -1,5 +1,5 @@
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Support/Data/SessionItemTags.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/Unit/GUI/TestSessionItemUtils.cpp b/Tests/Unit/GUI/TestSessionItemUtils.cpp
index 509b48882de7ccca0e960e2a40f91ba1360db220..a44424e1411ad5d5895f35e8f1029babe268a9db 100644
--- a/Tests/Unit/GUI/TestSessionItemUtils.cpp
+++ b/Tests/Unit/GUI/TestSessionItemUtils.cpp
@@ -1,6 +1,6 @@
-#include "GUI/Model/Session/PropertyItem.h"
-#include "GUI/Model/Session/SessionModel.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Item/VectorItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Support/Type/VariantUtil.h"
 #include "GUI/Util/ComboProperty.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/GUI/TestSessionModel.cpp b/Tests/Unit/GUI/TestSessionModel.cpp
index 573a6552a1be77f51a3ab2e0645f0355b8f69569..57386f86d0f122b8a6be1d9a9e4006290f38e976 100644
--- a/Tests/Unit/GUI/TestSessionModel.cpp
+++ b/Tests/Unit/GUI/TestSessionModel.cpp
@@ -1,14 +1,14 @@
-#include "GUI/Model/Fit/JobItem.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Mask/MaskItems.h"
-#include "GUI/Model/Material/MaterialModel.h"
-#include "GUI/Model/Project/JobModel.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
-#include "GUI/Model/Session/PropertyItem.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/JobItem.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MaskItems.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/VectorItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/MaterialModel.h"
+#include "GUI/Model/Model/SampleModel.h"
 #include "GUI/Support/Data/SessionItemTags.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <QSignalSpy>
diff --git a/Tests/Unit/GUI/TestSessionXML.cpp b/Tests/Unit/GUI/TestSessionXML.cpp
index 143db0dd3b115a2f4739ae3c292173f817a8f8f7..c8439c5e350fbb9ee115466c3dc2c9c8e77ebcc4 100644
--- a/Tests/Unit/GUI/TestSessionXML.cpp
+++ b/Tests/Unit/GUI/TestSessionXML.cpp
@@ -1,17 +1,17 @@
-#include "GUI/Model/Instrument/BackgroundItems.h"
-#include "GUI/Model/Instrument/InstrumentItems.h"
-#include "GUI/Model/Instrument/InstrumentModel.h"
-#include "GUI/Model/Project/JobModel.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
-#include "GUI/Model/Sample/LayerItem.h"
-#include "GUI/Model/Sample/MultiLayerItem.h"
-#include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Sample/SampleModel.h"
-#include "GUI/Model/Session/PropertyItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Item/BackgroundItems.h"
+#include "GUI/Model/Item/FormFactorItems.h"
+#include "GUI/Model/Item/InstrumentItems.h"
+#include "GUI/Model/Item/LayerItem.h"
+#include "GUI/Model/Item/MultiLayerItem.h"
+#include "GUI/Model/Item/ParticleItem.h"
+#include "GUI/Model/Item/ParticleLayoutItem.h"
+#include "GUI/Model/Model/InstrumentModel.h"
+#include "GUI/Model/Model/JobModel.h"
+#include "GUI/Model/Model/SampleModel.h"
+#include "GUI/Model/Model/SessionModel.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Model/XML/Serializer.h"
-#include "GUI/Model/XML/SessionXML.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <QXmlStreamReader>
 #include <QXmlStreamWriter>
diff --git a/Tests/Unit/GUI/TestVectorItem.cpp b/Tests/Unit/GUI/TestVectorItem.cpp
index 79828ba81ae6e57c44c4da970814f90bc6825752..c5865250a59b09b38e74253a503bf3eacf4e708b 100644
--- a/Tests/Unit/GUI/TestVectorItem.cpp
+++ b/Tests/Unit/GUI/TestVectorItem.cpp
@@ -1,4 +1,4 @@
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Item/VectorItem.h"
 #include "Tests/GTestWrapper/google_test.h"
 
 //! Tests VectorItem class.
diff --git a/Tests/Unit/GUI/Utils.cpp b/Tests/Unit/GUI/Utils.cpp
index aeb123c7b4a6c146f8c04126eaf2a650d8092e0b..e6c59fdd9e186a9627aa355d3d6c7aa568ace660 100644
--- a/Tests/Unit/GUI/Utils.cpp
+++ b/Tests/Unit/GUI/Utils.cpp
@@ -16,8 +16,8 @@
 #include "Tests/Unit/GUI/Utils.h"
 #include "Device/Data/DataUtils.h"
 #include "Device/Histo/IntensityDataIOFactory.h"
-#include "GUI/Model/Data/RealDataItem.h"
-#include "GUI/Model/Session/SessionModel.h"
+#include "GUI/Model/Item/RealDataItem.h"
+#include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Support/IO/ProjectUtils.h"
 #include "GUI/Util/Error.h"
 #include <QDir>
diff --git a/Tests/Unit/GUI/Utils.h b/Tests/Unit/GUI/Utils.h
index 1914c8ed88dd881e704b418dc8127d5e66ac7b62..1e0059260e2dbd22aec40adc79f73c1337299511 100644
--- a/Tests/Unit/GUI/Utils.h
+++ b/Tests/Unit/GUI/Utils.h
@@ -16,8 +16,8 @@
 #ifndef BORNAGAIN_TESTS_UNIT_GUI_UTILS_H
 #define BORNAGAIN_TESTS_UNIT_GUI_UTILS_H
 
-#include "GUI/Model/Session/PropertyItem.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/BaseItem/PropertyItem.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Support/Data/XML.h"
 #include <QString>
 #include <QXmlStreamWriter>