From abd819cc7ca090babeecd60d6c8834dfac9217e8 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Sun, 16 Jan 2022 20:55:57 +0100
Subject: [PATCH] moves and experimental moves

---
 GUI/Model/{Item => BaseItem}/SessionItem.cpp   |  2 +-
 GUI/Model/{Item => BaseItem}/SessionItem.h     |  8 ++++----
 GUI/Model/Item/AxesItems.h                     |  2 +-
 GUI/Model/Item/BackgroundItems.h               |  2 +-
 GUI/Model/Item/BeamItems.h                     |  2 +-
 GUI/Model/Item/Data1DViewItem.h                |  2 +-
 GUI/Model/Item/DataItem.h                      |  2 +-
 GUI/Model/Item/DetectorItems.h                 |  2 +-
 GUI/Model/Item/FitParameterContainerItem.h     |  2 +-
 GUI/Model/Item/FitParameterItem.h              |  2 +-
 GUI/Model/Item/FitParameterLinkItem.h          |  2 +-
 GUI/Model/Item/FitSuiteItem.h                  |  2 +-
 GUI/Model/Item/FootprintItems.h                |  2 +-
 GUI/Model/Item/GroupItem.h                     |  2 +-
 GUI/Model/Item/GroupItemController.cpp         |  2 +-
 GUI/Model/Item/InterferenceItems.cpp           |  6 +++---
 GUI/Model/Item/ItemFactory.cpp                 |  4 ++--
 GUI/Model/Item/ItemWithParticles.cpp           |  2 +-
 GUI/Model/Item/JobItem.cpp                     |  2 +-
 GUI/Model/Item/JobItem.h                       |  2 +-
 GUI/Model/Item/LayerRoughnessItems.cpp         |  2 +-
 GUI/Model/Item/MaskItems.h                     |  2 +-
 GUI/Model/Item/MesoCrystalItem.cpp             |  6 +++---
 GUI/Model/Item/MinimizerItem.cpp               |  2 +-
 GUI/Model/Item/MinimizerItem.h                 |  2 +-
 GUI/Model/Item/MultiLayerItem.cpp              |  2 +-
 GUI/Model/Item/ParameterTreeItems.h            |  2 +-
 GUI/Model/Item/ParticleCompositionItem.cpp     |  4 ++--
 GUI/Model/Item/ParticleItem.cpp                |  4 ++--
 GUI/Model/Item/ParticleLayoutItem.cpp          |  4 ++--
 GUI/Model/Item/ProjectionItems.h               |  2 +-
 GUI/Model/Item/PropertyItem.h                  |  2 +-
 GUI/Model/Item/RealDataItem.h                  |  2 +-
 GUI/Model/Item/RealLimitsItems.h               |  2 +-
 GUI/Model/Item/ResolutionFunctionItems.h       |  2 +-
 GUI/Model/Item/ResolutionItems.h               |  2 +-
 GUI/Model/Item/VectorItem.h                    |  2 +-
 .../FTDecayFunctionItemCatalogs.cpp            |  4 ++--
 .../FTDecayFunctionItemCatalogs.h              |  8 ++++----
 .../FTDistributionItemCatalogs.cpp             |  4 ++--
 .../FTDistributionItemCatalogs.h               |  8 ++++----
 .../FormFactorItemCatalog.cpp                  |  4 ++--
 .../{Item => MakeItem}/FormFactorItemCatalog.h |  8 ++++----
 .../InterferenceItemCatalog.cpp                |  4 ++--
 .../InterferenceItemCatalog.h                  |  8 ++++----
 GUI/Model/{Item => MakeItem}/ItemCatalog.cpp   |  4 ++--
 GUI/Model/{Item => MakeItem}/ItemCatalog.h     |  8 ++++----
 .../ItemWithParticlesCatalog.cpp               |  4 ++--
 .../ItemWithParticlesCatalog.h                 |  8 ++++----
 .../Lattice2DItemCatalog.cpp                   |  4 ++--
 .../{Item => MakeItem}/Lattice2DItemCatalog.h  |  8 ++++----
 .../MinimizerItemCatalog.cpp                   |  4 ++--
 .../{Item => MakeItem}/MinimizerItemCatalog.h  |  8 ++++----
 .../{Item => MakeItem}/RotationItemCatalog.cpp |  4 ++--
 .../{Item => MakeItem}/RotationItemCatalog.h   |  8 ++++----
 GUI/Model/Model/FitParameterModel.cpp          |  2 +-
 GUI/Model/Model/InstrumentModel.cpp            |  2 +-
 GUI/Model/Model/JobModel.cpp                   |  6 +++---
 GUI/Model/{Project => Model}/JobQueueData.cpp  |  4 ++--
 GUI/Model/{Project => Model}/JobQueueData.h    |  8 ++++----
 GUI/Model/Model/ParameterTuningModel.cpp       |  2 +-
 GUI/Model/Model/RealDataModel.cpp              |  2 +-
 GUI/Model/Model/SessionModel.cpp               |  4 ++--
 GUI/Model/{XML => Model}/SessionXML.cpp        |  4 ++--
 GUI/Model/{XML => Model}/SessionXML.h          |  8 ++++----
 .../{Project => OfItem}/ParameterTreeUtils.cpp | 18 +++++++++---------
 .../{Project => OfItem}/ParameterTreeUtils.h   |  8 ++++----
 GUI/Model/Plot/DataProperties.h                |  2 +-
 GUI/Model/Plot/DataPropertyContainer.h         |  2 +-
 GUI/Model/Types/DoubleDescriptor.cpp           |  2 +-
 GUI/Model/Types/UIntDescriptor.cpp             |  2 +-
 GUI/View/Common/SessionItemController.cpp      |  2 +-
 GUI/View/Fit/FitParameterDelegate.cpp          |  2 +-
 GUI/View/Mask/MaskViewFactory.cpp              |  2 +-
 .../PropertyEditor/PropertyEditorFactory.cpp   |  2 +-
 GUI/View/SampleDesigner/LayerEditorUtils.h     |  4 ++--
 .../SampleDesigner/ParticleCoreShellForm.cpp   |  2 +-
 GUI/View/SampleDesigner/ParticleForm.cpp       |  2 +-
 .../SampleDesigner/SampleEditorController.cpp  |  2 +-
 .../SampleDesigner/SampleEditorController.h    |  4 ++--
 .../GUI/TestSessionItemControllerHelper.cpp    |  2 +-
 Tests/Unit/GUI/TestSessionXML.cpp              |  2 +-
 Tests/Unit/GUI/Utils.h                         |  2 +-
 83 files changed, 154 insertions(+), 154 deletions(-)
 rename GUI/Model/{Item => BaseItem}/SessionItem.cpp (99%)
 rename GUI/Model/{Item => BaseItem}/SessionItem.h (98%)
 rename GUI/Model/{Item => MakeItem}/FTDecayFunctionItemCatalogs.cpp (96%)
 rename GUI/Model/{Item => MakeItem}/FTDecayFunctionItemCatalogs.h (88%)
 rename GUI/Model/{Item => MakeItem}/FTDistributionItemCatalogs.cpp (97%)
 rename GUI/Model/{Item => MakeItem}/FTDistributionItemCatalogs.h (89%)
 rename GUI/Model/{Item => MakeItem}/FormFactorItemCatalog.cpp (98%)
 rename GUI/Model/{Item => MakeItem}/FormFactorItemCatalog.h (90%)
 rename GUI/Model/{Item => MakeItem}/InterferenceItemCatalog.cpp (96%)
 rename GUI/Model/{Item => MakeItem}/InterferenceItemCatalog.h (86%)
 rename GUI/Model/{Item => MakeItem}/ItemCatalog.cpp (98%)
 rename GUI/Model/{Item => MakeItem}/ItemCatalog.h (83%)
 rename GUI/Model/{Item => MakeItem}/ItemWithParticlesCatalog.cpp (95%)
 rename GUI/Model/{Item => MakeItem}/ItemWithParticlesCatalog.h (85%)
 rename GUI/Model/{Item => MakeItem}/Lattice2DItemCatalog.cpp (94%)
 rename GUI/Model/{Item => MakeItem}/Lattice2DItemCatalog.h (84%)
 rename GUI/Model/{Item => MakeItem}/MinimizerItemCatalog.cpp (93%)
 rename GUI/Model/{Item => MakeItem}/MinimizerItemCatalog.h (81%)
 rename GUI/Model/{Item => MakeItem}/RotationItemCatalog.cpp (95%)
 rename GUI/Model/{Item => MakeItem}/RotationItemCatalog.h (86%)
 rename GUI/Model/{Project => Model}/JobQueueData.cpp (98%)
 rename GUI/Model/{Project => Model}/JobQueueData.h (90%)
 rename GUI/Model/{XML => Model}/SessionXML.cpp (99%)
 rename GUI/Model/{XML => Model}/SessionXML.h (90%)
 rename GUI/Model/{Project => OfItem}/ParameterTreeUtils.cpp (96%)
 rename GUI/Model/{Project => OfItem}/ParameterTreeUtils.h (90%)

diff --git a/GUI/Model/Item/SessionItem.cpp b/GUI/Model/BaseItem/SessionItem.cpp
similarity index 99%
rename from GUI/Model/Item/SessionItem.cpp
rename to GUI/Model/BaseItem/SessionItem.cpp
index e4dc6c6906a..5718ecd9ee4 100644
--- a/GUI/Model/Item/SessionItem.cpp
+++ b/GUI/Model/BaseItem/SessionItem.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/SessionItem.cpp
+//! @file      GUI/Model/BaseItem/SessionItem.cpp
 //! @brief     Implements class SessionItem
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/GUI/Model/Item/SessionItem.h b/GUI/Model/BaseItem/SessionItem.h
similarity index 98%
rename from GUI/Model/Item/SessionItem.h
rename to GUI/Model/BaseItem/SessionItem.h
index e27f299dbc1..97dcd4f18b0 100644
--- a/GUI/Model/Item/SessionItem.h
+++ b/GUI/Model/BaseItem/SessionItem.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/SessionItem.h
+//! @file      GUI/Model/BaseItem/SessionItem.h
 //! @brief     Defines class SessionItem
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MODEL_ITEM_SESSIONITEM_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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"
@@ -404,4 +404,4 @@ template <typename T> bool SessionItem::hasModelType() const
     return modelType() == T::M_TYPE;
 }
 
-#endif // BORNAGAIN_GUI_MODEL_ITEM_SESSIONITEM_H
+#endif // BORNAGAIN_GUI_MODEL_BASEITEM_SESSIONITEM_H
diff --git a/GUI/Model/Item/AxesItems.h b/GUI/Model/Item/AxesItems.h
index 11394628fd2..93f4737ad58 100644
--- a/GUI/Model/Item/AxesItems.h
+++ b/GUI/Model/Item/AxesItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_AXESITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_AXESITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Types/DoubleDescriptor.h" // no forward declaration < used in many children
 #include <memory>
 
diff --git a/GUI/Model/Item/BackgroundItems.h b/GUI/Model/Item/BackgroundItems.h
index 06374d833c6..59a6e382561 100644
--- a/GUI/Model/Item/BackgroundItems.h
+++ b/GUI/Model/Item/BackgroundItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_BACKGROUNDITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_BACKGROUNDITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class IBackground;
 
diff --git a/GUI/Model/Item/BeamItems.h b/GUI/Model/Item/BeamItems.h
index 2e385fe5def..1e9182385df 100644
--- a/GUI/Model/Item/BeamItems.h
+++ b/GUI/Model/Item/BeamItems.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_BEAMITEMS_H
 
 #include "GUI/Model/Item/SpecularBeamInclinationItem.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <heinz/Vectors3D.h>
 
 class BasicAxisItem;
diff --git a/GUI/Model/Item/Data1DViewItem.h b/GUI/Model/Item/Data1DViewItem.h
index 00101eab499..0313060d435 100644
--- a/GUI/Model/Item/Data1DViewItem.h
+++ b/GUI/Model/Item/Data1DViewItem.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_DATA1DVIEWITEM_H
 
 #include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class AmplitudeAxisItem;
 class BasicAxisItem;
diff --git a/GUI/Model/Item/DataItem.h b/GUI/Model/Item/DataItem.h
index f8bdce866a8..341842f22e1 100644
--- a/GUI/Model/Item/DataItem.h
+++ b/GUI/Model/Item/DataItem.h
@@ -17,7 +17,7 @@
 
 #include "Device/Data/OutputData.h"
 #include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Support/IO/SaveLoadInterface.h"
 #include <QDateTime>
 #include <mutex>
diff --git a/GUI/Model/Item/DetectorItems.h b/GUI/Model/Item/DetectorItems.h
index 5a69388010c..d8611e430ac 100644
--- a/GUI/Model/Item/DetectorItems.h
+++ b/GUI/Model/Item/DetectorItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_DETECTORITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_DETECTORITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <heinz/Vectors3D.h>
 
 class MaskContainerItem;
diff --git a/GUI/Model/Item/FitParameterContainerItem.h b/GUI/Model/Item/FitParameterContainerItem.h
index 8673af3942b..339e5bf587b 100644
--- a/GUI/Model/Item/FitParameterContainerItem.h
+++ b/GUI/Model/Item/FitParameterContainerItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERCONTAINERITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERCONTAINERITEM_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 namespace mumufit {
 
diff --git a/GUI/Model/Item/FitParameterItem.h b/GUI/Model/Item/FitParameterItem.h
index 18bd707f2b1..37b50a85bde 100644
--- a/GUI/Model/Item/FitParameterItem.h
+++ b/GUI/Model/Item/FitParameterItem.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERITEM_H
 
 #include "Fit/Param/AttLimits.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class FitParameterLinkItem;
 
diff --git a/GUI/Model/Item/FitParameterLinkItem.h b/GUI/Model/Item/FitParameterLinkItem.h
index 510726c1d60..154ef0e71b5 100644
--- a/GUI/Model/Item/FitParameterLinkItem.h
+++ b/GUI/Model/Item/FitParameterLinkItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERLINKITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_FITPARAMETERLINKITEM_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 //! The FitParameterLinkItem class holds a link to ParameterItem in tuning tree.
 
diff --git a/GUI/Model/Item/FitSuiteItem.h b/GUI/Model/Item/FitSuiteItem.h
index e46df9c1df0..1c703e7169b 100644
--- a/GUI/Model/Item/FitSuiteItem.h
+++ b/GUI/Model/Item/FitSuiteItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_FITSUITEITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_FITSUITEITEM_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class FitParameterContainerItem;
 class MinimizerContainerItem;
diff --git a/GUI/Model/Item/FootprintItems.h b/GUI/Model/Item/FootprintItems.h
index 480f544a79d..5062493bfd8 100644
--- a/GUI/Model/Item/FootprintItems.h
+++ b/GUI/Model/Item/FootprintItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_FOOTPRINTITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_FOOTPRINTITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class IFootprintFactor;
 
diff --git a/GUI/Model/Item/GroupItem.h b/GUI/Model/Item/GroupItem.h
index eac101293cc..36088e29673 100644
--- a/GUI/Model/Item/GroupItem.h
+++ b/GUI/Model/Item/GroupItem.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_GROUPITEM_H
 
 #include "GUI/Model/Item/GroupItemController.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <memory>
 
 class GroupInfo;
diff --git a/GUI/Model/Item/GroupItemController.cpp b/GUI/Model/Item/GroupItemController.cpp
index 1c677ca2789..87b1e3d245b 100644
--- a/GUI/Model/Item/GroupItemController.cpp
+++ b/GUI/Model/Item/GroupItemController.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Model/Item/GroupItemController.h"
 
 #include "GUI/Model/Item/ItemFactory.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Util/ComboProperty.h"
 #include <utility>
 
diff --git a/GUI/Model/Item/InterferenceItems.cpp b/GUI/Model/Item/InterferenceItems.cpp
index 3a9389ca891..c0094b9a4d0 100644
--- a/GUI/Model/Item/InterferenceItems.cpp
+++ b/GUI/Model/Item/InterferenceItems.cpp
@@ -14,11 +14,11 @@
 
 #include "GUI/Model/Item/InterferenceItems.h"
 #include "Base/Const/Units.h"
-#include "GUI/Model/Item/FTDecayFunctionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h"
 #include "GUI/Model/Item/FTDecayFunctionItems.h"
-#include "GUI/Model/Item/FTDistributionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FTDistributionItemCatalogs.h"
 #include "GUI/Model/Item/FTDistributionItems.h"
-#include "GUI/Model/Item/Lattice2DItemCatalog.h"
+#include "GUI/Model/MakeItem/Lattice2DItemCatalog.h"
 #include "GUI/Model/Item/Lattice2DItems.h"
 #include "GUI/Model/Types/UIntDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
diff --git a/GUI/Model/Item/ItemFactory.cpp b/GUI/Model/Item/ItemFactory.cpp
index 6efbb348758..8cc40d13e7c 100644
--- a/GUI/Model/Item/ItemFactory.cpp
+++ b/GUI/Model/Item/ItemFactory.cpp
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Item/ItemFactory.h"
-#include "GUI/Model/Item/ItemCatalog.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/MakeItem/ItemCatalog.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 SessionItem* GUI::Model::ItemFactory::CreateItem(const QString& model_name, SessionItem* parent)
 {
diff --git a/GUI/Model/Item/ItemWithParticles.cpp b/GUI/Model/Item/ItemWithParticles.cpp
index 917c3656229..3f8bb572786 100644
--- a/GUI/Model/Item/ItemWithParticles.cpp
+++ b/GUI/Model/Item/ItemWithParticles.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/Model/Item/ItemWithParticles.h"
 #include "Base/Vector/RotMatrix.h"
-#include "GUI/Model/Item/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/Item/JobItem.cpp b/GUI/Model/Item/JobItem.cpp
index 67b00408b19..e68895cf6d6 100644
--- a/GUI/Model/Item/JobItem.cpp
+++ b/GUI/Model/Item/JobItem.cpp
@@ -22,7 +22,7 @@
 #include "GUI/Model/Item/JobItemUtils.h"
 #include "GUI/Model/Item/Data1DViewItem.h"
 #include "GUI/Model/Item/ItemWithMaterial.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Support/Data/XML.h"
 #include "GUI/Support/IO/ItemFileNameUtils.h"
 #include "GUI/Util/DeserializationException.h"
diff --git a/GUI/Model/Item/JobItem.h b/GUI/Model/Item/JobItem.h
index dcb210c50d3..66d1af3797e 100644
--- a/GUI/Model/Item/JobItem.h
+++ b/GUI/Model/Item/JobItem.h
@@ -18,7 +18,7 @@
 #include "GUI/Model/Item/ParameterTreeItems.h"
 #include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Item/MultiLayerItem.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.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"
diff --git a/GUI/Model/Item/LayerRoughnessItems.cpp b/GUI/Model/Item/LayerRoughnessItems.cpp
index fcdfd299af9..ea99394fa91 100644
--- a/GUI/Model/Item/LayerRoughnessItems.cpp
+++ b/GUI/Model/Item/LayerRoughnessItems.cpp
@@ -16,7 +16,7 @@
 
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/Model/XML/Serializer.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 
 using namespace GUI::Session::XML;
 
diff --git a/GUI/Model/Item/MaskItems.h b/GUI/Model/Item/MaskItems.h
index 845200522e6..7f70ddbb11d 100644
--- a/GUI/Model/Item/MaskItems.h
+++ b/GUI/Model/Item/MaskItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_MASKITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_MASKITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 
 class IShape2D;
diff --git a/GUI/Model/Item/MesoCrystalItem.cpp b/GUI/Model/Item/MesoCrystalItem.cpp
index 1787253b2dd..aa978db5a40 100644
--- a/GUI/Model/Item/MesoCrystalItem.cpp
+++ b/GUI/Model/Item/MesoCrystalItem.cpp
@@ -13,13 +13,13 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Item/MesoCrystalItem.h"
-#include "GUI/Model/Item/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "GUI/Model/Item/FormFactorItems.h"
-#include "GUI/Model/Item/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
 #include "GUI/Model/Item/ParticleCompositionItem.h"
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
-#include "GUI/Model/Item/RotationItemCatalog.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/Item/MinimizerItem.cpp b/GUI/Model/Item/MinimizerItem.cpp
index 4b38d655595..99a48f21c7f 100644
--- a/GUI/Model/Item/MinimizerItem.cpp
+++ b/GUI/Model/Item/MinimizerItem.cpp
@@ -20,7 +20,7 @@
 #include "Fit/Adapter/GeneticMinimizer.h"
 #include "Fit/Adapter/Minuit2Minimizer.h"
 #include "Fit/Adapter/SimAnMinimizer.h"
-#include "GUI/Model/Item/MinimizerItemCatalog.h"
+#include "GUI/Model/MakeItem/MinimizerItemCatalog.h"
 
 namespace {
 
diff --git a/GUI/Model/Item/MinimizerItem.h b/GUI/Model/Item/MinimizerItem.h
index 4c740447c79..e5ca8958582 100644
--- a/GUI/Model/Item/MinimizerItem.h
+++ b/GUI/Model/Item/MinimizerItem.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_ITEM_MINIMIZERITEM_H
 
 #include "GUI/Model/Group/SelectionDescriptor.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include "GUI/Model/Types/UIntDescriptor.h"
 #include <variant>
diff --git a/GUI/Model/Item/MultiLayerItem.cpp b/GUI/Model/Item/MultiLayerItem.cpp
index 49e82654a05..7299837459b 100644
--- a/GUI/Model/Item/MultiLayerItem.cpp
+++ b/GUI/Model/Item/MultiLayerItem.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Model/Item/MultiLayerItem.h"
 #include "GUI/Model/Item/LayerItem.h"
 #include "GUI/Model/XML/Serializer.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include <QXmlStreamWriter>
 
 MultiLayerItem::MultiLayerItem()
diff --git a/GUI/Model/Item/ParameterTreeItems.h b/GUI/Model/Item/ParameterTreeItems.h
index 164f6057632..eef6db6fd66 100644
--- a/GUI/Model/Item/ParameterTreeItems.h
+++ b/GUI/Model/Item/ParameterTreeItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_PARAMETERTREEITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_PARAMETERTREEITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Types/DoubleDescriptor.h"
 #include <QObject>
 
diff --git a/GUI/Model/Item/ParticleCompositionItem.cpp b/GUI/Model/Item/ParticleCompositionItem.cpp
index ddfeec5dcb3..461c5abd5f3 100644
--- a/GUI/Model/Item/ParticleCompositionItem.cpp
+++ b/GUI/Model/Item/ParticleCompositionItem.cpp
@@ -13,11 +13,11 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Item/ParticleCompositionItem.h"
-#include "GUI/Model/Item/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
 #include "GUI/Model/Item/MesoCrystalItem.h"
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
-#include "GUI/Model/Item/RotationItemCatalog.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/Item/ParticleItem.cpp b/GUI/Model/Item/ParticleItem.cpp
index e2ae46bcdd1..7a9d4dce5a2 100644
--- a/GUI/Model/Item/ParticleItem.cpp
+++ b/GUI/Model/Item/ParticleItem.cpp
@@ -14,10 +14,10 @@
 
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/Item/MaterialItem.h"
-#include "GUI/Model/Item/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "GUI/Model/Item/FormFactorItems.h"
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
-#include "GUI/Model/Item/RotationItemCatalog.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/Item/ParticleLayoutItem.cpp b/GUI/Model/Item/ParticleLayoutItem.cpp
index 98326866077..170a3e4d6be 100644
--- a/GUI/Model/Item/ParticleLayoutItem.cpp
+++ b/GUI/Model/Item/ParticleLayoutItem.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Item/ParticleLayoutItem.h"
-#include "GUI/Model/Item/InterferenceItemCatalog.h"
+#include "GUI/Model/MakeItem/InterferenceItemCatalog.h"
 #include "GUI/Model/Item/InterferenceItems.h"
-#include "GUI/Model/Item/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
 #include "GUI/Model/Item/Lattice2DItems.h"
 #include "GUI/Model/Item/MesoCrystalItem.h"
 #include "GUI/Model/Item/ParticleCompositionItem.h"
diff --git a/GUI/Model/Item/ProjectionItems.h b/GUI/Model/Item/ProjectionItems.h
index 951a44261dc..e53008e385f 100644
--- a/GUI/Model/Item/ProjectionItems.h
+++ b/GUI/Model/Item/ProjectionItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_PROJECTIONITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_PROJECTIONITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 //! A container to hold ProjectionItems, intended to store projections of color map on X, Y axes.
 
diff --git a/GUI/Model/Item/PropertyItem.h b/GUI/Model/Item/PropertyItem.h
index 813774a07f1..138d1cc9e32 100644
--- a/GUI/Model/Item/PropertyItem.h
+++ b/GUI/Model/Item/PropertyItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_PROPERTYITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_PROPERTYITEM_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class BA_CORE_API_ PropertyItem : public SessionItem {
 public:
diff --git a/GUI/Model/Item/RealDataItem.h b/GUI/Model/Item/RealDataItem.h
index bf5f4e1190c..0b5c643a6c0 100644
--- a/GUI/Model/Item/RealDataItem.h
+++ b/GUI/Model/Item/RealDataItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_REALDATAITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_REALDATAITEM_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Support/IO/AbstractDataLoader.h"
 #include <QPointer>
 
diff --git a/GUI/Model/Item/RealLimitsItems.h b/GUI/Model/Item/RealLimitsItems.h
index 2d5ba6cf8e3..f31c2c8afd8 100644
--- a/GUI/Model/Item/RealLimitsItems.h
+++ b/GUI/Model/Item/RealLimitsItems.h
@@ -17,7 +17,7 @@
 
 #include <optional>
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class RealLimitsItem : public SessionItem {
 private:
diff --git a/GUI/Model/Item/ResolutionFunctionItems.h b/GUI/Model/Item/ResolutionFunctionItems.h
index 76a6c1f26c9..4d95a40dc3c 100644
--- a/GUI/Model/Item/ResolutionFunctionItems.h
+++ b/GUI/Model/Item/ResolutionFunctionItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONFUNCTIONITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONFUNCTIONITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <memory>
 
 class IResolutionFunction2D;
diff --git a/GUI/Model/Item/ResolutionItems.h b/GUI/Model/Item/ResolutionItems.h
index ac4e7beeaed..8ef20b9a652 100644
--- a/GUI/Model/Item/ResolutionItems.h
+++ b/GUI/Model/Item/ResolutionItems.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONITEMS_H
 #define BORNAGAIN_GUI_MODEL_ITEM_RESOLUTIONITEMS_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class IDistribution1D;
 class IRangedDistribution;
diff --git a/GUI/Model/Item/VectorItem.h b/GUI/Model/Item/VectorItem.h
index 9ba365554ce..bbd99e0ddb0 100644
--- a/GUI/Model/Item/VectorItem.h
+++ b/GUI/Model/Item/VectorItem.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_ITEM_VECTORITEM_H
 #define BORNAGAIN_GUI_MODEL_ITEM_VECTORITEM_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <heinz/Vectors3D.h>
 
 class BA_CORE_API_ VectorItem : public SessionItem {
diff --git a/GUI/Model/Item/FTDecayFunctionItemCatalogs.cpp b/GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.cpp
similarity index 96%
rename from GUI/Model/Item/FTDecayFunctionItemCatalogs.cpp
rename to GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.cpp
index ae0e8da74fe..17f64df1d2e 100644
--- a/GUI/Model/Item/FTDecayFunctionItemCatalogs.cpp
+++ b/GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/FTDecayFunctionItemCatalogs.cpp
+//! @file      GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.cpp
 //! @brief     Implements FTDecayFunctionItemCatalog classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/FTDecayFunctionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Item/FTDecayFunctionItems.h"
 
diff --git a/GUI/Model/Item/FTDecayFunctionItemCatalogs.h b/GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h
similarity index 88%
rename from GUI/Model/Item/FTDecayFunctionItemCatalogs.h
rename to GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h
index 6449380495d..4b93d849426 100644
--- a/GUI/Model/Item/FTDecayFunctionItemCatalogs.h
+++ b/GUI/Model/MakeItem/FTDecayFunctionItemCatalogs.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_FTDECAYFUNCTIONITEMCATALOGS_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_FTDECAYFUNCTIONITEMCATALOGS_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_FTDECAYFUNCTIONITEMCATALOGS_H
diff --git a/GUI/Model/Item/FTDistributionItemCatalogs.cpp b/GUI/Model/MakeItem/FTDistributionItemCatalogs.cpp
similarity index 97%
rename from GUI/Model/Item/FTDistributionItemCatalogs.cpp
rename to GUI/Model/MakeItem/FTDistributionItemCatalogs.cpp
index 7465289592f..787365aff5d 100644
--- a/GUI/Model/Item/FTDistributionItemCatalogs.cpp
+++ b/GUI/Model/MakeItem/FTDistributionItemCatalogs.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/FTDistributionItemCatalogs.cpp
+//! @file      GUI/Model/MakeItem/FTDistributionItemCatalogs.cpp
 //! @brief     Implements FTDistributionItemCatalog classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/FTDistributionItemCatalogs.h"
+#include "GUI/Model/MakeItem/FTDistributionItemCatalogs.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Item/FTDistributionItems.h"
 
diff --git a/GUI/Model/Item/FTDistributionItemCatalogs.h b/GUI/Model/MakeItem/FTDistributionItemCatalogs.h
similarity index 89%
rename from GUI/Model/Item/FTDistributionItemCatalogs.h
rename to GUI/Model/MakeItem/FTDistributionItemCatalogs.h
index bd5a08d129b..2bb68beeb02 100644
--- a/GUI/Model/Item/FTDistributionItemCatalogs.h
+++ b/GUI/Model/MakeItem/FTDistributionItemCatalogs.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_FTDISTRIBUTIONITEMCATALOGS_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_FTDISTRIBUTIONITEMCATALOGS_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_FTDISTRIBUTIONITEMCATALOGS_H
diff --git a/GUI/Model/Item/FormFactorItemCatalog.cpp b/GUI/Model/MakeItem/FormFactorItemCatalog.cpp
similarity index 98%
rename from GUI/Model/Item/FormFactorItemCatalog.cpp
rename to GUI/Model/MakeItem/FormFactorItemCatalog.cpp
index 8a9d096c40a..5d4ad6c8741 100644
--- a/GUI/Model/Item/FormFactorItemCatalog.cpp
+++ b/GUI/Model/MakeItem/FormFactorItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/FormFactorItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/FormFactorItemCatalog.cpp
 //! @brief     Implements class FormFactorItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Item/FormFactorItems.h"
 
diff --git a/GUI/Model/Item/FormFactorItemCatalog.h b/GUI/Model/MakeItem/FormFactorItemCatalog.h
similarity index 90%
rename from GUI/Model/Item/FormFactorItemCatalog.h
rename to GUI/Model/MakeItem/FormFactorItemCatalog.h
index 1954df8234d..11da388eea2 100644
--- a/GUI/Model/Item/FormFactorItemCatalog.h
+++ b/GUI/Model/MakeItem/FormFactorItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_FORMFACTORITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_FORMFACTORITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_FORMFACTORITEMCATALOG_H
diff --git a/GUI/Model/Item/InterferenceItemCatalog.cpp b/GUI/Model/MakeItem/InterferenceItemCatalog.cpp
similarity index 96%
rename from GUI/Model/Item/InterferenceItemCatalog.cpp
rename to GUI/Model/MakeItem/InterferenceItemCatalog.cpp
index e00dac2cd34..dc610d886f1 100644
--- a/GUI/Model/Item/InterferenceItemCatalog.cpp
+++ b/GUI/Model/MakeItem/InterferenceItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/InterferenceItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/InterferenceItemCatalog.cpp
 //! @brief     Implements class InterferenceItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/InterferenceItemCatalog.h"
+#include "GUI/Model/MakeItem/InterferenceItemCatalog.h"
 #include "GUI/Model/Item/InterferenceItems.h"
 
 InterferenceItem* InterferenceItemCatalog::create(Type type)
diff --git a/GUI/Model/Item/InterferenceItemCatalog.h b/GUI/Model/MakeItem/InterferenceItemCatalog.h
similarity index 86%
rename from GUI/Model/Item/InterferenceItemCatalog.h
rename to GUI/Model/MakeItem/InterferenceItemCatalog.h
index 2ac1caae9b8..b0d944c50a9 100644
--- a/GUI/Model/Item/InterferenceItemCatalog.h
+++ b/GUI/Model/MakeItem/InterferenceItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_INTERFERENCEITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_INTERFERENCEITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_INTERFERENCEITEMCATALOG_H
diff --git a/GUI/Model/Item/ItemCatalog.cpp b/GUI/Model/MakeItem/ItemCatalog.cpp
similarity index 98%
rename from GUI/Model/Item/ItemCatalog.cpp
rename to GUI/Model/MakeItem/ItemCatalog.cpp
index 7511c462e57..f24f34b5e91 100644
--- a/GUI/Model/Item/ItemCatalog.cpp
+++ b/GUI/Model/MakeItem/ItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/ItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/ItemCatalog.cpp
 //! @brief     Implements class ItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/ItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemCatalog.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Item/PointwiseAxisItem.h"
 #include "GUI/Model/Item/IntensityDataItem.h"
diff --git a/GUI/Model/Item/ItemCatalog.h b/GUI/Model/MakeItem/ItemCatalog.h
similarity index 83%
rename from GUI/Model/Item/ItemCatalog.h
rename to GUI/Model/MakeItem/ItemCatalog.h
index 9ba3858d79e..0b18f62f0b7 100644
--- a/GUI/Model/Item/ItemCatalog.h
+++ b/GUI/Model/MakeItem/ItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_ITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_ITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMCATALOG_H
diff --git a/GUI/Model/Item/ItemWithParticlesCatalog.cpp b/GUI/Model/MakeItem/ItemWithParticlesCatalog.cpp
similarity index 95%
rename from GUI/Model/Item/ItemWithParticlesCatalog.cpp
rename to GUI/Model/MakeItem/ItemWithParticlesCatalog.cpp
index 840843ea86c..3c901f656f5 100644
--- a/GUI/Model/Item/ItemWithParticlesCatalog.cpp
+++ b/GUI/Model/MakeItem/ItemWithParticlesCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/ItemWithParticlesCatalog.cpp
+//! @file      GUI/Model/MakeItem/ItemWithParticlesCatalog.cpp
 //! @brief     Implements class ItemWithParticlesCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/ItemWithParticlesCatalog.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"
diff --git a/GUI/Model/Item/ItemWithParticlesCatalog.h b/GUI/Model/MakeItem/ItemWithParticlesCatalog.h
similarity index 85%
rename from GUI/Model/Item/ItemWithParticlesCatalog.h
rename to GUI/Model/MakeItem/ItemWithParticlesCatalog.h
index 20daae89984..60d14f1ddd5 100644
--- a/GUI/Model/Item/ItemWithParticlesCatalog.h
+++ b/GUI/Model/MakeItem/ItemWithParticlesCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_ITEMWITHPARTICLESCATALOG_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_ITEMWITHPARTICLESCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_ITEMWITHPARTICLESCATALOG_H
diff --git a/GUI/Model/Item/Lattice2DItemCatalog.cpp b/GUI/Model/MakeItem/Lattice2DItemCatalog.cpp
similarity index 94%
rename from GUI/Model/Item/Lattice2DItemCatalog.cpp
rename to GUI/Model/MakeItem/Lattice2DItemCatalog.cpp
index ae0279ddee5..ff04ec08001 100644
--- a/GUI/Model/Item/Lattice2DItemCatalog.cpp
+++ b/GUI/Model/MakeItem/Lattice2DItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/Lattice2DItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/Lattice2DItemCatalog.cpp
 //! @brief     Implements class Lattice2DItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/Lattice2DItemCatalog.h"
+#include "GUI/Model/MakeItem/Lattice2DItemCatalog.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Item/Lattice2DItems.h"
 
diff --git a/GUI/Model/Item/Lattice2DItemCatalog.h b/GUI/Model/MakeItem/Lattice2DItemCatalog.h
similarity index 84%
rename from GUI/Model/Item/Lattice2DItemCatalog.h
rename to GUI/Model/MakeItem/Lattice2DItemCatalog.h
index f0e8abb5897..46e7c8f9c3d 100644
--- a/GUI/Model/Item/Lattice2DItemCatalog.h
+++ b/GUI/Model/MakeItem/Lattice2DItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_LATTICE2DITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_LATTICE2DITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_LATTICE2DITEMCATALOG_H
diff --git a/GUI/Model/Item/MinimizerItemCatalog.cpp b/GUI/Model/MakeItem/MinimizerItemCatalog.cpp
similarity index 93%
rename from GUI/Model/Item/MinimizerItemCatalog.cpp
rename to GUI/Model/MakeItem/MinimizerItemCatalog.cpp
index 28392c45098..2eccb93f693 100644
--- a/GUI/Model/Item/MinimizerItemCatalog.cpp
+++ b/GUI/Model/MakeItem/MinimizerItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/MinimizerItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/MinimizerItemCatalog.cpp
 //! @brief     Implements MinimizerItemCatalog class
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/MinimizerItemCatalog.h"
+#include "GUI/Model/MakeItem/MinimizerItemCatalog.h"
 #include "Fit/Kernel/MinimizerFactory.h"
 #include "GUI/Util/String.h"
 
diff --git a/GUI/Model/Item/MinimizerItemCatalog.h b/GUI/Model/MakeItem/MinimizerItemCatalog.h
similarity index 81%
rename from GUI/Model/Item/MinimizerItemCatalog.h
rename to GUI/Model/MakeItem/MinimizerItemCatalog.h
index 3636d2d1e5c..19625244ae6 100644
--- a/GUI/Model/Item/MinimizerItemCatalog.h
+++ b/GUI/Model/MakeItem/MinimizerItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_MINIMIZERITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_MINIMIZERITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_MINIMIZERITEMCATALOG_H
diff --git a/GUI/Model/Item/RotationItemCatalog.cpp b/GUI/Model/MakeItem/RotationItemCatalog.cpp
similarity index 95%
rename from GUI/Model/Item/RotationItemCatalog.cpp
rename to GUI/Model/MakeItem/RotationItemCatalog.cpp
index cee8d0aeb51..ba2f24a173a 100644
--- a/GUI/Model/Item/RotationItemCatalog.cpp
+++ b/GUI/Model/MakeItem/RotationItemCatalog.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/RotationItemCatalog.cpp
+//! @file      GUI/Model/MakeItem/RotationItemCatalog.cpp
 //! @brief     Implements class RotationItemCatalog
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Item/RotationItemCatalog.h"
+#include "GUI/Model/MakeItem/RotationItemCatalog.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Item/RotationItems.h"
 
diff --git a/GUI/Model/Item/RotationItemCatalog.h b/GUI/Model/MakeItem/RotationItemCatalog.h
similarity index 86%
rename from GUI/Model/Item/RotationItemCatalog.h
rename to GUI/Model/MakeItem/RotationItemCatalog.h
index a1ace45d27a..d151ec8e721 100644
--- a/GUI/Model/Item/RotationItemCatalog.h
+++ b/GUI/Model/MakeItem/RotationItemCatalog.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Item/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_ITEM_ROTATIONITEMCATALOG_H
-#define BORNAGAIN_GUI_MODEL_ITEM_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_ITEM_ROTATIONITEMCATALOG_H
+#endif // BORNAGAIN_GUI_MODEL_MAKEITEM_ROTATIONITEMCATALOG_H
diff --git a/GUI/Model/Model/FitParameterModel.cpp b/GUI/Model/Model/FitParameterModel.cpp
index 0dfa6c7b4d2..cc7b111dadb 100644
--- a/GUI/Model/Model/FitParameterModel.cpp
+++ b/GUI/Model/Model/FitParameterModel.cpp
@@ -19,7 +19,7 @@
 #include "GUI/Model/Item/FitParameterLinkItem.h"
 #include "GUI/Model/Model/JobModel.h"
 #include "GUI/Model/Model/ModelPath.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Util/Error.h"
 #include <QColor>
 #include <QMimeData>
diff --git a/GUI/Model/Model/InstrumentModel.cpp b/GUI/Model/Model/InstrumentModel.cpp
index 742eca146bd..e70a394e6fe 100644
--- a/GUI/Model/Model/InstrumentModel.cpp
+++ b/GUI/Model/Model/InstrumentModel.cpp
@@ -16,7 +16,7 @@
 #include "GUI/Model/Item/PointwiseAxisItem.h"
 #include "GUI/Model/Item/GroupItem.h"
 #include "GUI/Model/Item/InstrumentItems.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Util/String.h"
 
 InstrumentModel::InstrumentModel(QObject* parent)
diff --git a/GUI/Model/Model/JobModel.cpp b/GUI/Model/Model/JobModel.cpp
index fb39f801c9a..ed34e7e7f39 100644
--- a/GUI/Model/Model/JobModel.cpp
+++ b/GUI/Model/Model/JobModel.cpp
@@ -19,11 +19,11 @@
 #include "GUI/Model/Item/JobItem.h"
 #include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/Model/Item/JobFunctions.h"
-#include "GUI/Model/Project/JobQueueData.h"
-#include "GUI/Model/Project/ParameterTreeUtils.h"
+#include "GUI/Model/Model/JobQueueData.h"
+#include "GUI/Model/OfItem/ParameterTreeUtils.h"
 #include "GUI/Model/Item/ItemWithMaterial.h"
 #include "GUI/Model/Item/MultiLayerItem.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 
 JobModel::JobModel(QObject* parent)
     : SessionModel(GUI::Session::XML::JobModelTag, parent)
diff --git a/GUI/Model/Project/JobQueueData.cpp b/GUI/Model/Model/JobQueueData.cpp
similarity index 98%
rename from GUI/Model/Project/JobQueueData.cpp
rename to GUI/Model/Model/JobQueueData.cpp
index 32bb2aebfd1..dcbf51fa95e 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,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Project/JobQueueData.h"
+#include "GUI/Model/Model/JobQueueData.h"
 #include "Core/Simulation/ISimulation.h"
 #include "GUI/Model/Item/JobItem.h"
 #include "GUI/Model/Model/JobModel.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 0c47f744610..c7db48e4cb1 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/Model/ParameterTuningModel.cpp b/GUI/Model/Model/ParameterTuningModel.cpp
index 490b5bf727f..ccb332b011b 100644
--- a/GUI/Model/Model/ParameterTuningModel.cpp
+++ b/GUI/Model/Model/ParameterTuningModel.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Model/Model/ParameterTuningModel.h"
 #include "GUI/Model/Fit/FitParameterHelper.h"
 #include "GUI/Model/Item/ParameterTreeItems.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include <QMimeData>
 
 ParameterTuningModel::ParameterTuningModel(QObject* rootObject, QObject* parent)
diff --git a/GUI/Model/Model/RealDataModel.cpp b/GUI/Model/Model/RealDataModel.cpp
index 1e87c930b20..504f2dd3045 100644
--- a/GUI/Model/Model/RealDataModel.cpp
+++ b/GUI/Model/Model/RealDataModel.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Model/Model/RealDataModel.h"
 #include "GUI/Model/Item/RealDataItem.h"
 #include "GUI/Model/Item/DataItem.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 
 RealDataModel::RealDataModel(QObject* parent)
     : SessionModel(GUI::Session::XML::RealDataModelTag, parent)
diff --git a/GUI/Model/Model/SessionModel.cpp b/GUI/Model/Model/SessionModel.cpp
index 0dfe54b2602..fdf9266fbf0 100644
--- a/GUI/Model/Model/SessionModel.cpp
+++ b/GUI/Model/Model/SessionModel.cpp
@@ -15,8 +15,8 @@
 #include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Model/Item/ItemFactory.h"
 #include "GUI/Model/Item/MaterialItem.h"
-#include "GUI/Model/Item/SessionItem.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/BaseItem/SessionItem.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/XML/SessionXML.cpp b/GUI/Model/Model/SessionXML.cpp
similarity index 99%
rename from GUI/Model/XML/SessionXML.cpp
rename to GUI/Model/Model/SessionXML.cpp
index 4889e09dc36..65b10dd6877 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,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Model/Item/GroupItem.h"
 #include "GUI/Model/Item/MaterialItem.h"
 #include "GUI/Model/Model/SessionModel.h"
diff --git a/GUI/Model/XML/SessionXML.h b/GUI/Model/Model/SessionXML.h
similarity index 90%
rename from GUI/Model/XML/SessionXML.h
rename to GUI/Model/Model/SessionXML.h
index 2b744615091..aafc6cd0ff3 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,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#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"
@@ -49,4 +49,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 96%
rename from GUI/Model/Project/ParameterTreeUtils.cpp
rename to GUI/Model/OfItem/ParameterTreeUtils.cpp
index c5ec8062c26..55f8238ad16 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,18 +12,18 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Project/ParameterTreeUtils.h"
+#include "GUI/Model/OfItem/ParameterTreeUtils.h"
 #include "GUI/Model/Item/JobItem.h"
 #include "GUI/Model/Item/ParameterTreeItems.h"
 #include "GUI/Model/Item/InstrumentItems.h"
 #include "GUI/Model/Item/MaterialItem.h"
-#include "GUI/Model/Item/FTDecayFunctionItemCatalogs.h"
-#include "GUI/Model/Item/FTDistributionItemCatalogs.h"
-#include "GUI/Model/Item/FormFactorItemCatalog.h"
-#include "GUI/Model/Item/InterferenceItemCatalog.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/Item/InterferenceItems.h"
-#include "GUI/Model/Item/ItemWithParticlesCatalog.h"
-#include "GUI/Model/Item/Lattice2DItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/Lattice2DItemCatalog.h"
 #include "GUI/Model/Item/LayerItem.h"
 #include "GUI/Model/Item/MesoCrystalItem.h"
 #include "GUI/Model/Item/MultiLayerItem.h"
@@ -31,7 +31,7 @@
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/Item/ParticleLayoutItem.h"
-#include "GUI/Model/Item/RotationItemCatalog.h"
+#include "GUI/Model/MakeItem/RotationItemCatalog.h"
 #include "GUI/Model/Item/PropertyItem.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 36084e07fe0..b9377b9de8b 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/Plot/DataProperties.h b/GUI/Model/Plot/DataProperties.h
index 2e5367b427f..bf2a7a918d5 100644
--- a/GUI/Model/Plot/DataProperties.h
+++ b/GUI/Model/Plot/DataProperties.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTIES_H
 #define BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTIES_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class DataItem;
 
diff --git a/GUI/Model/Plot/DataPropertyContainer.h b/GUI/Model/Plot/DataPropertyContainer.h
index 080cb54055b..633e79d9c2e 100644
--- a/GUI/Model/Plot/DataPropertyContainer.h
+++ b/GUI/Model/Plot/DataPropertyContainer.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTYCONTAINER_H
 #define BORNAGAIN_GUI_MODEL_PLOT_DATAPROPERTYCONTAINER_H
 
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 class DataItem;
 class DataProperties;
diff --git a/GUI/Model/Types/DoubleDescriptor.cpp b/GUI/Model/Types/DoubleDescriptor.cpp
index f86331b6f78..4f74c19b9db 100644
--- a/GUI/Model/Types/DoubleDescriptor.cpp
+++ b/GUI/Model/Types/DoubleDescriptor.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Util/Path.h"
 #include <utility>
diff --git a/GUI/Model/Types/UIntDescriptor.cpp b/GUI/Model/Types/UIntDescriptor.cpp
index 00a844b32cf..92f0ef583f0 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/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include <utility>
 
 UIntDescriptor::UIntDescriptor(const QString& label, SessionItem* item,
diff --git a/GUI/View/Common/SessionItemController.cpp b/GUI/View/Common/SessionItemController.cpp
index 6fb08f6d8e6..c5025ea4928 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/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 
 SessionItemController::SessionItemController(QObject* prt)
     : QObject(prt)
diff --git a/GUI/View/Fit/FitParameterDelegate.cpp b/GUI/View/Fit/FitParameterDelegate.cpp
index a0d9030f3ff..9a8adf7c05d 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/Item/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/Mask/MaskViewFactory.cpp b/GUI/View/Mask/MaskViewFactory.cpp
index 0af2bb56043..17e455eb549 100644
--- a/GUI/View/Mask/MaskViewFactory.cpp
+++ b/GUI/View/Mask/MaskViewFactory.cpp
@@ -15,7 +15,7 @@
 #include "GUI/View/Mask/MaskViewFactory.h"
 #include "GUI/Model/Item/MaskItems.h"
 #include "GUI/Model/Item/ProjectionItems.h"
-#include "GUI/Model/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/Util/Error.h"
 #include "GUI/View/Mask/EllipseView.h"
 #include "GUI/View/Mask/LineViews.h"
diff --git a/GUI/View/PropertyEditor/PropertyEditorFactory.cpp b/GUI/View/PropertyEditor/PropertyEditorFactory.cpp
index e80d31a816b..67a54dd13c1 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/Item/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/SampleDesigner/LayerEditorUtils.h b/GUI/View/SampleDesigner/LayerEditorUtils.h
index 849dc11cdfe..fd24a86586e 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/Item/FormFactorItemCatalog.h"
-#include "GUI/Model/Item/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/ParticleCoreShellForm.cpp b/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
index 53d3755a82d..57fbcf334dc 100644
--- a/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleCoreShellForm.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/ParticleCoreShellForm.h"
-#include "GUI/Model/Item/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "GUI/Model/Item/FormFactorItems.h"
 #include "GUI/Model/Item/ParticleCoreShellItem.h"
 #include "GUI/Model/Item/ParticleItem.h"
diff --git a/GUI/View/SampleDesigner/ParticleForm.cpp b/GUI/View/SampleDesigner/ParticleForm.cpp
index ef892ab293f..3cb815a70bf 100644
--- a/GUI/View/SampleDesigner/ParticleForm.cpp
+++ b/GUI/View/SampleDesigner/ParticleForm.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/SampleDesigner/ParticleForm.h"
-#include "GUI/Model/Item/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "GUI/Model/Item/FormFactorItems.h"
 #include "GUI/Model/Item/ParticleItem.h"
 #include "GUI/Model/Types/VectorDescriptor.h"
diff --git a/GUI/View/SampleDesigner/SampleEditorController.cpp b/GUI/View/SampleDesigner/SampleEditorController.cpp
index b90ebae7029..d98177aede6 100644
--- a/GUI/View/SampleDesigner/SampleEditorController.cpp
+++ b/GUI/View/SampleDesigner/SampleEditorController.cpp
@@ -15,7 +15,7 @@
 #include "GUI/View/SampleDesigner/SampleEditorController.h"
 #include "GUI/Model/Model/MaterialModel.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Item/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
 #include "GUI/Model/Item/InterferenceItems.h"
 #include "GUI/Model/Item/LayerItem.h"
 #include "GUI/Model/Item/MesoCrystalItem.h"
diff --git a/GUI/View/SampleDesigner/SampleEditorController.h b/GUI/View/SampleDesigner/SampleEditorController.h
index 87717984cac..1b3eaf715a5 100644
--- a/GUI/View/SampleDesigner/SampleEditorController.h
+++ b/GUI/View/SampleDesigner/SampleEditorController.h
@@ -15,8 +15,8 @@
 #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_SAMPLEEDITORCONTROLLER_H
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_SAMPLEEDITORCONTROLLER_H
 
-#include "GUI/Model/Item/FormFactorItemCatalog.h"
-#include "GUI/Model/Item/ItemWithParticlesCatalog.h"
+#include "GUI/Model/MakeItem/FormFactorItemCatalog.h"
+#include "GUI/Model/MakeItem/ItemWithParticlesCatalog.h"
 #include "GUI/Model/Item/SampleItem.h"
 #include <QUndoStack>
 
diff --git a/Tests/Unit/GUI/TestSessionItemControllerHelper.cpp b/Tests/Unit/GUI/TestSessionItemControllerHelper.cpp
index 39ae08a6b35..4b04fa1b728 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/Item/SessionItem.h"
+#include "GUI/Model/BaseItem/SessionItem.h"
 #include "GUI/View/Common/SessionItemController.h"
 
 TestListener::TestListener()
diff --git a/Tests/Unit/GUI/TestSessionXML.cpp b/Tests/Unit/GUI/TestSessionXML.cpp
index 159ffec00e4..9e7f73efeac 100644
--- a/Tests/Unit/GUI/TestSessionXML.cpp
+++ b/Tests/Unit/GUI/TestSessionXML.cpp
@@ -11,7 +11,7 @@
 #include "GUI/Model/Item/PropertyItem.h"
 #include "GUI/Model/Model/SessionModel.h"
 #include "GUI/Model/XML/Serializer.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <QXmlStreamReader>
 #include <QXmlStreamWriter>
diff --git a/Tests/Unit/GUI/Utils.h b/Tests/Unit/GUI/Utils.h
index 7b183d4b980..184b934ff71 100644
--- a/Tests/Unit/GUI/Utils.h
+++ b/Tests/Unit/GUI/Utils.h
@@ -17,7 +17,7 @@
 #define BORNAGAIN_TESTS_UNIT_GUI_UTILS_H
 
 #include "GUI/Model/Item/PropertyItem.h"
-#include "GUI/Model/XML/SessionXML.h"
+#include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Support/Data/XML.h"
 #include <QString>
 #include <QXmlStreamWriter>
-- 
GitLab